49 lines
1.6 KiB
Go
49 lines
1.6 KiB
Go
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
|
|
}
|
|
}
|