package model

import "time"

// Folder 收藏夹
type Folder struct {
	ID          uint      `gorm:"primarykey" json:"id"`
	UserID      uint      `gorm:"index;not null" json:"user_id"`
	Name        string    `gorm:"type:varchar(50);not null" json:"name"`
	Description string    `gorm:"type:varchar(200);default:''" json:"description"`
	IsPublic    bool      `gorm:"default:false" json:"is_public"`
	IsDefault   bool      `gorm:"default:false" json:"is_default"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`

	// 联表查询填充（非数据库字段）
	ItemCount int64 `gorm:"-:migration;<-:false;column:item_count" json:"item_count,omitempty"`
}

// FolderItem 收藏记录
type FolderItem struct {
	ID        uint      `gorm:"primarykey" json:"id"`
	FolderID  uint      `gorm:"index;not null" json:"folder_id"`
	PostID    uint      `gorm:"index;not null" json:"post_id"`
	UserID    uint      `gorm:"index;not null" json:"user_id"`
	CreatedAt time.Time `json:"created_at"`

	// 联表查询填充
	PostTitle string `gorm:"-:migration;<-:false;column:post_title" json:"post_title,omitempty"`
}
