package models

import (
	"time"

	"github.com/veypi/vigo"
)

// refresh token，由oa 秘钥签发，有效期长, 存储在token表
// app token, 由app 秘钥签发，有效期短, 不存储
// OverPerm 非oa应用获取oa数据的权限，由用户设定
type Token struct {
	vigo.Model
	UserID    string    `json:"user_id" gorm:"index;type:varchar(36)"  src:"json" desc:"用户ID"`
	User      *User     `json:"-"`
	AppID     string    `json:"app_id" gorm:"index;type:varchar(36)"  src:"json" desc:"应用ID"`
	App       *App      `json:"-"`
	ExpiredAt time.Time `json:"expired_at"  src:"json" desc:"过期时间"`
	OverPerm  string    `json:"over_perm"  src:"json" desc:"覆盖权限"`
	Device    string    `json:"device"  src:"json" desc:"设备信息"`
	Ip        string    `json:"ip"`
}
