qudoco-be/app/module/popup_news_contents/request/popup_news_contents.request.go

56 lines
1.6 KiB
Go

package request
import (
"web-qudo-be/app/database/entity"
"web-qudo-be/utils/paginator"
)
type PopupNewsContentsGeneric interface {
ToEntity()
}
// Query
type PopupNewsContentsQueryRequest struct {
PrimaryTitle string `json:"primary_title"`
Pagination *paginator.Pagination `json:"pagination"`
}
// Create
type PopupNewsContentsCreateRequest struct {
PrimaryTitle string `json:"primary_title" validate:"required"`
SecondaryTitle string `json:"secondary_title"`
Description string `json:"description"`
PrimaryCTA string `json:"primary_cta"`
SecondaryCTAText string `json:"secondary_cta_text"`
}
func (req PopupNewsContentsCreateRequest) ToEntity() *entity.PopupNewsContents {
return &entity.PopupNewsContents{
PrimaryTitle: req.PrimaryTitle,
SecondaryTitle: req.SecondaryTitle,
Description: req.Description,
PrimaryCTA: req.PrimaryCTA,
SecondaryCTAText: req.SecondaryCTAText,
}
}
// Update
type PopupNewsContentsUpdateRequest struct {
ID uint `json:"id" validate:"required"`
PrimaryTitle string `json:"primary_title" validate:"required"`
SecondaryTitle string `json:"secondary_title"`
Description string `json:"description"`
PrimaryCTA string `json:"primary_cta"`
SecondaryCTAText string `json:"secondary_cta_text"`
}
func (req PopupNewsContentsUpdateRequest) ToEntity() *entity.PopupNewsContents {
return &entity.PopupNewsContents{
ID: req.ID,
PrimaryTitle: req.PrimaryTitle,
SecondaryTitle: req.SecondaryTitle,
Description: req.Description,
PrimaryCTA: req.PrimaryCTA,
SecondaryCTAText: req.SecondaryCTAText,
}
}