feat: Enhance maintenance group role entities with cascading constraints and add role-user relationship
Deploy Application / deploy (push) Successful in 20s
Details
Deploy Application / deploy (push) Successful in 20s
Details
This commit is contained in:
parent
e1cb51c5db
commit
28d07ea2b0
|
|
@ -10,7 +10,7 @@ type M_MaintenanceGroup struct {
|
||||||
ClientID uuid.UUID `gorm:"type:uuid;not null;index" json:"client_id"`
|
ClientID uuid.UUID `gorm:"type:uuid;not null;index" json:"client_id"`
|
||||||
|
|
||||||
Client M_Client `gorm:"foreignKey:ClientID;references:ID"`
|
Client M_Client `gorm:"foreignKey:ClientID;references:ID"`
|
||||||
MaintenanceGroupRoles []M_MaintenanceGroupRole `gorm:"foreignKey:MaintenanceGroupID;references:ID" json:"maintenance_group_roles"`
|
MaintenanceGroupRoles []M_MaintenanceGroupRole `gorm:"foreignKey:MaintenanceGroupID;references:ID;constraint:OnDelete:CASCADE;onUpdate:CASCADE;"`
|
||||||
|
|
||||||
FullAuditTrail
|
FullAuditTrail
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,14 @@ package entities
|
||||||
import "github.com/google/uuid"
|
import "github.com/google/uuid"
|
||||||
|
|
||||||
type M_MaintenanceGroupRole struct {
|
type M_MaintenanceGroupRole struct {
|
||||||
MaintenanceGroupID uuid.UUID `gorm:"type:uuid;not null;index" json:"maintenance_group_id"`
|
ID uuid.UUID `gorm:"type:uuid;primary_key;default:uuid_generate_v4()" json:"id"`
|
||||||
RoleID uuid.UUID `gorm:"type:uuid;not null;index" json:"role_id"`
|
MaintenanceGroupID uuid.UUID `gorm:"type:uuid;not null;index"`
|
||||||
Level int `gorm:"not null" json:"level"`
|
RoleID uuid.UUID `gorm:"type:uuid;not null;index"`
|
||||||
|
Level *int `gorm:"type:int;not null;index"`
|
||||||
|
|
||||||
MaintenanceGroup M_MaintenanceGroup `gorm:"foreignKey:MaintenanceGroupID;references:ID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"maintenance_group"`
|
MaintenanceGroup M_MaintenanceGroup `gorm:"foreignKey:MaintenanceGroupID;references:ID"`
|
||||||
Role M_Role `gorm:"foreignKey:RoleID;references:ID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"role"`
|
MaintenanceGroupRoleUsers []M_MaintenanceGroupRoleUser `gorm:"foreignKey:MaintenanceGroupRoleID;references:ID;constraint:OnDelete:CASCADE;onUpdate:CASCADE;"`
|
||||||
|
Role M_Role `gorm:"foreignKey:RoleID;references:ID;constraint:OnDelete:CASCADE;onUpdate:CASCADE;"`
|
||||||
|
|
||||||
FullAuditTrail
|
FullAuditTrail
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,13 @@ package entities
|
||||||
|
|
||||||
import "github.com/google/uuid"
|
import "github.com/google/uuid"
|
||||||
|
|
||||||
type M_MaintenanceGroupUser struct {
|
type M_MaintenanceGroupRoleUser struct {
|
||||||
ID uuid.UUID `gorm:"type:uuid;primary_key;default:uuid_generate_v4()" json:"id"`
|
ID uuid.UUID `gorm:"type:uuid;primary_key;default:uuid_generate_v4()" json:"id"`
|
||||||
MaintenanceGroupRoleID uuid.UUID `gorm:"type:uuid;not null;index" json:"maintenance_group_role_id"`
|
MaintenanceGroupRoleID uuid.UUID `gorm:"type:uuid;not null;index" json:"maintenance_group_role_id"`
|
||||||
UserID uuid.UUID `gorm:"type:uuid;not null;index" json:"user_id"`
|
UserID uuid.UUID `gorm:"type:uuid;not null;index" json:"user_id"`
|
||||||
ClientID uuid.UUID `gorm:"type:uuid;not null;index" json:"client_id"`
|
|
||||||
|
MaintenanceGroupRole M_MaintenanceGroupRole `gorm:"foreignKey:MaintenanceGroupRoleID;references:ID;constraint:OnDelete:CASCADE;onUpdate:CASCADE;"`
|
||||||
|
User M_User `gorm:"foreignKey:UserID;references:ID;constraint:OnDelete:CASCADE;onUpdate:CASCADE;"`
|
||||||
|
|
||||||
FullAuditTrail
|
FullAuditTrail
|
||||||
}
|
}
|
||||||
|
|
@ -19,6 +19,7 @@ func Migrate(db *gorm.DB) error {
|
||||||
&entities.M_Role_Permission{},
|
&entities.M_Role_Permission{},
|
||||||
&entities.M_MaintenanceGroup{},
|
&entities.M_MaintenanceGroup{},
|
||||||
&entities.M_MaintenanceGroupRole{},
|
&entities.M_MaintenanceGroupRole{},
|
||||||
|
&entities.M_MaintenanceGroupRoleUser{},
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -41,6 +42,7 @@ func MigrateFresh(db *gorm.DB) error {
|
||||||
&entities.M_Role_Permission{},
|
&entities.M_Role_Permission{},
|
||||||
&entities.M_MaintenanceGroup{},
|
&entities.M_MaintenanceGroup{},
|
||||||
&entities.M_MaintenanceGroupRole{},
|
&entities.M_MaintenanceGroupRole{},
|
||||||
|
&entities.M_MaintenanceGroupRoleUser{},
|
||||||
); err != nil {
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ func ListMaintenanceGroupRoleSeeder(db *gorm.DB) error {
|
||||||
if err := db.FirstOrCreate(&maintenanceGroupRole, entities.M_MaintenanceGroupRole{
|
if err := db.FirstOrCreate(&maintenanceGroupRole, entities.M_MaintenanceGroupRole{
|
||||||
MaintenanceGroupID: maintenanceGroup.ID,
|
MaintenanceGroupID: maintenanceGroup.ID,
|
||||||
RoleID: role.ID,
|
RoleID: role.ID,
|
||||||
Level: data.Level,
|
Level: &data.Level,
|
||||||
}).Error; err != nil {
|
}).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue