package model

import (
	"sundynix-micro-go/common/model"
	"time"
)

// SundynixUser 用户基础表（仅存储认证和通用信息）
type SundynixUser struct {
	model.BaseModel
	TenantID    string     `gorm:"size:20;column:tenant_id" json:"tenantId"`
	ClientID    string     `gorm:"size:20;column:client_id" json:"clientId"`
	Name        string     `gorm:"size:100;column:name" json:"name"`
	Account     string     `gorm:"size:50;column:account" json:"account"`
	Password    string     `gorm:"size:100;column:password" json:"-"`
	NickName    string     `gorm:"size:100;column:nick_name" json:"nickName"`
	Phone       string     `gorm:"size:20;column:phone" json:"phone"`
	SessionKey  string     `gorm:"size:80;column:session_key" json:"-"`
	UnionID     string     `gorm:"size:80;column:union_id" json:"unionId"`
	OpenID      string     `gorm:"size:80;column:open_id;index" json:"openId"`
	SaOpenID    string     `gorm:"size:80;column:sa_open_id" json:"saOpenId"`
	AvatarID    string     `gorm:"size:50;column:avatar_id" json:"avatarId"`
	Gender      int        `gorm:"default:0;column:gender" json:"gender"`
	LastLoginIP string     `gorm:"size:20;column:last_login_ip" json:"lastLoginIp"`
	LastLoginAt *time.Time `gorm:"column:last_login_at" json:"lastLoginAt"`
}

// TableName 指定表名
func (SundynixUser) TableName() string {
	return "sundynix_user"
}

// SundynixUserRole 用户角色关联表
type SundynixUserRole struct {
	UserID string `gorm:"size:50;primaryKey;column:user_id" json:"userId"`
	RoleID string `gorm:"size:50;primaryKey;column:role_id" json:"roleId"`
}

// TableName 指定表名
func (SundynixUserRole) TableName() string {
	return "sundynix_user_role"
}
