package backend

import (
	"cron_admin/app/models/cronusermodel"
	"time"
)

type UserListRequest struct {
	Page        int      `json:"page" validate:"required" form:"page" example:"1"`
	Limit       int      `json:"limit" validate:"required" form:"limit" example:"10"`
	Tel         string   `json:"tel" form:"tel" example:"155555555"`
	Status      int      `json:"status" form:"status" example:"1"`
	Name        string   `json:"name" form:"name" example:"46516"`
	DtalkUserId string   `json:"dtalk_user_id"`
	DtalkDepId  string   `json:"dtalk_dep_id"`
	WxOpenId    string   `json:"wx_open_id"`
	UserIds     []string `json:"user_ids"`
}

type UserInfoRequest struct {
	Id int `json:"id" form:"id" validate:"required" example:"1"`
}

type UserListResponse struct {
	UserId      int    `json:"user_id" form:"id"`
	Name        string `json:"name"`
	Tel         string `json:"tel"`
	DtalkUserId string `json:"dtalk_user_id"`
	DtalkDepId  string `json:"dtalk_dep_id"`
	WxOpenId    string `json:"wx_open_id"`
	Status      int    `json:"status"`
	CreateTime  string `json:"create_time"`
}

type UserAddRequest struct {
	Name        string `json:"name"`
	Tel         string `json:"tel"`
	DtalkUserId string `json:"dtalk_user_id"`
	DtalkDepId  string `json:"dtalk_dep_id"`
	WxOpenId    string `json:"wx_open_id"`
	Status      int    `json:"status"`
}

type UserEditRequest struct {
	UserId      int    `json:"user_id" validate:"required" form:"user_id" example:""`
	Name        string `json:"name"`
	Tel         string `json:"tel"`
	DtalkUserId string `json:"dtalk_user_id"`
	DtalkDepId  string `json:"dtalk_dep_id"`
	WxOpenId    string `json:"wx_open_id"`
	Status      int    `json:"status"`
}

type UserDeleteRequest struct {
	UserId int `json:"user_id" validate:"required" form:"user_id" example:""`
}

func (response *UserListResponse) ResponseFromDb(l cronusermodel.CronUser) {
	response.UserId = l.UserId
	response.Name = l.Name
	response.Tel = l.Tel
	response.Status = l.Status
	response.DtalkUserId = l.DtalkUserId
	response.DtalkDepId = l.DtalkDepId
	response.WxOpenId = l.WxOpenId
	response.CreateTime = l.CreateTime.Format(time.DateTime)
	return
}