package model

import (
	"time"
)

// User 用户模型
type User struct {
	ID        uint      `gorm:"primaryKey" json:"id"`
	OpenID    string    `gorm:"uniqueIndex;size:64" json:"openId"`
	UnionID   string    `gorm:"size:64" json:"unionId"`
	Nickname  string    `gorm:"size:64" json:"nickname"`
	Avatar    string    `gorm:"size:255" json:"avatar"`
	Gender    int       `gorm:"default:0" json:"gender"` // 0:未知 1:男 2:女
	Phone     string    `gorm:"size:20" json:"phone"`
	Email     string    `gorm:"size:100" json:"email"`
	Status    int       `gorm:"default:1" json:"status"` // 1:正常 0:禁用
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}

// UserProfile 用户资料扩展
type UserProfile struct {
	ID        uint      `gorm:"primaryKey" json:"id"`
	UserID    uint      `gorm:"index" json:"userId"`
	RealName  string    `gorm:"size:32" json:"realName"`
	Birthday  string    `gorm:"size:10" json:"birthday"` // YYYY-MM-DD
	BirthTime string    `gorm:"size:8" json:"birthTime"` // HH:mm:ss
	Gender    int       `gorm:"default:0" json:"gender"`
	Zodiac    string    `gorm:"size:10" json:"zodiac"`   // 生肖
	Constellation string `gorm:"size:20" json:"constellation"` // 星座
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}

// MaxFreeBirthProfiles 每个用户可免费绑定的生辰数量上限
const MaxFreeBirthProfiles = 3

// BirthProfile 用户生辰档案（八字绑定），每个用户最多免费绑定 MaxFreeBirthProfiles 个
type BirthProfile struct {
	ID        uint      `gorm:"primaryKey" json:"id"`
	UserID    uint      `gorm:"index" json:"userId"`
	Name      string    `gorm:"size:32" json:"name"`     // 备注名（如本人、家人等）
	Gender    int       `gorm:"default:1" json:"gender"` // 1:男 2:女
	Birthday  string    `gorm:"size:10" json:"birthday"` // YYYY-MM-DD
	BirthTime string    `gorm:"size:8" json:"birthTime"` // HH:mm
	CreatedAt time.Time `json:"createdAt"`
	UpdatedAt time.Time `json:"updatedAt"`
}
