package param

import "wireguard-dashboard/model/template_data"

// ClientList
// @description: 客户端列表
type ClientList struct {
	Name       string `json:"name" form:"name"`
	Email      string `json:"email" form:"email"`
	Ip         string `json:"ip" form:"ip"`
	CreateUser string `json:"createUser" form:"createUser"`
	Enabled    *int   `json:"enabled" form:"enabled"`
	page
}

// ClientStatusList
// @description: 客户端状态列表
type ClientStatusList struct {
	page
}

// SaveClient
// @description: 新增/编辑客户端
type SaveClient struct {
	Id                   string              `json:"id" form:"id" binding:"omitempty"`
	ServerId             string              `json:"serverId" form:"serverId" binding:"required"`
	Name                 string              `json:"name" form:"name" binding:"required"`
	Email                string              `json:"email" form:"email" binding:"omitempty"`
	SubnetRange          string              `json:"subnetRange" form:"subnetRange" binding:"omitempty"`
	IpAllocation         []string            `json:"ipAllocation" form:"ipAllocation" binding:"required"`
	AllowedIPS           []string            `json:"allowedIPS" form:"allowedIPS" binding:"required"`
	ExtraAllowedIPS      []string            `json:"extraAllowedIPS" form:"extraAllowedIPS" binding:"omitempty"`
	Endpoint             string              `json:"endpoint" form:"endpoint" binding:"omitempty"`
	UseServerDNS         *int                `json:"useServerDNS" form:"useServerDNS" binding:"required,oneof=1 0"`
	EnabledAfterCreation *int                `json:"enableAfterCreation" form:"enableAfterCreation" binding:"required,oneof=1 0"`
	Keys                 *template_data.Keys `json:"keys" form:"keys" binding:"omitempty"`
	Enabled              *int                `json:"enabled" form:"enabled" binding:"required,oneof=1 0"`
}

// ControlServer
// @description: 服务端控制
type ControlServer struct {
	Status string `json:"status" form:"status" binding:"required,oneof=START STOP RESTART"`
}
