package unit import ( ecore "simrs-vx/internal/domain/base-entities/core" ei "simrs-vx/internal/domain/main-entities/installation" eipb "simrs-vx/internal/domain/main-entities/unit-position/base" ) type CreateDto struct { Installation_Id *uint16 `json:"installation_id"` Code string `json:"code" validate:"maxLength=10"` Name string `json:"name" validate:"maxLength=50"` } type ReadListDto struct { FilterDto Includes string `json:"includes"` Sort string `json:"sort"` Pagination ecore.Pagination } type FilterDto struct { Installation_Id *uint16 `json:"installation-id"` Code string `json:"code"` Name string `json:"name"` Search string `json:"search" gormhelper:"searchColumns=Code,Name"` } type ReadDetailDto struct { Id uint16 `json:"id"` Installation_Id *uint16 `json:"installation_id"` Code *string `json:"code"` Includes string `json:"includes"` } type UpdateDto struct { Id uint16 `json:"id"` CreateDto } type DeleteDto struct { Id uint16 `json:"id"` } type MetaDto struct { PageNumber int `json:"page_number"` PageSize int `json:"page_size"` Count int `json:"count"` } type ResponseDto struct { ecore.SmallMain Installation_Id *uint16 `json:"installation_id"` Installation *ei.Installation `json:"installation,omitempty"` Code string `json:"code"` Name string `json:"name"` UnitPositions []eipb.Basic `json:"unitPositions,omitempty"` } func (d Unit) ToResponse() ResponseDto { resp := ResponseDto{ Installation_Id: d.Installation_Id, Code: d.Code, Name: d.Name, UnitPositions: d.UnitPositions, } resp.SmallMain = d.SmallMain if d.Installation != nil { resp.Installation = d.Installation } return resp } func ToResponseList(data []Unit) []ResponseDto { resp := make([]ResponseDto, len(data)) for i, u := range data { resp[i] = u.ToResponse() } return resp }