package models

//单体用户详情数据
type User struct {
	// 用户Id
	UserId int `json:"userId,omitempty"`
	// 基础信息ID
	UserBaseId int `json:"userBaseId,omitempty"`
	// 用户类型
	UserType int `json:"userType,omitempty"`
	// 员工类型  1:固定 2:派遣 3.临时
	EmployeeType int `json:"employeeType,omitempty"`
	// IC卡号
	IcCardNumber string `json:"icCardNumber,omitempty"`
	// 用户编号
	UserCode string `json:"userCode,omitempty"`
	// 启用状态
	EnableStatus int `json:"enableStatus,omitempty"`
	// 用户信息
	UserInfo UserInfo `json:"userInfo,omitempty"`
	// 所属公司
	Company *Company `json:"company,omitempty"`
	// 所属组织
	Org *Organization `json:"org,omitempty"`
	// 部门
	Department *Department `json:"department,omitempty"`
}

// UserInfo 用户信息
type UserInfo struct {
	Phone    string `json:"phone,omitempty"`
	UserCode string `json:"userCode,omitempty"`
	Email    string `json:"email,omitempty"`
	UserName string `json:"userName,omitempty"`
	Avatar   string `json:"avatar,omitempty"`
	// 员工类型  1:固定 2:派遣 3.临时
	EmployeeType int `json:"employeeType,omitempty"`
}

// Company 公司信息
type Company struct {
	CompanyId   int    `json:"companyId,omitempty"`
	CompanyName string `json:"companyName,omitempty"`
	Status      int    `json:"status,omitempty"`
	Logo        string `json:"logo,omitempty"`
}

// Org 组织
type Organization struct {
	OrgId   int    `json:"orgId,omitempty"`
	OrgCode string `json:"orgCode,omitempty"`
	OrgName string `json:"orgName,omitempty"`
}

// Department 部门
type Department struct {
	DepartmentId     int    `json:"departmentId,omitempty"`
	DepartmentName   string `json:"departmentName,omitempty"`
	DepartmentNumber string `json:"departmentNumber,omitempty"`
}

func (org Organization) ToDepartment() *Department {
	return &Department{
		DepartmentId:     org.OrgId,
		DepartmentName:   org.OrgName,
		DepartmentNumber: org.OrgCode,
	}
}