97 lines
2.9 KiB
Go
97 lines
2.9 KiB
Go
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"`
|
|
}
|