package models // Swagger-friendly (light) structs for documentation only. // These avoid embedding external types (gorm.Model) so `swag` can parse them. type CategoryDoc struct { ID uint `json:"id"` Title string `json:"title"` Description string `json:"description,omitempty"` ParentID *uint `json:"parent_id,omitempty"` Children []CategoryDoc `json:"children,omitempty"` } type TagDoc struct { ID uint `json:"id"` Name string `json:"name"` } type PostDoc struct { ID uint `json:"id"` Title string `json:"title"` Content string `json:"content,omitempty"` Images []string `json:"images,omitempty"` Categories []CategoryDoc `json:"categories,omitempty"` Tags []TagDoc `json:"tags,omitempty"` } type CommentDoc struct { ID uint `json:"id"` UserID uint `json:"user_id"` PostID uint `json:"post_id"` Body string `json:"body,omitempty"` } type CategoryViewDoc struct { ID uint `json:"id"` CategoryID uint `json:"category_id"` IPAddress string `json:"ip_address,omitempty"` } type ProductCategoryDoc struct { ID uint `json:"id"` Title string `json:"title"` Slug string `json:"slug"` Description string `json:"description,omitempty"` Keywords string `json:"keywords,omitempty"` ParentID *uint `json:"parent_id,omitempty"` Children []ProductCategoryDoc `json:"children,omitempty"` } type ProductTagDoc struct { ID uint `json:"id"` Name string `json:"name"` } type ProductDoc struct { ID uint `json:"id"` Title string `json:"title"` Images string `json:"images"` Price float64 `json:"price"` Width int `json:"width"` Height int `json:"height"` Quality int `json:"quality"` Format string `json:"format"` Content string `json:"content,omitempty"` Slug string `json:"slug"` Categories []ProductCategoryDoc `json:"categories,omitempty"` Tags []ProductTagDoc `json:"tags,omitempty"` } type CartItemDoc struct { ID uint `json:"id"` CartID uint `json:"cart_id"` ProductID uint `json:"product_id"` Product ProductDoc `json:"product,omitempty"` Quantity int `json:"quantity"` } type CartDoc struct { ID uint `json:"id"` UserID uint `json:"user_id"` Items []CartItemDoc `json:"items,omitempty"` } type ProductCommentDoc struct { ID uint `json:"id"` UserID uint `json:"user_id"` ProductID uint `json:"product_id"` Body string `json:"body"` } type ProductCategoryViewDoc struct { ID uint `json:"id"` CategoryID uint `json:"category_id"` IPAddress string `json:"ip_address,omitempty"` }