diff --git a/cmd/main-migration/migrations/20251024074315.sql b/cmd/main-migration/migrations/20251024074315.sql new file mode 100644 index 00000000..99b3b76b --- /dev/null +++ b/cmd/main-migration/migrations/20251024074315.sql @@ -0,0 +1,2 @@ +-- Modify "Employee" table +ALTER TABLE "public"."Employee" DROP COLUMN "Division_Code"; diff --git a/cmd/main-migration/migrations/atlas.sum b/cmd/main-migration/migrations/atlas.sum index a52827a6..9f6394ae 100644 --- a/cmd/main-migration/migrations/atlas.sum +++ b/cmd/main-migration/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:fAJxBGCfoMXYDjYBlq6RITZ/dXbqiYtQWwupcBMLHV0= +h1:XE6wCH2XnIm3XpP9itgkMFv8CCrc2SOb51W/bA5h3Uk= 20250904105930.sql h1:MEM6blCgke9DzWQSTnLzasbPIrcHssNNrJqZpSkEo6k= 20250904141448.sql h1:J8cmYNk4ZrG9fhfbi2Z1IWz7YkfvhFqTzrLFo58BPY0= 20250908062237.sql h1:Pu23yEW/aKkwozHoOuROvHS/GK4ngARJGdO7FB7HZuI= @@ -57,3 +57,4 @@ h1:fAJxBGCfoMXYDjYBlq6RITZ/dXbqiYtQWwupcBMLHV0= 20251021075552.sql h1:8gfSMAglflNO6L0sSzxFNEubYN8/O4thT7OQT+WH+3M= 20251023044432.sql h1:MkvajJs3bfk9+wHvQ43/ccAluJEBARm1gWr1u92ccLA= 20251024034832.sql h1:x3s3VEVYLOSKLAFxJGb2+c1FyTMMvPE+9k4Ew7rKQaI= +20251024074315.sql h1:GkocUmXpU1QiZpjvELK4e6sKASxiS3kZTk+35Iux2ds= diff --git a/internal/domain/main-entities/division/dto.go b/internal/domain/main-entities/division/dto.go index d82380a0..38915b56 100644 --- a/internal/domain/main-entities/division/dto.go +++ b/internal/domain/main-entities/division/dto.go @@ -2,10 +2,7 @@ package division import ( ecore "simrs-vx/internal/domain/base-entities/core" - ep "simrs-vx/internal/domain/main-entities/person" - eu "simrs-vx/internal/domain/main-entities/user" - erc "simrs-vx/internal/domain/references/common" - erg "simrs-vx/internal/domain/references/organization" + edpb "simrs-vx/internal/domain/main-entities/division-position/base" ) type CreateDto struct { @@ -52,55 +49,31 @@ type MetaDto struct { type ResponseDto struct { ecore.SmallMain - Code string `json:"code"` - Name string `json:"name"` - Parent_Id *uint16 `json:"parent_id"` - Parent *Division `json:"parent,omitempty"` - Childrens []Division `json:"childrens,omitempty"` - DivisionPosition []ResponseDivisionPosition `json:"divisionPositions,omitempty"` + Code string `json:"code"` + Name string `json:"name"` + Parent_Id *uint16 `json:"parent_id"` + Parent *Division `json:"parent,omitempty"` + Childrens []Division `json:"childrens,omitempty"` + DivisionPosition []edpb.Basic `json:"divisionPositions,omitempty"` } -type ResponseDivisionPosition struct { - ecore.SmallMain // adjust this according to the needs - Division_Id *uint16 `json:"division_id"` - Code string `json:"code"` - Name string `json:"name"` - HeadStatus bool `json:"headStatus"` - Employee_Id *uint `json:"employee_id"` - Employee ResponseDivisionEmployee `json:"employee"` -} - -type ResponseDivisionEmployee struct { - ecore.Main // adjust this according to the needs - User_Id *uint `json:"user_id"` - User *eu.User `json:"user,omitempty"` - Person_Id *uint `json:"person_id"` - Person *ep.Person `json:"person,omitempty"` - Position_Code *erg.EmployeePositionCode `json:"position_code"` - Number *string `json:"number"` - Status_Code erc.ActiveStatusCode `json:"status_code"` -} - -func (d Division) ToResponse(divPos []ResponseDivisionPosition) ResponseDto { +func (d Division) ToResponse() ResponseDto { resp := ResponseDto{ - Code: d.Code, - Name: d.Name, - Parent_Id: d.Parent_Id, - Parent: d.Parent, - Childrens: d.Childrens, + Code: d.Code, + Name: d.Name, + Parent_Id: d.Parent_Id, + Parent: d.Parent, + Childrens: d.Childrens, + DivisionPosition: d.DivisionPositions, } resp.SmallMain = d.SmallMain - - if divPos != nil { - resp.DivisionPosition = divPos - } return resp } func ToResponseList(data []Division) []ResponseDto { resp := make([]ResponseDto, len(data)) for i, u := range data { - resp[i] = u.ToResponse(nil) + resp[i] = u.ToResponse() } return resp } diff --git a/internal/domain/main-entities/employee/dto.go b/internal/domain/main-entities/employee/dto.go index 133260c7..ff8f6adf 100644 --- a/internal/domain/main-entities/employee/dto.go +++ b/internal/domain/main-entities/employee/dto.go @@ -5,18 +5,16 @@ import ( ed "simrs-vx/internal/domain/main-entities/division" ep "simrs-vx/internal/domain/main-entities/person" eu "simrs-vx/internal/domain/main-entities/user" - erg "simrs-vx/internal/domain/references/organization" erc "simrs-vx/internal/domain/references/common" ) type CreateDto struct { - User_Id *uint `json:"user_id"` - Person_Id *uint `json:"person_id"` - Division_Code *string `json:"division_code"` - Number *string `json:"number" validate:"maxLength=20"` - Status_Code erc.ActiveStatusCode `json:"status_code" validate:"maxLength=10"` - Position_Code *erg.EmployeePositionCode `json:"position_code"` + User_Id *uint `json:"user_id"` + Person_Id *uint `json:"person_id"` + Division_Code *string `json:"division_code"` + Number *string `json:"number" validate:"maxLength=20"` + Status_Code erc.ActiveStatusCode `json:"status_code" validate:"maxLength=10"` } type ReadListDto struct { @@ -58,28 +56,24 @@ type MetaDto struct { type ResponseDto struct { ecore.Main - User_Id *uint `json:"user_id"` - User *eu.User `json:"user,omitempty"` - Person_Id *uint `json:"person_id"` - Person *ep.Person `json:"person,omitempty"` - Division_Code *string `json:"division_code"` - Division *ed.Division `json:"division,omitempty"` - Position_Code *erg.EmployeePositionCode `json:"position_code"` - Number *string `json:"number"` - Status_Code erc.ActiveStatusCode `json:"status_code"` + User_Id *uint `json:"user_id"` + User *eu.User `json:"user,omitempty"` + Person_Id *uint `json:"person_id"` + Person *ep.Person `json:"person,omitempty"` + Division_Code *string `json:"division_code"` + Division *ed.Division `json:"division,omitempty"` + Number *string `json:"number"` + Status_Code erc.ActiveStatusCode `json:"status_code"` } func (d Employee) ToResponse() ResponseDto { resp := ResponseDto{ - User_Id: d.User_Id, - User: d.User, - Person_Id: d.Person_Id, - Person: d.Person, - Division_Code: d.Division_Code, - Division: d.Division, - Number: d.Number, - Status_Code: d.Status_Code, - Position_Code: d.Position_Code, + User_Id: d.User_Id, + User: d.User, + Person_Id: d.Person_Id, + Person: d.Person, + Number: d.Number, + Status_Code: d.Status_Code, } resp.Main = d.Main return resp diff --git a/internal/domain/main-entities/employee/entity.go b/internal/domain/main-entities/employee/entity.go index 1177abe9..7a770be0 100644 --- a/internal/domain/main-entities/employee/entity.go +++ b/internal/domain/main-entities/employee/entity.go @@ -2,7 +2,6 @@ package employee import ( ecore "simrs-vx/internal/domain/base-entities/core" - ed "simrs-vx/internal/domain/main-entities/division" ep "simrs-vx/internal/domain/main-entities/person" eu "simrs-vx/internal/domain/main-entities/user" erc "simrs-vx/internal/domain/references/common" @@ -16,8 +15,6 @@ type Employee struct { Person_Id *uint `json:"person_id"` Person *ep.Person `json:"person,omitempty" gorm:"foreignKey:Person_Id;references:Id"` Position_Code *erg.EmployeePositionCode `json:"position_code" gorm:"size:20"` - Division_Code *string `json:"division_code"` - Division *ed.Division `json:"division,omitempty" gorm:"foreignKey:Division_Code;references:Code"` Number *string `json:"number" gorm:"size:20"` Status_Code erc.ActiveStatusCode `json:"status_code" gorm:"not null;size:10"` } diff --git a/internal/use-case/main-use-case/division/case.go b/internal/use-case/main-use-case/division/case.go index 3f0353ae..9699e124 100644 --- a/internal/use-case/main-use-case/division/case.go +++ b/internal/use-case/main-use-case/division/case.go @@ -124,7 +124,6 @@ func ReadList(input e.ReadListDto) (*d.Data, error) { func ReadDetail(input e.ReadDetailDto) (*d.Data, error) { var data *e.Division var err error - var dataDP []e.ResponseDivisionPosition event := pl.Event{ Feature: "ReadDetail",