package v1

import (
	"kami/api/commonApi"

	"github.com/gogf/gf/v2/os/gtime"
)

type MerchantListParamsReq struct {
	commonApi.CommonPageReq
	MerchantName string `json:"merchantName"         description:"商户名称"`
	MerchantUid  string `json:"merchantUid"          description:"商户uid"`
}

type MerchantRecord struct {
	Status        string `json:"status"               description:"商户状态状态" v:"required#缺失登录状态"`
	MerchantName  string `json:"merchantName"         description:"商户名称" v:"required#缺失用户名"`
	LoginAccount  string `json:"loginAccount"         description:"登录账号" v:"required#缺失用户名"`
	Remark        string `json:"remark"               description:"备注"`
	LoginPassword string `json:"loginPassword"        description:"登录密码" v:"required#缺失ID"`
}

type MerchantInfoRecord struct {
	Status               string      `json:"status"               description:"商户状态状态"`
	BelongAgentUid       string      `json:"belongAgentUid"       description:"所属代理uid"`
	BelongAgentName      string      `json:"belongAgentName"      description:"所属代理名称"`
	MerchantName         string      `json:"merchantName"         description:"商户名称"`
	MerchantUid          string      `json:"merchantUid"          description:"商户uid"`
	MerchantKey          string      `json:"merchantKey"          description:"商户key"`
	MerchantSecret       string      `json:"merchantSecret"       description:"商户密钥"`
	LoginAccount         string      `json:"loginAccount"         description:"登录账号"`
	ClearTextPassword    string      `json:"ClearTextPassword"    description:"明文明码"`
	AutoSettle           string      `json:"autoSettle"           description:"是否自动结算"`
	AutoPayFor           string      `json:"autoPayFor"           description:"是否自动代付"`
	WhiteIps             string      `json:"whiteIps"             description:"配置ip白名单"`
	Remark               string      `json:"remark"               description:"备注"`
	SinglePayForRoadUid  string      `json:"singlePayForRoadUid"  description:"单代付代付通道uid"`
	SinglePayForRoadName string      `json:"singlePayForRoadName" description:"单代付通道名称"`
	RollPayForRoadCode   string      `json:"rollPayForRoadCode"   description:"轮询代付通道编码"`
	RollPayForRoadName   string      `json:"rollPayForRoadName"   description:"轮询代付通道名称"`
	PayforFee            float64     `json:"payforFee"            description:"代付手续费"`
	UpdateTime           *gtime.Time `json:"updateTime"           description:"更新时间"`
	CreateTime           *gtime.Time `json:"createTime"           description:"创建时间"`
}

type MerchantSimpleInfoRecord struct {
	MerchantName string `json:"merchantName"         description:"商户名称" v:"required#缺失用户名"`
	MerchantUid  string `json:"merchantUid"          description:"商户uid" v:"required#缺失用户ID"`
	LoginAccount string `json:"loginAccount"         description:"登录账号" v:"required#缺失账户"`
	WhiteIps     string `json:"whiteIps"             description:"配置ip白名单"`
	Remark       string `json:"remark"               description:"备注"`
}

type MerchantDeployRecord struct {
	Id             uint   `json:"id"                     description:"主键，自增"`
	Status         string `json:"status"                 description:"商户状态状态"`
	MerchantUid    string `json:"merchantUid"            description:"商户uid"`
	PayType        string `json:"payType"                description:"支付配置"`
	PayTypeName    string `json:"payTypeName"            description:"支付配置名称"`
	SingleRoadName string `json:"singleRoadName"         description:"单通道名称"`
	RollRoadName   string `json:"rollRoadName"           description:"轮询通道名称"`
	RoadSetting    string `json:"roadSetting"            description:"通道设置"`
	MerchantDeployRateAdd
}

type PlatformRateRecord struct {
	FactLabel     float64 `json:"factLabel" description:"实际面值"`
	ShowLabel     float64 `json:"showLabel" description:"展示面额"`
	PlatformLabel string  `json:"platformLabel" description:"平台"`
	PlatformFee   float64 `json:"platformFee" description:"平台费"`
	IsLinkSingle  bool    `json:"isLinkSingle" description:"链接是否单独放置"`
	Value         float64 `json:"value" description:"费率"`
	LinkID        string  `json:"linkID" description:"链接"`
	Sort          int     `json:"sort" description:"排序"`
}

type MerchantDeployRateAdd struct {
	SingleRoadUid          string               `json:"singleRoadUid" v:"required#缺失通道ID"       description:"单通道uid"`
	SingleRoadPlatformRate []PlatformRateRecord `json:"singleRoadPlatformRate" v:"required#缺失单通到平台净利率" description:"单通到平台净利率（关系映射）"`
	SingleRoadAgentRate    float64              `json:"singleRoadAgentRate" v:"required#缺失单通到代理净利率"   description:"单通到代理净利率"`
	RollRoadCode           string               `json:"rollRoadCode"      v:"required#缺失轮询通道编码"     description:"轮询通道编码"`
	RollRoadAgentRate      float64              `json:"rollRoadAgentRate"  v:"required#缺失轮询通道代理净利率"    description:"轮询通道代理净利率"`
	RollRoadPlatformRate   float64              `json:"rollRoadPlatformRate" v:"required#缺失轮询通道平台净利率"  description:"轮询通道平台净利率"`
	MerchantUid            string               `json:"merchantUid"    v:"required#商户uid"        description:"商户uid"`
	AutoSettle             string               `json:"autoSettle" v:"required#缺失自动结算" description:"自动结算"`
	AutoPayfor             string               `json:"autoPayfor" v:"required#缺失自动代付" description:"自动代付"`
	RestrictArea           []string             `json:"restrictArea" description:"限制地区"`
	IsRestrictAgent        bool                 `json:"isRestrictAgent"        description:"是否检测代理"`
	IsRestrictCardPass     bool                 `json:"isRestrictCardPass"     description:"是否限制卡密"`
	IsRestrictDevice       bool                 `json:"isRestrictDevice"       description:"是否限制设备"`
	IsRestrictIp           bool                 `json:"isRestrictIp"           description:"是否限制IP"`
	IsRestrictInternalIp   bool                 `json:"isRestrictInternalIp"   description:"是否限制局域网IP"`
	SubmitStrategy         string               `json:"submitStrategy"         description:"提交策略"`
}

type MerchantDeployRateUpdate struct {
	MerchantDeployRateAdd
	commonApi.CommonIntId
}
