feat(purchasae): added team with category parent and central

This commit is contained in:
efrilm
2026-08-11 21:00:39 +07:00
parent a230199ce0
commit 9ae5be2c33
18 changed files with 566 additions and 32 deletions
@@ -44,6 +44,8 @@ func CreatePurchaseOrderRequestToModel(req *contract.CreatePurchaseOrderRequest)
Reference: req.Reference,
Status: req.Status,
Message: req.Message,
TeamScope: req.TeamScope,
TeamCategoryID: req.TeamCategoryID,
Items: items,
AttachmentFileIDs: req.AttachmentFileIDs,
}, nil
@@ -94,6 +96,8 @@ func UpdatePurchaseOrderRequestToModel(req *contract.UpdatePurchaseOrderRequest)
Reference: req.Reference,
Status: req.Status,
Message: req.Message,
TeamScope: req.TeamScope,
TeamCategoryID: req.TeamCategoryID,
Items: items,
AttachmentFileIDs: req.AttachmentFileIDs,
}, nil
@@ -101,16 +105,39 @@ func UpdatePurchaseOrderRequestToModel(req *contract.UpdatePurchaseOrderRequest)
func ListPurchaseOrdersRequestToModel(req *contract.ListPurchaseOrdersRequest) *models.ListPurchaseOrdersRequest {
return &models.ListPurchaseOrdersRequest{
Page: req.Page,
Limit: req.Limit,
Search: req.Search,
Status: req.Status,
VendorID: req.VendorID,
StartDate: req.StartDate,
EndDate: req.EndDate,
Page: req.Page,
Limit: req.Limit,
Search: req.Search,
Status: req.Status,
VendorID: req.VendorID,
TeamScope: req.TeamScope,
TeamCategoryID: req.TeamCategoryID,
StartDate: req.StartDate,
EndDate: req.EndDate,
}
}
func PurchaseTeamModelToResponse(team *models.PurchaseTeam) *contract.PurchaseTeamResponse {
if team == nil {
return nil
}
return &contract.PurchaseTeamResponse{
Scope: team.Scope,
CategoryID: team.CategoryID,
Name: team.Name,
}
}
func ListPurchaseTeamsModelResponseToResponse(resp *models.ListPurchaseTeamsResponse) *contract.ListPurchaseTeamsResponse {
teams := make([]contract.PurchaseTeamResponse, len(resp.Teams))
for i, team := range resp.Teams {
teams[i] = *PurchaseTeamModelToResponse(&team)
}
return &contract.ListPurchaseTeamsResponse{Teams: teams}
}
// Model to Contract conversions
func PurchaseOrderModelResponseToResponse(po *models.PurchaseOrderResponse) *contract.PurchaseOrderResponse {
if po == nil {
@@ -129,8 +156,11 @@ func PurchaseOrderModelResponseToResponse(po *models.PurchaseOrderResponse) *con
Status: po.Status,
Message: po.Message,
TotalAmount: po.TotalAmount,
TeamScope: po.TeamScope,
TeamCategoryID: po.TeamCategoryID,
CreatedAt: po.CreatedAt,
UpdatedAt: po.UpdatedAt,
Team: PurchaseTeamModelToResponse(po.Team),
}
// Map vendor if present