wms-be/modules/zona/dto/zona_dto.go

99 lines
2.9 KiB
Go

package dto
import (
"errors"
"github.com/Caknoooo/go-gin-clean-starter/database/entities"
pkgdto "github.com/Caknoooo/go-gin-clean-starter/pkg/dto"
"github.com/google/uuid"
)
const (
MESSAGE_FAILED_CREATE_ZONA = "failed create zona"
MESSAGE_SUCCESS_CREATE_ZONA = "success create zona"
MESSAGE_FAILED_GET_ZONA = "failed get zona"
MESSAGE_SUCCESS_GET_ZONA = "success get zona"
MESSAGE_FAILED_UPDATE_ZONA = "failed update zona"
MESSAGE_SUCCESS_UPDATE_ZONA = "success update zona"
MESSAGE_FAILED_DELETE_ZONA = "failed delete zona"
MESSAGE_SUCCESS_DELETE_ZONA = "success delete zona"
MESSAGE_FAILED_GET_DATA_FROM_BODY = "failed get data from body"
)
var (
ErrCreateZona = errors.New("failed to create zona")
ErrGetZonaById = errors.New("failed to get zona by id")
ErrUpdateZona = errors.New("failed to update zona")
ErrDeleteZona = errors.New("failed to delete zona")
)
type ZonaCreateRequest struct {
Code string `json:"code" binding:"required"`
Name string `json:"name" binding:"required"`
Type string `json:"type" binding:"required"`
Temperature string `json:"temperature"`
Hazardous bool `json:"hazardous"`
// QRCodeZone string `json:"qr_code_zone"`
// IsActive bool `json:"is_active"`
WarehouseID string `json:"warehouse_id" binding:"required"`
ClientID string `json:"client_id" binding:"required"`
}
type ZonaUpdateRequest struct {
Code string `json:"code"`
Name string `json:"name"`
Type string `json:"type"`
Temperature string `json:"temperature"`
Hazardous bool `json:"hazardous"`
// QRCodeZone string `json:"qr_code_zone"`
IsActive bool `json:"is_active"`
// WarehouseID string `json:"warehouse_id"`
// ClientID string `json:"client_id"`
}
type ZonaResponse struct {
ID string `json:"id"`
Code string `json:"code"`
Name string `json:"name"`
Type string `json:"type"`
Temperature string `json:"temperature"`
Hazardous bool `json:"hazardous"`
QRCodeZone string `json:"qr_code_zone"`
IsActive bool `json:"is_active"`
// WarehouseID string `json:"warehouse_id"`
// ClientID string `json:"client_id"`
Warehouse pkgdto.IdNameResponse `json:"warehouse"`
Client pkgdto.IdNameResponse `json:"client"`
}
func ToZonaResponse(e entities.MZonaEntity) ZonaResponse {
warehouse := pkgdto.IdNameResponse{}
if e.Warehouse.ID != uuid.Nil {
warehouse = pkgdto.IdNameResponse{
ID: e.Warehouse.ID.String(),
Name: e.Warehouse.Name,
}
}
client := pkgdto.IdNameResponse{}
if e.Client.ID != uuid.Nil {
client = pkgdto.IdNameResponse{
ID: e.Client.ID.String(),
Name: e.Client.Name,
}
}
return ZonaResponse{
ID: e.ID.String(),
Code: e.Code,
Name: e.Name,
Type: e.Type,
Temperature: e.Temperature,
Hazardous: e.Hazardous,
QRCodeZone: e.QRCodeZone,
IsActive: e.IsActive,
Warehouse: warehouse,
Client: client,
}
}