56 lines
1.6 KiB
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,
|
||
|
|
}
|
||
|
|
}
|