99 lines
2.5 KiB
Go
99 lines
2.5 KiB
Go
package request
|
|
|
|
import (
|
|
"encoding/json"
|
|
"jaecoo-be/app/database/entity"
|
|
"jaecoo-be/utils/paginator"
|
|
)
|
|
|
|
type SalesAgentsQueryRequest struct {
|
|
Name *string `json:"name"`
|
|
JobTitle *string `json:"job_title"`
|
|
AgentType *string `json:"agent_type"`
|
|
Pagination *paginator.Pagination `json:"pagination"`
|
|
}
|
|
|
|
type SalesAgentsQueryRequestContext struct {
|
|
Name string `json:"name"`
|
|
JobTitle string `json:"job_title"`
|
|
AgentType string `json:"agent_type"`
|
|
}
|
|
|
|
type CommentRequest struct {
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
func (req SalesAgentsQueryRequestContext) ToParamRequest() SalesAgentsQueryRequest {
|
|
var request SalesAgentsQueryRequest
|
|
|
|
if name := req.Name; name != "" {
|
|
request.Name = &name
|
|
}
|
|
if jobTitle := req.JobTitle; jobTitle != "" {
|
|
request.JobTitle = &jobTitle
|
|
}
|
|
if agentType := req.AgentType; agentType != "" {
|
|
request.AgentType = &agentType
|
|
}
|
|
|
|
return request
|
|
}
|
|
|
|
type SalesAgentsCreateRequest struct {
|
|
Name string `json:"name" validate:"required"`
|
|
JobTitle *string `json:"job_title"`
|
|
Phone *string `json:"phone"`
|
|
AgentType []string `json:"agent_type"`
|
|
ProfilePicturePath *string `json:"profile_picture_path"`
|
|
}
|
|
|
|
func (req SalesAgentsCreateRequest) ToEntity() *entity.SalesAgents {
|
|
agentTypeJSON, _ := json.Marshal(req.AgentType)
|
|
agentTypeStr := string(agentTypeJSON)
|
|
if agentTypeStr == "null" {
|
|
agentTypeStr = ""
|
|
}
|
|
|
|
return &entity.SalesAgents{
|
|
Name: req.Name,
|
|
JobTitle: req.JobTitle,
|
|
Phone: req.Phone,
|
|
AgentType: &agentTypeStr,
|
|
ProfilePicturePath: req.ProfilePicturePath,
|
|
}
|
|
}
|
|
|
|
type SalesAgentsUpdateRequest struct {
|
|
Name *string `json:"name"`
|
|
JobTitle *string `json:"job_title"`
|
|
Phone *string `json:"phone"`
|
|
AgentType []string `json:"agent_type"`
|
|
ProfilePicturePath *string `json:"profile_picture_path"`
|
|
IsActive *bool `json:"is_active"`
|
|
}
|
|
|
|
func (req SalesAgentsUpdateRequest) ToEntity() *entity.SalesAgents {
|
|
agentTypeJSON, _ := json.Marshal(req.AgentType)
|
|
agentTypeStr := string(agentTypeJSON)
|
|
if agentTypeStr == "null" {
|
|
agentTypeStr = ""
|
|
}
|
|
|
|
return &entity.SalesAgents{
|
|
Name: getStringValue(req.Name),
|
|
JobTitle: req.JobTitle,
|
|
Phone: req.Phone,
|
|
AgentType: &agentTypeStr,
|
|
ProfilePicturePath: req.ProfilePicturePath,
|
|
IsActive: req.IsActive,
|
|
}
|
|
}
|
|
|
|
func getStringValue(s *string) string {
|
|
if s == nil {
|
|
return ""
|
|
}
|
|
return *s
|
|
}
|
|
|