jaecoo-be/app/module/banners/request/banners.request.go

82 lines
2.0 KiB
Go

package request
import (
"jaecoo-be/app/database/entity"
"jaecoo-be/utils/paginator"
)
type BannersQueryRequest struct {
Title *string `json:"title"`
Position *string `json:"position"`
Status *string `json:"status"`
Pagination *paginator.Pagination `json:"pagination"`
}
type BannersQueryRequestContext struct {
Title string `json:"title"`
Position string `json:"position"`
Status string `json:"status"`
}
func (req BannersQueryRequestContext) ToParamRequest() BannersQueryRequest {
var request BannersQueryRequest
if title := req.Title; title != "" {
request.Title = &title
}
if position := req.Position; position != "" {
request.Position = &position
}
if status := req.Status; status != "" {
request.Status = &status
}
return request
}
type BannersCreateRequest struct {
Title string `json:"title" validate:"required"`
Description *string `json:"description"`
ThumbnailPath *string `json:"thumbnail_path"`
Position *string `json:"position"`
Status *string `json:"status"`
}
func (req BannersCreateRequest) ToEntity() *entity.Banners {
return &entity.Banners{
Title: req.Title,
Description: req.Description,
ThumbnailPath: req.ThumbnailPath,
Position: req.Position,
Status: req.Status,
}
}
type BannersUpdateRequest struct {
Title *string `json:"title"`
Description *string `json:"description"`
ThumbnailPath *string `json:"thumbnail_path"`
Position *string `json:"position"`
Status *string `json:"status"`
IsActive *bool `json:"is_active"`
}
func (req BannersUpdateRequest) ToEntity() *entity.Banners {
return &entity.Banners{
Title: getStringValue(req.Title),
Description: req.Description,
ThumbnailPath: req.ThumbnailPath,
Position: req.Position,
Status: req.Status,
IsActive: req.IsActive,
}
}
func getStringValue(s *string) string {
if s == nil {
return ""
}
return *s
}