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

54 lines
1.1 KiB
Go
Raw Normal View History

2026-02-24 09:37:19 +00:00
package request
import (
"time"
"web-qudo-be/app/database/entity"
"web-qudo-be/utils/paginator"
)
type SubscriptionGeneric interface {
ToEntity()
}
type SubscriptionQueryRequest struct {
Email *string `json:"email"`
Pagination *paginator.Pagination `json:"pagination"`
}
type SubscriptionCreateRequest struct {
Email string `json:"email" validate:"required,email"`
}
func (req SubscriptionCreateRequest) ToEntity() *entity.Subscription {
return &entity.Subscription{
Email: req.Email,
}
}
type SubscriptionUpdateRequest struct {
ID uint `json:"id" validate:"required"`
Email string `json:"email" validate:"required,email"`
}
func (req SubscriptionUpdateRequest) ToEntity() *entity.Subscription {
return &entity.Subscription{
ID: req.ID,
Email: req.Email,
UpdatedAt: time.Now(),
}
}
type SubscriptionQueryRequestContext struct {
Email string `json:"email"`
}
func (req SubscriptionQueryRequestContext) ToParamRequest() SubscriptionQueryRequest {
var request SubscriptionQueryRequest
if email := req.Email; email != "" {
request.Email = &email
}
return request
}