88
99type Role struct {
1010 ID string `gorm:"type:varchar(36);primaryKey"`
11- OrgID string `gorm:"type:varchar(36);index"` // Foreign key to organizations.id (UUID)
12- Name string `gorm:"type:varchar(255);not null;index"` // Unique identifier (e.g., "admin", "viewer")
11+ OrgID string `gorm:"type:varchar(36);index;uniqueIndex:unique_org_role_name "` // Foreign key to organizations.id (UUID)
12+ Name string `gorm:"type:varchar(255);not null;index;uniqueIndex:unique_org_role_name "` // Unique identifier per org (e.g., "admin", "viewer")
1313 Description string
1414 Permissions []Permission `gorm:"many2many:role_permissions;constraint:OnDelete:CASCADE,OnUpdate:CASCADE"`
1515 CreatedAt time.Time
@@ -27,8 +27,8 @@ func (Role) TableName() string { return "roles" }
2727
2828type Permission struct {
2929 ID string `gorm:"type:varchar(36);primaryKey"`
30- OrgID string `gorm:"type:varchar(36);index"` // Foreign key to organizations.id (UUID)
31- Name string `gorm:"type:varchar(255);not null;index"` // Unique identifier (e.g., "unit-read", "unit-write")
30+ OrgID string `gorm:"type:varchar(36);index;uniqueIndex:unique_org_permission_name "` // Foreign key to organizations.id (UUID)
31+ Name string `gorm:"type:varchar(255);not null;index;uniqueIndex:unique_org_permission_name "` // Unique identifier per org (e.g., "unit-read", "unit-write")
3232 Description string
3333 Rules []Rule `gorm:"constraint:OnDelete:CASCADE"`
3434 CreatedBy string
@@ -163,8 +163,8 @@ func (Unit) TableName() string { return "units" }
163163
164164type Tag struct {
165165 ID string `gorm:"type:varchar(36);primaryKey"`
166- OrgID string `gorm:"type:varchar(36);index"` // Foreign key to organizations.id (UUID)
167- Name string `gorm:"type:varchar(255);not null;index"`
166+ OrgID string `gorm:"type:varchar(36);index;uniqueIndex:unique_org_tag_name "` // Foreign key to organizations.id (UUID)
167+ Name string `gorm:"type:varchar(255);not null;index;uniqueIndex:unique_org_tag_name"` // Unique per org
168168}
169169
170170func (t * Tag ) BeforeCreate (tx * gorm.DB ) error {
0 commit comments