67 lines
1.5 KiB
Go
67 lines
1.5 KiB
Go
|
|
package request
|
||
|
|
|
||
|
|
import (
|
||
|
|
"strconv"
|
||
|
|
"time"
|
||
|
|
"web-qudo-be/app/database/entity"
|
||
|
|
"web-qudo-be/utils/paginator"
|
||
|
|
)
|
||
|
|
|
||
|
|
type ClientsGeneric interface {
|
||
|
|
ToEntity()
|
||
|
|
}
|
||
|
|
|
||
|
|
type ClientsQueryRequest struct {
|
||
|
|
Name *string `json:"name"`
|
||
|
|
CreatedById *uint `json:"createdBy"`
|
||
|
|
Pagination *paginator.Pagination `json:"pagination"`
|
||
|
|
}
|
||
|
|
|
||
|
|
type ClientsCreateRequest struct {
|
||
|
|
Name string `json:"name" validate:"required"`
|
||
|
|
CreatedById *uint `json:"createdById"`
|
||
|
|
}
|
||
|
|
|
||
|
|
func (req ClientsCreateRequest) ToEntity() *entity.Clients {
|
||
|
|
return &entity.Clients{
|
||
|
|
Name: req.Name,
|
||
|
|
CreatedById: req.CreatedById,
|
||
|
|
CreatedAt: time.Now(),
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
type ClientsUpdateRequest struct {
|
||
|
|
Name string `json:"name" validate:"required"`
|
||
|
|
CreatedById *uint `json:"createdById"`
|
||
|
|
}
|
||
|
|
|
||
|
|
func (req ClientsUpdateRequest) ToEntity() *entity.Clients {
|
||
|
|
return &entity.Clients{
|
||
|
|
Name: req.Name,
|
||
|
|
CreatedById: req.CreatedById,
|
||
|
|
UpdatedAt: time.Now(),
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
type ClientsQueryRequestContext struct {
|
||
|
|
Name string `json:"name"`
|
||
|
|
CreatedById string `json:"createdById"`
|
||
|
|
}
|
||
|
|
|
||
|
|
func (req ClientsQueryRequestContext) ToParamRequest() ClientsQueryRequest {
|
||
|
|
var request ClientsQueryRequest
|
||
|
|
|
||
|
|
if name := req.Name; name != "" {
|
||
|
|
request.Name = &name
|
||
|
|
}
|
||
|
|
if createdByStr := req.CreatedById; createdByStr != "" {
|
||
|
|
createdBy, err := strconv.Atoi(createdByStr)
|
||
|
|
if err == nil {
|
||
|
|
createdByIdUint := uint(createdBy)
|
||
|
|
request.CreatedById = &createdByIdUint
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return request
|
||
|
|
}
|