Files
lti-api/internal/modules/inventory/adjustments/dto/adjustment.dto.go
T
aguhh18 a0bdc7b23c feat(BE-34): extend DB schema and update master data APIs [partial]
 DB Schema: product_warehouse entity and migration
 Master Data: added filter params to getall APIs
🚧 Pending: stock_logs implementation and adjustment APIs
2025-10-09 13:33:30 +07:00

65 lines
1.4 KiB
Go

package dto
import (
"time"
entity "gitlab.com/mbugroup/lti-api.git/internal/entities"
userDTO "gitlab.com/mbugroup/lti-api.git/internal/modules/users/dto"
)
// === DTO Structs ===
type AdjustmentBaseDTO struct {
Id uint `json:"id"`
Name string `json:"name"`
}
type AdjustmentListDTO struct {
AdjustmentBaseDTO
CreatedUser *userDTO.UserBaseDTO `json:"created_user"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type AdjustmentDetailDTO struct {
AdjustmentListDTO
}
// === Mapper Functions ===
func ToAdjustmentBaseDTO(e entity.Adjustment) AdjustmentBaseDTO {
return AdjustmentBaseDTO{
Id: e.Id,
Name: e.Name,
}
}
func ToAdjustmentListDTO(e entity.Adjustment) AdjustmentListDTO {
var createdUser *userDTO.UserBaseDTO
if e.CreatedUser.Id != 0 {
mapped := userDTO.ToUserBaseDTO(e.CreatedUser)
createdUser = &mapped
}
return AdjustmentListDTO{
AdjustmentBaseDTO: ToAdjustmentBaseDTO(e),
CreatedAt: e.CreatedAt,
UpdatedAt: e.UpdatedAt,
CreatedUser: createdUser,
}
}
func ToAdjustmentListDTOs(e []entity.Adjustment) []AdjustmentListDTO {
result := make([]AdjustmentListDTO, len(e))
for i, r := range e {
result[i] = ToAdjustmentListDTO(r)
}
return result
}
func ToAdjustmentDetailDTO(e entity.Adjustment) AdjustmentDetailDTO {
return AdjustmentDetailDTO{
AdjustmentListDTO: ToAdjustmentListDTO(e),
}
}