package request import ( "server/internal/pkg/validator" "time" ) type CreatePostRequest struct { Title string `json:"title" validate:"required,min=1"` CoverID *int32 `json:"cover_id" validate:"omitempty"` Slug string `json:"slug" validate:"required,min=0"` Content string `json:"content" validate:"required,min=0"` Summary string `json:"summary" validate:"required,min=0"` Status *int16 `json:"status" validate:"required,oneof=0 1 2"` Sort *int32 `json:"sort" validate:"required,min=0"` PublishedAt time.Time `json:"published_at" validate:"required"` CategoryID *int32 `json:"category_id" validate:"required,min=1"` Tags []int32 `json:"tags" validate:"omitempty,dive,min=1"` } type UpdatePostRequest struct { Title *string `json:"title" validate:"omitempty,min=1"` CoverID validator.NullInt32 `json:"cover_id" validate:"omitempty"` Slug *string `json:"slug" validate:"omitempty,min=1"` Content *string `json:"content" validate:"required,min=0"` Summary *string `json:"summary" validate:"omitempty,min=1"` Status *int16 `json:"status" validate:"omitempty,oneof=0 1 2"` View *int32 `json:"view" validate:"omitempty,min=1"` Sort *int32 `json:"sort" validate:"omitempty,min=0"` PublishedAt *time.Time `json:"published_at" validate:"omitempty"` CategoryID *int32 `json:"category_id" validate:"required,min=1"` Tags []int32 `json:"tags" validate:"omitempty,dive,min=1"` } type SearchPublishedPostsParams struct { CategoryCode string `json:"category_code" validate:"omitempty"` TagCode string `json:"tag_code" validate:"omitempty"` }