diff --git a/internal/domain/main-entities/division-position/dto.go b/internal/domain/main-entities/division-position/dto.go index 3847d332..fd9446fc 100644 --- a/internal/domain/main-entities/division-position/dto.go +++ b/internal/domain/main-entities/division-position/dto.go @@ -2,6 +2,7 @@ package divisionposition import ( ecore "simrs-vx/internal/domain/base-entities/core" + ed "simrs-vx/internal/domain/main-entities/division" ) type CreateDto struct { @@ -44,9 +45,10 @@ type MetaDto struct { type ResponseDto struct { ecore.SmallMain - Division_Id *uint16 `json:"division_id"` - Code string `json:"code"` - Name string `json:"name"` + Division_Id *uint16 `json:"division_id"` + Division *ed.Division `json:"division,omitempty"` + Code string `json:"code"` + Name string `json:"name"` } func (d DivisionPosition) ToResponse() ResponseDto { @@ -56,6 +58,9 @@ func (d DivisionPosition) ToResponse() ResponseDto { Name: d.Name, } resp.SmallMain = d.SmallMain + if d.Division != nil { + resp.Division = d.Division + } return resp } diff --git a/internal/domain/main-entities/province/dto.go b/internal/domain/main-entities/province/dto.go new file mode 100644 index 00000000..5fb9aae3 --- /dev/null +++ b/internal/domain/main-entities/province/dto.go @@ -0,0 +1,61 @@ +package province + +import ( + ecore "simrs-vx/internal/domain/base-entities/core" +) + +type CreateDto struct { + Code string `json:"code"` + Name string `json:"name"` +} + +type ReadListDto struct { + Code string `json:"code"` + Name string `json:"name"` + + Page int `json:"page"` + PageSize int `json:"page_size"` + NoPagination int `json:"no_pagination"` +} + +type ReadDetailDto struct { + Code string `json:"code"` + Name string `json:"name"` +} + +type UpdateDto struct { + CreateDto +} + +type DeleteDto struct { + Code string `json:"code"` +} + +type MetaDto struct { + PageNumber int `json:"page_number"` + PageSize int `json:"page_size"` + Count int `json:"count"` +} + +type ResponseDto struct { + ecore.SmallMain + Code string `json:"code"` + Name string `json:"name"` + Parent_Id *int16 `json:"parent_id"` +} + +func (d Province) ToResponse() ResponseDto { + resp := ResponseDto{ + Code: d.Code, + Name: d.Name, + } + return resp +} + +func ToResponseList(users []Province) []ResponseDto { + resp := make([]ResponseDto, len(users)) + for i, u := range users { + resp[i] = u.ToResponse() + } + return resp +} diff --git a/internal/domain/main-entities/province/entity.go b/internal/domain/main-entities/province/entity.go new file mode 100644 index 00000000..dbe76750 --- /dev/null +++ b/internal/domain/main-entities/province/entity.go @@ -0,0 +1,6 @@ +package province + +type Province struct { + Code string `json:"code" gorm:"size:2"` + Name string `json:"name" gorm:"size:50"` +} diff --git a/internal/domain/main-entities/unit/dto.go b/internal/domain/main-entities/unit/dto.go index 0a5e8b51..5b0c3aef 100644 --- a/internal/domain/main-entities/unit/dto.go +++ b/internal/domain/main-entities/unit/dto.go @@ -2,6 +2,7 @@ package unit import ( ecore "simrs-vx/internal/domain/base-entities/core" + ei "simrs-vx/internal/domain/main-entities/installation" ) type CreateDto struct { @@ -45,8 +46,9 @@ type MetaDto struct { type ResponseDto struct { ecore.SmallMain Installation_Id *uint16 `json:"installation_id"` - Code string `json:"code"` - Name string `json:"name"` + Installation *ei.Installation + Code string `json:"code"` + Name string `json:"name"` } func (u Unit) ToResponse() ResponseDto { @@ -56,6 +58,9 @@ func (u Unit) ToResponse() ResponseDto { Name: u.Name, } resp.SmallMain = u.SmallMain + if u.Installation != nil { + resp.Installation = u.Installation + } return resp } diff --git a/internal/use-case/main-use-case/division-position/lib.go b/internal/use-case/main-use-case/division-position/lib.go index 60648199..7b4058a6 100644 --- a/internal/use-case/main-use-case/division-position/lib.go +++ b/internal/use-case/main-use-case/division-position/lib.go @@ -40,6 +40,7 @@ func ReadListData(input e.ReadListDto, dbx ...*gorm.DB) ([]e.DivisionPosition, * Model(&e.DivisionPosition{}). // Joins("Patient"). // if needed // Preload("Patient"). // if needed + Preload("Division"). // if needed Scopes(gh.Filter(input)). Count(&count). Scopes(gh.Paginate(input, &pagination)). diff --git a/internal/use-case/main-use-case/unit/lib.go b/internal/use-case/main-use-case/unit/lib.go index a185ebb9..ee4ddf1e 100644 --- a/internal/use-case/main-use-case/unit/lib.go +++ b/internal/use-case/main-use-case/unit/lib.go @@ -40,6 +40,7 @@ func ReadListData(input e.ReadListDto, dbx ...*gorm.DB) ([]e.Unit, *e.MetaDto, e Model(&e.Unit{}). // Joins("Patient"). // if needed // Preload("Patient"). // if needed + Preload("Installation"). // if needed Scopes(gh.Filter(input)). Count(&count). Scopes(gh.Paginate(input, &pagination)).