package mappers import ( "apskel-pos-be/internal/entities" "apskel-pos-be/internal/models" ) // ToCustomerTokensResponse converts a customer tokens entity to a customer tokens response func ToCustomerTokensResponse(customerTokens *entities.CustomerTokens) *models.CustomerTokensResponse { if customerTokens == nil { return nil } return &models.CustomerTokensResponse{ ID: customerTokens.ID, CustomerID: customerTokens.CustomerID, TokenType: string(customerTokens.TokenType), Balance: customerTokens.Balance, Customer: ToCustomerResponse(&customerTokens.Customer), CreatedAt: customerTokens.CreatedAt, UpdatedAt: customerTokens.UpdatedAt, } } // ToCustomerTokensResponses converts a slice of customer tokens entities to customer tokens responses func ToCustomerTokensResponses(customerTokens []entities.CustomerTokens) []models.CustomerTokensResponse { responses := make([]models.CustomerTokensResponse, len(customerTokens)) for i, ct := range customerTokens { responses[i] = *ToCustomerTokensResponse(&ct) } return responses } // ToCustomerTokensEntity converts a create customer tokens request to a customer tokens entity func ToCustomerTokensEntity(req *models.CreateCustomerTokensRequest) *entities.CustomerTokens { return &entities.CustomerTokens{ CustomerID: req.CustomerID, TokenType: entities.TokenType(req.TokenType), Balance: req.Balance, } } // UpdateCustomerTokensEntity updates a customer tokens entity with update request data func UpdateCustomerTokensEntity(customerTokens *entities.CustomerTokens, req *models.UpdateCustomerTokensRequest) { if req.Balance >= 0 { customerTokens.Balance = req.Balance } }