package request import ( "time" "web-qudo-be/app/database/entity" "web-qudo-be/utils/paginator" ) type CustomStaticPagesGeneric interface { ToEntity() } type CustomStaticPagesQueryRequest struct { Title *string `json:"title"` Description *string `json:"description"` Slug *string `json:"slug"` HtmlBody *string `json:"htmlBody"` Pagination *paginator.Pagination `json:"pagination"` } type CustomStaticPagesCreateRequest struct { Title string `json:"title" validate:"required"` Description string `json:"description"` Slug string `json:"slug" validate:"required"` HtmlBody string `json:"htmlBody" validate:"required"` } func (req CustomStaticPagesCreateRequest) ToEntity() *entity.CustomStaticPages { return &entity.CustomStaticPages{ Title: req.Title, Description: req.Description, Slug: req.Slug, HtmlBody: req.HtmlBody, IsActive: true, } } type CustomStaticPagesUpdateRequest struct { ID uint `json:"id" validate:"required"` Title string `json:"title" validate:"required"` Description string `json:"description"` Slug string `json:"slug" validate:"required"` HtmlBody string `json:"htmlBody" validate:"required"` UpdatedAt time.Time `json:"updated_at"` } func (req CustomStaticPagesUpdateRequest) ToEntity() *entity.CustomStaticPages { return &entity.CustomStaticPages{ ID: req.ID, Title: req.Title, Description: req.Description, Slug: req.Slug, HtmlBody: req.HtmlBody, UpdatedAt: req.UpdatedAt, } } type CustomStaticPagesQueryRequestContext struct { Title string `json:"title"` Description string `json:"description"` Slug string `json:"slug"` HtmlBody string `json:"htmlBody"` } func (req CustomStaticPagesQueryRequestContext) ToParamRequest() CustomStaticPagesQueryRequest { var request CustomStaticPagesQueryRequest if title := req.Title; title != "" { request.Title = &title } if description := req.Description; description != "" { request.Description = &description } if slug := req.Slug; slug != "" { request.Slug = &slug } return request }