package allied_creation_user

import "time"

//搜索用户列表
type (
	ReqUserSearch struct {
		// 查询偏离量
		Offset int `json:"offset"`
		// 查询限制
		Limit int `json:"limit"`
		// 企业id
		CompanyId int64 ` json:"companyId"`
		// 组织ID
		OrganizationId int64 `json:"organizationId"`
		// 部门编号
		DepartmentId int64 `json:"departmentId"`
		// 用户姓名
		UserName string `json:"userName"`
		// 部门名称
		DepName string `json:"depName"`
		// 手机号码
		Phone string `json:"phone"`
	}

	// //DataUserSearch 搜索用户列表
	DataUserSearch struct {
		Count int `json:"count"`
		Users []struct {
			UserID         int    `json:"userId"`
			CompanyID      int    `json:"companyId"`
			UserBaseID     int    `json:"userBaseId"`
			UserType       int    `json:"userType"`
			UserCode       string `json:"userCode"`
			UserName       string `json:"userName"`
			OrganizationID int    `json:"organizationId"`
			DepartmentID   int    `json:"departmentId"`
			UserOrg        []struct {
				OrgID   int    `json:"orgId"`
				OrgName string `json:"orgName"`
			} `json:"userOrg"`
			UserRole []struct {
				RoleID   int    `json:"roleId"`
				RoleName string `json:"roleName"`
				Ext      struct {
					OrgName string `json:"orgName"`
				} `json:"ext"`
			} `json:"userRole"`
			CooperationInfo struct {
				CooperationCompany  string    `json:"cooperationCompany"`
				CooperationDeadline time.Time `json:"cooperationDeadline"`
			} `json:"cooperationInfo"`
			EnableStatus int `json:"enableStatus"`
			Ext          struct {
				OrgName string `json:"orgName"`
				Phone   string `json:"phone"`
				DepName string `json:"depName"`
			} `json:"ext"`
		} `json:"users"`
	}
)

//创建用户
type (
	ReqCreateUser struct {
		// 企业id
		CompanyId int64 `json:"companyId"`
		// 用户类型  1:企业内部用户(内部添加) 2:共创用户   1024:企业注册用户(注册添加)
		UserType int `json:"userType"`
		// 用户编号 企业内标识
		UserCode string ` json:"userCode" `
		// 组织机构
		OrganizationId int64 `json:"organizationId,omitempty" `
		// 所属部门
		DepartmentId int64 `json:"departmentId,omitempty" `
		// 用户关联的组织
		UserOrg []int64 `json:"userOrg,omitempty"`
		// 用户关联的角色
		UserRole []int64 `json:"userRole,omitempty"`
		// 共创公司
		CooperationCompany string `json:"cooperationCompany,omitempty"`
		// 共创到期时间 (yyyy-MM-dd)
		CooperationDeadline time.Time ` json:"cooperationDeadline,omitempty"`
		// 启用状态(启用:1 禁用:2)
		EnableStatus int ` json:"enableStatus,omitempty"`
		// 密码
		Password string ` json:"password" `
		// 用户姓名
		UserName string `json:"userName"`
		// 手机号码
		Phone string `json:"phone" `
		// 头像
		Avatar string `json:"avatar"`
		// 邮箱
		Email string `json:"email"`
	}
	DataCreateUser struct {
	}
)

//更新用户
type (
	ReqUpdateUser struct {
		// 企业id
		CompanyId int64 `json:"companyId"`
		// 用户类型  1:企业内部用户(内部添加) 2:共创用户   1024:企业注册用户(注册添加)
		UserType int `json:"userType"`
		// 用户编号 企业内标识
		UserCode string ` json:"userCode" `
		// 组织机构
		OrganizationId int64 `json:"organizationId,omitempty" `
		// 所属部门
		DepartmentId int64 `json:"departmentId,omitempty" `
		// 用户关联的组织
		UserOrg []int64 `json:"userOrg,omitempty"`
		// 用户关联的角色
		UserRole []int64 `json:"userRole,omitempty"`
		// 共创公司
		CooperationCompany string `json:"cooperationCompany,omitempty"`
		// 共创到期时间 (yyyy-MM-dd)
		CooperationDeadline time.Time ` json:"cooperationDeadline,omitempty"`
		// 启用状态(启用:1 禁用:2)
		EnableStatus int ` json:"enableStatus,omitempty"`
		// 密码
		Password string ` json:"password" `
		// 用户姓名
		UserName string `json:"userName"`
		// 手机号码
		Phone string `json:"phone" `
		// 头像
		Avatar string `json:"avatar"`
		// 邮箱
		Email string `json:"email"`
	}

	DataUpdateUser struct {
	}
)

//获取用户
type (
	ReqGateUser struct {
		UserId int64 `json:"userId"`
	}

	DataGateUser struct {
	}
)

//删除用户
type (
	ReqDeleteUser struct {
		UserId int64 `json:"userId"`
	}

	DataDeleteUser struct {
	}
)

//批量修改用户启用状态
type (
	ReqBatchEnableUser struct {
		UserId       int64 `json:"userId"`
		EnableStatus int   `json:"enableStatus"`
	}

	DataBatchEnableUser struct {
	}
)

//批量重置密码
type (
	ReqBatchResetPasswordUser struct {
		Password string
		UserIds  []int64
	}
	DataBatchResetPasswordUser struct {
	}
)

//创建共创用户
type (
	ReqCreateCooperatorUser struct {
	}
	DataCreateCooperatorUser struct {
	}
)

//更新共创用户
type (
	ReqUpdateCooperatorUser struct {
		UserId int64 `json:"userId"`
	}
	DataUpdateCooperatorUser struct {
	}
)

//获取用户概要数据
type (
	ReqUserProfile struct {
		UserId int64 `json:"userId"`
	}
	DataUserProfile struct {
	}
)

//更新用户基础信息数据
type (
	ReqUserUpdateBaseInfo struct {
		UserId int64 `json:"userId"`
	}
	DataUserUpdateBaseInfo struct {
	}
)

//返回用户有权限的菜单
type (
	ReqUserAccessMenus struct {
		UserId int64 `json:"userId"`
	}
	DataUserAccessMenus struct {
	}
)