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"`
}
