package mappers import ( "apskel-pos-be/internal/entities" "apskel-pos-be/internal/models" ) func ExpenseEntityToModel(entity *entities.Expense) *models.Expense { if entity == nil { return nil } return &models.Expense{ ID: entity.ID, OrganizationID: entity.OrganizationID, OutletID: entity.OutletID, Receiver: entity.Receiver, TransactionDate: entity.TransactionDate, CodeNumber: entity.CodeNumber, Status: entity.Status, Description: entity.Description, Tax: entity.Tax, Total: entity.Total, Reserved1: entity.Reserved1, CreatedAt: entity.CreatedAt, UpdatedAt: entity.UpdatedAt, } } func ExpenseModelToEntity(model *models.Expense) *entities.Expense { if model == nil { return nil } return &entities.Expense{ ID: model.ID, OrganizationID: model.OrganizationID, OutletID: model.OutletID, Receiver: model.Receiver, TransactionDate: model.TransactionDate, CodeNumber: model.CodeNumber, Status: model.Status, Description: model.Description, Tax: model.Tax, Total: model.Total, Reserved1: model.Reserved1, CreatedAt: model.CreatedAt, UpdatedAt: model.UpdatedAt, } } func ExpenseEntityToResponse(entity *entities.Expense) *models.ExpenseResponse { if entity == nil { return nil } resp := &models.ExpenseResponse{ ID: entity.ID, OrganizationID: entity.OrganizationID, OutletID: entity.OutletID, Receiver: entity.Receiver, TransactionDate: entity.TransactionDate, CodeNumber: entity.CodeNumber, Status: entity.Status, Description: entity.Description, Tax: entity.Tax, Total: entity.Total, Reserved1: entity.Reserved1, CreatedAt: entity.CreatedAt, UpdatedAt: entity.UpdatedAt, } if entity.Items != nil { resp.Items = ExpenseItemEntitiesToResponses(entity.Items) } return resp } func ExpenseEntitiesToResponses(entities []*entities.Expense) []*models.ExpenseResponse { if entities == nil { return nil } responses := make([]*models.ExpenseResponse, len(entities)) for i, entity := range entities { responses[i] = ExpenseEntityToResponse(entity) } return responses } func ExpenseItemEntityToResponse(entity *entities.ExpenseItem) *models.ExpenseItemResponse { if entity == nil { return nil } response := &models.ExpenseItemResponse{ ID: entity.ID, ExpenseID: entity.ExpenseID, ChartOfAccountID: entity.ChartOfAccountID, Item: entity.Item, Description: entity.Description, Amount: entity.Amount, CreatedAt: entity.CreatedAt, UpdatedAt: entity.UpdatedAt, } if entity.ChartOfAccount != nil { response.ChartOfAccountName = entity.ChartOfAccount.Name } return response } func ExpenseItemEntitiesToResponses(entities []entities.ExpenseItem) []models.ExpenseItemResponse { if entities == nil { return nil } responses := make([]models.ExpenseItemResponse, len(entities)) for i, entity := range entities { response := ExpenseItemEntityToResponse(&entity) if response != nil { responses[i] = *response } } return responses }