115 lines
2.5 KiB
Go
115 lines
2.5 KiB
Go
|
|
package mappers
|
||
|
|
|
||
|
|
import (
|
||
|
|
"apskel-pos-be/internal/entities"
|
||
|
|
"apskel-pos-be/internal/models"
|
||
|
|
)
|
||
|
|
|
||
|
|
func InventoryEntityToModel(entity *entities.Inventory) *models.Inventory {
|
||
|
|
if entity == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
return &models.Inventory{
|
||
|
|
ID: entity.ID,
|
||
|
|
OutletID: entity.OutletID,
|
||
|
|
ProductID: entity.ProductID,
|
||
|
|
Quantity: entity.Quantity,
|
||
|
|
ReorderLevel: entity.ReorderLevel,
|
||
|
|
UpdatedAt: entity.UpdatedAt,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func InventoryModelToEntity(model *models.Inventory) *entities.Inventory {
|
||
|
|
if model == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
return &entities.Inventory{
|
||
|
|
ID: model.ID,
|
||
|
|
OutletID: model.OutletID,
|
||
|
|
ProductID: model.ProductID,
|
||
|
|
Quantity: model.Quantity,
|
||
|
|
ReorderLevel: model.ReorderLevel,
|
||
|
|
UpdatedAt: model.UpdatedAt,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func CreateInventoryRequestToEntity(req *models.CreateInventoryRequest) *entities.Inventory {
|
||
|
|
if req == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
return &entities.Inventory{
|
||
|
|
OutletID: req.OutletID,
|
||
|
|
ProductID: req.ProductID,
|
||
|
|
Quantity: req.Quantity,
|
||
|
|
ReorderLevel: req.ReorderLevel,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func InventoryEntityToResponse(entity *entities.Inventory) *models.InventoryResponse {
|
||
|
|
if entity == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
return &models.InventoryResponse{
|
||
|
|
ID: entity.ID,
|
||
|
|
OutletID: entity.OutletID,
|
||
|
|
ProductID: entity.ProductID,
|
||
|
|
Quantity: entity.Quantity,
|
||
|
|
ReorderLevel: entity.ReorderLevel,
|
||
|
|
IsLowStock: entity.IsLowStock(),
|
||
|
|
UpdatedAt: entity.UpdatedAt,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func UpdateInventoryEntityFromRequest(entity *entities.Inventory, req *models.UpdateInventoryRequest) {
|
||
|
|
if entity == nil || req == nil {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
|
||
|
|
if req.Quantity != nil {
|
||
|
|
entity.Quantity = *req.Quantity
|
||
|
|
}
|
||
|
|
|
||
|
|
if req.ReorderLevel != nil {
|
||
|
|
entity.ReorderLevel = *req.ReorderLevel
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func InventoryAdjustmentRequestToModel(req *models.InventoryAdjustmentRequest) *models.InventoryAdjustmentRequest {
|
||
|
|
if req == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
return &models.InventoryAdjustmentRequest{
|
||
|
|
Delta: req.Delta,
|
||
|
|
Reason: req.Reason,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func InventoryEntitiesToModels(entities []*entities.Inventory) []*models.Inventory {
|
||
|
|
if entities == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
models := make([]*models.Inventory, len(entities))
|
||
|
|
for i, entity := range entities {
|
||
|
|
models[i] = InventoryEntityToModel(entity)
|
||
|
|
}
|
||
|
|
return models
|
||
|
|
}
|
||
|
|
|
||
|
|
func InventoryEntitiesToResponses(entities []*entities.Inventory) []*models.InventoryResponse {
|
||
|
|
if entities == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
|
||
|
|
responses := make([]*models.InventoryResponse, len(entities))
|
||
|
|
for i, entity := range entities {
|
||
|
|
responses[i] = InventoryEntityToResponse(entity)
|
||
|
|
}
|
||
|
|
return responses
|
||
|
|
}
|