mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
53 lines
1.2 KiB
Go
53 lines
1.2 KiB
Go
package dto
|
|
|
|
import (
|
|
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
|
|
uomDTO "gitlab.com/mbugroup/lti-api.git/internal/modules/master/uoms/dto"
|
|
)
|
|
|
|
// === DTO Structs ===
|
|
|
|
type SupplierNonstockDTO struct {
|
|
Id uint `json:"id"`
|
|
Name string `json:"name"`
|
|
Price float64 `json:"price"`
|
|
Uom *uomDTO.UomRelationDTO `json:"uom,omitempty"`
|
|
Flags []string `json:"flags"`
|
|
}
|
|
|
|
// === Mapper Functions ===
|
|
|
|
func toSupplierNonstockDTOs(relations []entity.NonstockSupplier) []SupplierNonstockDTO {
|
|
if len(relations) == 0 {
|
|
return nil
|
|
}
|
|
|
|
result := make([]SupplierNonstockDTO, 0, len(relations))
|
|
for _, relation := range relations {
|
|
Nonstock := relation.Nonstock
|
|
if Nonstock.Id == 0 {
|
|
continue
|
|
}
|
|
|
|
flags := make([]string, len(Nonstock.Flags))
|
|
for i, f := range Nonstock.Flags {
|
|
flags[i] = f.Name
|
|
}
|
|
|
|
var uomRef *uomDTO.UomRelationDTO
|
|
if Nonstock.Uom.Id != 0 {
|
|
mapped := uomDTO.ToUomRelationDTO(Nonstock.Uom)
|
|
uomRef = &mapped
|
|
}
|
|
|
|
result = append(result, SupplierNonstockDTO{
|
|
Id: Nonstock.Id,
|
|
Name: Nonstock.Name,
|
|
Price: relation.Price,
|
|
Uom: uomRef,
|
|
Flags: flags,
|
|
})
|
|
}
|
|
return result
|
|
}
|