package lark

type TenantAccessTokenRequest struct {
	APPID     string `json:"app_id"`
	APPSecret string `json:"app_secret"`
}

type TenantAccessTokenResponse struct {
	Code              int    `json:"code"`
	Msg               string `json:"msg"`
	Expire            int    `json:"expire"`
	TenantAccessToken string `json:"tenant_access_token"`
}

type CreateMessageRequest struct {
	ReceiveID string `json:"receive_id"`
	Content   string `json:"content"`
	MsgType   string `json:"msg_type"`
}

type MessageSender struct {
	ID         string `json:"id,omitempty"`
	IDType     string `json:"id_type,omitempty"`
	SenderType string `json:"sender_type"`
	TenantKey  string `json:"tenant_key"`
}

type MessageBody struct {
	Content string `json:"content,omitempty"`
}

type Response struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	Data    Data   `json:"data"`
}

type Data struct {
	UserList []Info `json:"user_list"`
}

type Info struct {
	Email  string `json:"email"`
	UserId string `json:"user_id"`
}

type GetUserIdBody struct {
	Emails []string `json:"emails"`
}

type UserNewInfo struct {
	Email string `json:"email"`
}

type UpdateResponse struct {
	Code    int      `json:"code"`
	Message string   `json:"message"`
	Data    UserData `json:"data"`
}
type UserData struct {
	User User `json:"user"`
}

type User struct {
	Name  string `json:"name"`
	Email string `json:"email"`
}

type GetExcelResponse struct {
	Code int          `json:"code"`
	Msg  string       `json:"msg"`
	Data ExcelResData `json:"data"`
}
type ExcelResData struct {
	Revision         int        `json:"revision"`
	SpreadsheetToken string     `json:"spreadsheetToken"`
	ValueRange       ValueRange `json:"valueRange"`
}
type ValueRange struct {
	MajorDimension string          `json:"majorDimension"`
	Range          string          `json:"range"`
	Revision       int             `json:"revision"`
	Values         [][]interface{} `json:"values"`
}

type UpdateUserBody struct {
	CustomAttrs []Attr `json:"custom_attrs"`
}

type SubDepartmentRes struct {
	Code    int               `json:"code"`
	Data    SubDepartmentInfo `json:"data"`
	Message string            `json:"message"`
}
type SubDepartmentInfo struct {
	HasMore   bool            `json:"has_more"`
	Items     []SubDepartment `json:"items"`
	PageToken string          `json:"page_token"`
}
type SubDepartment struct {
	Name               string `json:"name"`
	DepartmentId       string `json:"department_id"`
	OpenDepartmentId   string `json:"open_department_id"`
	LeaderUserId       string `json:"leader_user_id"`
	MemberCount        int    `json:"member_count"`
	ParentDepartmentId string `json:"parent_department_id"`
	Status             Status `json:"status"`
}
type Status struct {
	IsDeleted bool `json:"is_deleted"`
}
