package dto import ( "encoding/json" "time" ) type AnnouncementRequest struct { ID uint `json:"ID"` Title string `json:"title"` Content string `json:"content"` UserID *uint `json:"userID"` Attachments json.RawMessage `json:"attachments"` } type AnnouncementSearchRequest struct { Page int `form:"page"` PageSize int `form:"pageSize"` StartCreatedAt *time.Time `form:"startCreatedAt"` EndCreatedAt *time.Time `form:"endCreatedAt"` } type AnnouncementResponse struct { ID uint `json:"ID"` CreatedAt time.Time `json:"CreatedAt"` UpdatedAt time.Time `json:"UpdatedAt"` // Keep the soft-delete slot in the transport shape while omitting it from // JSON responses. DeletedAt any `json:"-"` Title string `json:"title"` Content string `json:"content"` UserID *uint `json:"userID"` Attachments any `json:"attachments"` } type SelectOptionResponse struct { Label string `json:"label"` Value uint `json:"value"` }