diff --git a/database/entities/m_maintenance_group_entity.go b/database/entities/m_maintenance_group_entity.go index 1f58438..9ac0135 100644 --- a/database/entities/m_maintenance_group_entity.go +++ b/database/entities/m_maintenance_group_entity.go @@ -10,7 +10,7 @@ type M_MaintenanceGroup struct { ClientID uuid.UUID `gorm:"type:uuid;not null;index" json:"client_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 } diff --git a/database/entities/m_maintenance_group_role_entity.go b/database/entities/m_maintenance_group_role_entity.go index a76b7e5..4cc9f76 100644 --- a/database/entities/m_maintenance_group_role_entity.go +++ b/database/entities/m_maintenance_group_role_entity.go @@ -3,12 +3,14 @@ package entities import "github.com/google/uuid" type M_MaintenanceGroupRole struct { - MaintenanceGroupID uuid.UUID `gorm:"type:uuid;not null;index" json:"maintenance_group_id"` - RoleID uuid.UUID `gorm:"type:uuid;not null;index" json:"role_id"` - Level int `gorm:"not null" json:"level"` + ID uuid.UUID `gorm:"type:uuid;primary_key;default:uuid_generate_v4()" json:"id"` + MaintenanceGroupID uuid.UUID `gorm:"type:uuid;not null;index"` + 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"` - Role M_Role `gorm:"foreignKey:RoleID;references:ID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE" json:"role"` + MaintenanceGroup M_MaintenanceGroup `gorm:"foreignKey:MaintenanceGroupID;references:ID"` + 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 } diff --git a/database/entities/m_maintenance_group_user_entity.go b/database/entities/m_maintenance_group_role_user_entity.go similarity index 52% rename from database/entities/m_maintenance_group_user_entity.go rename to database/entities/m_maintenance_group_role_user_entity.go index 0935e82..1424bab 100644 --- a/database/entities/m_maintenance_group_user_entity.go +++ b/database/entities/m_maintenance_group_role_user_entity.go @@ -2,11 +2,13 @@ package entities 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"` 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"` - 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 } diff --git a/database/migration.go b/database/migration.go index 727ec78..08bee7b 100644 --- a/database/migration.go +++ b/database/migration.go @@ -19,6 +19,7 @@ func Migrate(db *gorm.DB) error { &entities.M_Role_Permission{}, &entities.M_MaintenanceGroup{}, &entities.M_MaintenanceGroupRole{}, + &entities.M_MaintenanceGroupRoleUser{}, ); err != nil { return err } @@ -41,6 +42,7 @@ func MigrateFresh(db *gorm.DB) error { &entities.M_Role_Permission{}, &entities.M_MaintenanceGroup{}, &entities.M_MaintenanceGroupRole{}, + &entities.M_MaintenanceGroupRoleUser{}, ); err != nil { return err } diff --git a/database/seeders/seeds/maintenance_group_role_seed.go b/database/seeders/seeds/maintenance_group_role_seed.go index 61def48..4d4326b 100644 --- a/database/seeders/seeds/maintenance_group_role_seed.go +++ b/database/seeders/seeds/maintenance_group_role_seed.go @@ -49,7 +49,7 @@ func ListMaintenanceGroupRoleSeeder(db *gorm.DB) error { if err := db.FirstOrCreate(&maintenanceGroupRole, entities.M_MaintenanceGroupRole{ MaintenanceGroupID: maintenanceGroup.ID, RoleID: role.ID, - Level: data.Level, + Level: &data.Level, }).Error; err != nil { return err }