package system

import "time"

// ParamsInfo 参数信息
type ParamsInfo struct {
	ID        uint      `json:"ID"`
	Name      string    `json:"name"`
	Key       string    `json:"key"`
	Value     string    `json:"value"`
	Desc      string    `json:"desc"`
	CreatedAt time.Time `json:"createdAt"`
}

// CreateParamsRequest 创建参数请求
type CreateParamsRequest struct {
	Name  string `json:"name" binding:"required"`
	Key   string `json:"key" binding:"required"`
	Value string `json:"value"`
	Desc  string `json:"desc"`
}

// UpdateParamsRequest 更新参数请求
type UpdateParamsRequest struct {
	ID    uint   `json:"ID" binding:"required"`
	Name  string `json:"name"`
	Key   string `json:"key"`
	Value string `json:"value"`
	Desc  string `json:"desc"`
}

// GetParamsListRequest 获取参数列表请求
type GetParamsListRequest struct {
	Page           int        `json:"page" form:"page"`
	PageSize       int        `json:"pageSize" form:"pageSize"`
	Name           string     `json:"name" form:"name"`
	Key            string     `json:"key" form:"key"`
	StartCreatedAt *time.Time `json:"startCreatedAt" form:"startCreatedAt"`
	EndCreatedAt   *time.Time `json:"endCreatedAt" form:"endCreatedAt"`
}

// GetParamsListReply 获取参数列表响应
type GetParamsListReply struct {
	List     []ParamsInfo `json:"list"`
	Total    int64        `json:"total"`
	Page     int          `json:"page"`
	PageSize int          `json:"pageSize"`
}

// GetParamsByKeyRequest 根据Key获取参数请求
type GetParamsByKeyRequest struct {
	Key string `json:"key" form:"key" binding:"required"`
}
