package crm

import (
	"hongze/fms_api/global"
	"time"
)

// Admin 系统管理员表
type Admin struct {
	AdminId                   int       `gorm:"primaryKey;column:admin_id;type:bigint(20);not null" json:"admin_id"`
	AdminName                 string    `gorm:"uniqueIndex:un;index:name;index:admin_pass;column:admin_name;type:varchar(60);not null" json:"admin_name"`
	AdminAvatar               string    `gorm:"column:admin_avatar;type:varchar(255);not null;default:''" json:"admin_avatar"` // 用户头像
	RealName                  string    `gorm:"column:real_name;type:varchar(60)" json:"real_name"`
	Password                  string    `gorm:"index:password;index:admin_pass;column:password;type:varchar(60);not null" json:"password"`
	LastUpdatedPasswordTime   time.Time `gorm:"column:last_updated_password_time;type:datetime" json:"last_updated_password_time"`
	Enabled                   int       `gorm:"uniqueIndex:un;column:enabled;type:tinyint(1);not null;default:1" json:"enabled"` // 1:有效,0:禁用
	Email                     string    `gorm:"column:email;type:varchar(60)" json:"email"`
	LastLoginTime             time.Time `gorm:"column:last_login_time;type:datetime" json:"last_login_time"`                                        // 最近登陆时间
	CreatedTime               time.Time `gorm:"index:created_time;column:created_time;type:datetime;default:CURRENT_TIMESTAMP" json:"created_time"` // 创建时间
	LastUpdatedTime           time.Time `gorm:"index:last_updated_time;column:last_updated_time;type:timestamp;not null;default:CURRENT_TIMESTAMP" json:"last_updated_time"`
	Role                      string    `gorm:"column:role;type:varchar(30);default:saller" json:"role"`                 // 用户角色
	Mobile                    string    `gorm:"column:mobile;type:varchar(20)" json:"mobile"`                            // 手机号
	RoleType                  int       `gorm:"column:role_type;type:tinyint(4);default:0" json:"role_type"`             // 角色类型:1需要录入指标,0:不需要
	RoleId                    int       `gorm:"column:role_id;type:int(11);default:0" json:"role_id"`                    // 角色id
	RoleName                  string    `gorm:"column:role_name;type:varchar(100)" json:"role_name"`                     // 角色名称
	RoleTypeCode              string    `gorm:"column:role_type_code;type:varchar(20);default:''" json:"role_type_code"` // 角色编码
	DepartmentId              int       `gorm:"column:department_id;type:int(11);default:0" json:"department_id"`        // 部门id
	DepartmentName            string    `gorm:"column:department_name;type:varchar(100)" json:"department_name"`         // 部门名称
	GroupId                   int       `gorm:"column:group_id;type:int(11);default:0" json:"group_id"`                  // 分组id
	GroupName                 string    `gorm:"column:group_name;type:varchar(100)" json:"group_name"`                   // 分组名称
	Authority                 int       `gorm:"column:authority;type:tinyint(4);default:0" json:"authority"`             // 管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长
	Position                  string    `gorm:"column:position;type:varchar(100)" json:"position"`                       // 职位
	DirectorId                int       `gorm:"column:director_id;type:int(11)" json:"director_id"`
	DisableTime               time.Time `gorm:"column:disable_time;type:datetime" json:"disable_time"`                                                    // 禁用时间
	ChartPermission           int       `gorm:"column:chart_permission;type:tinyint(9) unsigned;default:0" json:"chart_permission"`                       // 图表指标操作权限,0:只能操作 自己的,1:所有图表可操作
	EdbPermission             int       `gorm:"column:edb_permission;type:tinyint(9) unsigned;default:0" json:"edb_permission"`                           // 指标库操作权限,0:只能操作 自己的,1:所有图表可操作
	MysteelChemicalPermission int       `gorm:"column:mysteel_chemical_permission;type:tinyint(9) unsigned;default:0" json:"mysteel_chemical_permission"` // 钢联化工指标操作权限,0:只能操作 自己的,1:所有指标可操作
	OpenId                    string    `gorm:"column:open_id;type:varchar(100);default:''" json:"open_id"`                                               // 弘则部门公众号的openid
	UnionId                   string    `gorm:"column:union_id;type:varchar(100);default:''" json:"union_id"`                                             // 微信公众平台唯一标识
}

func (m *Admin) TableName() string {
	return "admin"
}

func (m *Admin) List(condition string, pars []interface{}) (list []*Admin, err error) {
	list = make([]*Admin, 0)
	err = global.MYSQL["report"].Model(m).
		Where(condition, pars...).
		Find(&list).Error
	return
}

func (m *Admin) Count(condition string, pars []interface{}) (total int64, err error) {
	err = global.MYSQL["report"].Model(m).
		Where(condition, pars...).
		Count(&total).Error
	return
}