package pposRequest

//AcSysOptionResponse 响应：系统字典
type AcSysOptionResponse struct {
	OptionId    int64  `json:"option_id"`    //
	OptionName  string `json:"option_name"`  //
	OptionValue string `json:"option_value"` //
	Type        string `json:"type"`         //
}

//AcCompanyListResponse 响应：公司
type AcCompanyListResponse struct {
	CompanyId     int64  `json:"company_id"`      //
	CompanyName   string `json:"company_name"`    //
	CompanyLogo   string `json:"company_logo"`    //
	Linkman       string `json:"linkman"`         //
	Telephone     string `json:"telephone"`       //
	ProvinceId    int64  `json:"province_id"`     //
	CityId        int64  `json:"city_id"`         //
	CountyId      int64  `json:"county_id"`       //
	Address       string `json:"address"`         //
	CompanyStatus string `json:"company_status"`  //
	AuthSportTags string `json:"auth_sport_tags"` //
	Domain        string `json:"domain"`          //
	WxDomain      string `json:"wx_domain"`       //
}

////////////////////////////////////////////////////

//CfgCateGetByIDResponse 响应：业务大类
type CfgCateGetByIDResponse struct {
	Id            int64  `json:"id"`              //id
	TradeCateId   int64  `json:"trade_cate_id"`   //业务类别id
	TradeCateName string `json:"trade_cate_name"` //业务类别名称
}

//CfgCateInfoResponse 响应：业务小类
type CfgCateInfoResponse struct {
	Id            int64  `json:"id"`
	IsOrder       int64  `json:"is_order"`
	IsProtocol    int64  `json:"is_protocol"`
	MpId          int64  `json:"mp_id"`
	TradeCateId   int64  `json:"trade_cate_id"`
	TradeCateName string `json:"trade_cate_name"`
	TradeTypeCode string `json:"trade_type_code"`
	TradeTypeId   int64  `json:"trade_type_id"`
	TradeTypeName string `json:"trade_type_name"`
}

type CfgTradeGetByIdResponse struct {
	IsOrder       int64  `json:"is_order"`
	IsProtocol    int64  `json:"is_protocol"`
	MpId          int64  `json:"mp_id"`
	TradeCateId   int64  `json:"trade_cate_id"`
	TradeTypeCode string `json:"trade_type_code"`
	TradeTypeId   int64  `json:"trade_type_id"`
	TradeTypeName string `json:"trade_type_name"`
	RtTradeTypeId int64  `json:"rt_trade_type_id"`
}

//CfgCateListResponse 响应：业务小类（分页）
type CfgCateListResponse struct {
	Count int64       `json:"count"` //count
	List  []TradeCate `json:"list"`  //list
	Page  int64       `json:"page"`  //page
	Size  int64       `json:"size"`  //size
}

type TradeCate struct {
	Id            int64  `json:"id"`
	IsProtocol    int64  `json:"is_protocol"`
	MpId          int64  `json:"mp_id"`
	TradeCateId   int64  `json:"trade_cate_id"`
	TradeCateName string `json:"trade_cate_name"`
	TradeTypeId   int64  `json:"trade_type_id"`
	TradeTypeName string `json:"trade_type_name"`
}

//CfgCommonCateCfgListResponse 响应：通用配置
type CfgCommonCateCfgListResponse struct {
	CateId   int64      `json:"cate_id"`   //cate_id
	CfgList  []*BaseCfg `json:"cfg_list"`  //cfg_list
	CateName string     `json:"cate_name"` //cate_name
}

type BaseCfg struct {
	CfgCode        string `json:"cfg_code"`
	CfgDesc        string `json:"cfg_desc"`
	CfgId          int64  `json:"cfg_id"`
	CfgImgUrl      string `json:"cfg_img_url"`
	CfgName        string `json:"cfg_name"`
	CfgSelectPost  string `json:"cfg_select_post"`
	CfgSelectType  int64  `json:"cfg_select_type"`
	CfgSelectUrl   string `json:"cfg_select_url"`
	CfgSelectValue string `json:"cfg_select_value"`
	CfgType        int64  `json:"cfg_type"`
	CfgValue       string `json:"cfg_value"`
}

////////////////////////////////////////////////////

//OrderInfoResponse 响应：订单创建/询价/支付
type OrderInfoResponse struct {
	StadiumInfo *StadiumInfo `json:"stadium_info"`
	MemberInfo  *MemberInfo  `json:"member_info"`
	Order       *OrderInfo   `json:"order"`
	Item        []*OrderItem `json:"item"`
}
type StadiumInfo struct {
	StadiumId      int64  `json:"stadium_id"`
	StadiumName    string `json:"stadium_name"`
	StadiumLogoUrl string `json:"stadium_logo_url"`
}

type MemberInfo struct {
	MemberId        int64  `json:"member_id"`          //
	MemberCardId    int64  `json:"member_card_id"`     //
	Name            string `json:"name"`               //
	Phone           string `json:"phone"`              //
	WxOpenId        string `json:"wx_open_id"`         //
	CardNum         string `json:"card_num"`           //
	SellerId        int64  `json:"seller_id"`          //会籍顾问
	BuyMemberId     int64  `json:"buy_member_id"`      //会员ID(办理人)
	BuyMemberCardId int64  `json:"buy_member_card_id"` //会员卡ID(办理人)
}

//会员信息
type MemberGet struct {
	AccountId           int64  `json:"account_id"`
	CompanyId           int64  `json:"company_id"`
	BusinessId          int64  `json:"business_id"`
	StadiumId           int64  `json:"stadium_id"`
	MemberId            int64  `json:"member_id"`
	WxOpenId            string `json:"wx_open_id"`
	MiniOpenId          string `json:"mini_open_id"`
	Name                string `json:"name"`
	Phone               string `json:"phone"`
	Avatar              string `json:"avatar"`
	Sex                 int64  `json:"sex"`
	Birthday            string `json:"birthday"`
	Address             string `json:"address"`
	CredentialsType     int64  `json:"credentials_type"`
	CredentialsNumber   string `json:"credentials_number"`
	Remark              string `json:"remark"`
	IsBindCard          int64  `json:"is_bind_card"`
	Operator            int64  `json:"operator"`
	MemberType          int64  `json:"member_type"`
	ContactName         string `json:"contact_name"`
	ContactPhone        string `json:"contact_phone"`
	ContactRelationship string `json:"contact_relationship"`
	AvatarUrl           string `json:"avatar_url"`
	MemberTypeStr       string `json:"member_type_str"`
}

type OrderInfo struct {
	ParentOrderNo string `json:"parent_order_no"` //
	OrderNo       string `json:"order_no"`        //
	SalePrice     int64  `json:"sale_price"`      //
	OrderPrice    int64  `json:"order_price"`     //
	PayPrice      int64  `json:"pay_price"`       //
	OrderStatus   int64  `json:"order_status"`    //
	PaymentWay    int64  `json:"payment_way"`     //
	PaymentWayStr string `json:"payment_way_str"` //
	Remark        string `json:"remark"`          //
	ExtendInfos   string `json:"extend_infos"`    //
	DeductPrice   int64  `json:"deduct_price"`    //抵扣金额
}

type OrderItem struct {
	OrderNo     string `json:"order_no"`      //
	OrderItemNo string `json:"order_item_no"` //
	Sku         string `json:"sku"`           //
	SkuName     string `json:"sku_name"`      //
	SkuInfo     string `json:"sku_info"`      //
	SkuImg      string `json:"sku_img"`       //
	SkuNum      int64  `json:"sku_num"`       //
	SkuPrice    int64  `json:"sku_price"`     //
	SalePrice   int64  `json:"sale_price"`    //
	ItemPrice   int64  `json:"item_price"`    //
	PayPrice    int64  `json:"pay_price"`     //
	SportTagId  int64  `json:"sport_tag_id"`  //
}

////////////////////////////////////////////////////
type RefundItem struct {
	OrderNo     string      `json:"order_no"`
	OrderItemNo string      `json:"order_item_no"`
	Sku         string      `json:"sku"`
	SkuName     string      `json:"sku_name"`
	SkuInfo     string      `json:"sku_info"`
	SkuImg      string      `json:"sku_img"`
	SkuNum      int64       `json:"sku_num"`
	RefundNum   int64       `json:"refund_num"`
	SkuPrice    int64       `json:"sku_price"`
	SalePrice   int64       `json:"sale_price"`
	ItemPrice   int64       `json:"item_price"`
	PayPrice    int64       `json:"pay_price"`
	RefundPrice int64       `json:"refund_price"`
	HandPrice   int64       `json:"hand_price"`
	CodeList    []*CodeList `json:"code_list"`
}
type OrderRefundItemResponse struct {
	Order *OrderInfo
	Item  []*RefundItem
}

////////////////////////////////////////////////////

//MemberCardInfo 会员一卡通/专项卡信息
type MemberCardInfo struct {
	CompanyId         int64  `json:"company_id"`          //所属公司
	BusinessId        int64  `json:"business_id"`         //所属中心
	StadiumId         int64  `json:"stadium_id"`          //所属场馆/门店
	MemberId          int64  `json:"member_id"`           //会员id
	MemberName        string `json:"member_name"`         //会员名称
	Phone             int64  `json:"phone"`               //会员手机
	Sex               int64  `json:"sex"`                 //性别
	Birthday          int64  `json:"birthday"`            //生日
	Address           string `json:"address"`             //居住地址
	Avatar            string `json:"avatar"`              //头像
	AvatarUrl         string `json:"avatar_url"`          //头像地址
	WxOpenId          string `json:"wx_open_id"`          //微信openid
	CredentialsType   int64  `json:"credentials_type"`    //证件类型
	CredentialsNumber string `json:"credentials_number"`  //证件编号
	AgreementId       int64  `json:"agreement_id"`        //协议id
	ValidityStartDate int64  `json:"validity_start_date"` //有效期开始时间
	ValidityEndDate   int64  `json:"validity_end_date"`   //有效期截止时间
	MemberCardId      int64  `json:"member_card_id"`      //一卡通id
	PCardId           int64  `json:"p_card_id"`           //专项卡时，所属的一卡通id
	CardNo            string `json:"card_no"`             //卡编号
	CardNum           string `json:"card_num"`            //卡号
	PCardNum          string `json:"p_card_num"`          //物理卡号
	CardName          string `json:"name"`                //卡名称
	Price             int64  `json:"price"`               //卡实际价值
	UnitPrice         string `json:"unit_price"`          //price/worth
	Worth             string `json:"worth"`               //权益 (次/金额)
	Status            int64  `json:"status"`              //卡状态
	Remark            string `json:"remark"`              //备注
	ProductId         string `json:"product_id"`          //卡产品ID 1为一卡通
	CardTypeId        int64  `json:"card_type_id"`        //卡类型 1,2金额卡 3次数卡 4期限卡
}

//
type MemberCardNumInfo struct {
	MemberCardId int64 `json:"member_card_id"` //
}

//
type MemberCardInfos struct {
	MemberCardId int64  `json:"member_card_id"` //会员卡ID
	CardNum      string `json:"card_num"`       //会员卡号
	ProductName  string `json:"product_name"`   //会员卡类型名称
	MemberName   string `json:"member_name"`    //会员名称
	Phone        string `json:"phone"`          //手机号
}

type CfgWxPublicExportList struct {
	AppId         int64  `json:"AppId"`           //
	Id            int64  `json:"Id"`              //
	CTime         int64  `json:"c_time"`          //
	CTimeStr      string `json:"c_time_str"`      //
	CompanyId     int64  `json:"company_id"`      //
	MpAccount     string `json:"mp_account"`      //
	MpAesKey      string `json:"mp_aes_key"`      //
	MpAppId       string `json:"mp_app_id"`       //
	MpAppSecret   string `json:"mp_app_secret"`   //
	MpBusinessId  string `json:"mp_business_id"`  //
	MpBusinessKey string `json:"mp_business_key"` //
	MpDevToken    string `json:"mp_dev_token"`    //
	MpId          int64  `json:"mp_id"`           //
	MpTitle       string `json:"mp_title"`        //
	Status        int64  `json:"status"`          //
	UTime         int64  `json:"u_time"`          //
	UTimeStr      string `json:"u_time_str"`      //
}

//SkuInfoResponse 产品信息
type SkuInfoResponse struct {
	Sku      string `json:"sku"`       //
	SkuName  string `json:"sku_name"`  //
	SkuInfo  string `json:"sku_info"`  //
	SkuImg   string `json:"sku_img"`   //
	SkuPrice int64  `json:"sku_price"` //
	SysId    int64  `json:"sys_id"`    //
}

////////////////////////////////////////////////////

//根据集控柜id获取储物柜统计 LockerGetCountResponse ...
type LockerGetCountResponse struct {
	BoxcentralId   int64 `json:"boxcentral_id"`    //集控柜id
	TotalCount     int64 `json:"total_count"`      //储物柜总数
	BorrowedCount  int64 `json:"borrowed_count"`   //已借用数量
	CanBorrowCount int64 `json:"can_borrow_count"` //已借用数量
}

////////////////////////////////////////////////////

//TicketHandCardCountResponse ...
type TicketHandCardCountResponse struct {
	BraceletId     int64 `json:"bracelet_id"`      //手环机ID
	TotalCount     int64 `json:"total_count"`      //手环总数
	BorrowedCount  int64 `json:"borrowed_count"`   //已借用数量
	CanBorrowCount int64 `json:"can_borrow_count"` //可以借用数量
}

//员工信息
type BasePersonnelGetResponse struct {
	PersonnelId   int64  `json:"personnel_id"`
	PersonnelName string `json:"personnel_name"`
}

//员工信息
type BasePersonnelGetByIdsResponse struct {
	PersonnelId   int64  `json:"personnel_id"`
	PersonnelName string `json:"personnel_name"`
	Sex           int64  `json:"sex"`
	Mobile        string `json:"mobile"`
	Avatar        string `json:"avatar"`
	AllowLogin    int64  `json:"allow_login"`
}

//账号信息
type BasePersonnelListResponse struct {
	PersonnelId   int64  `json:"personnel_id"`
	PersonnelName string `json:"personnel_name"`
	BranchName    string `json:"branch_name"`
	Account       string `json:"account"`
	RoleIds       string `json:"role_ids"`
	Avatar        string `json:"avatar"`
	Sex           int64  `json:"sex"`
	SexStr        string `json:"sex_str"`
	Mobile        string `json:"mobile"`
	AllowLogin    int64  `json:"allow_login"`
	AllowLoginStr string `json:"allow_login_str"`
}

////////////////////////////////////////////////////

//闸机验票返回
type GateEnterResponse struct {
	Success     bool   `json:"success"`
	Pass        bool   `json:"pass"`
	Msg         string `json:"msg"`
	RwMsg       string `json:"rw_msg"`
	VoucherType int64  `json:"voucher_type" default:"0"` //凭证类型：针对闸环一体模式情况下
	ConfirmType int64  `json:"confirm_type" default:"1"` // 1:走54报文进行回调核销，2：走56报文判断继电器改变进行回调核销
	RecordNo    string `json:"record_no" default:"0"`
	NeedConfirm int64  `json:"need_confirm" default:"0"`
	UserName    string `json:"user_name" default:"0"`
	AcsRes      string `json:"acs_res" default:"1"`   //奥普闸机才使用的字段，开门继电器位置
	OpenTime    string `json:"open_time" default:"5"` //奥普闸机才使用的字段，开门时间
}

//订单门票票号信息
type TicketCodeResponse struct {
	TicketCode string `json:"ticket_code"`
	Status     int64  `json:"status"`
}

////////////////////////////////////////////////////

//课时打印详情
type GetClassInfoResponse struct {
	ConsumptionClass int64  `json:"consumption_class"` //消耗课时
	ClassUnitPrice   int64  `json:"class_unit_price"`  //课时单价
	ClassPrice       int64  `json:"class_price"`       //课时总金额
	RestClass        int64  `json:"rest_class"`        //剩余课时
	Balance          int64  `json:"balance"`           //余额
	StudentName      string `json:"student_name"`      //学员姓名
	StudentPhone     string `json:"student_phone"`     //学员电话
	UserName         string `json:"user_name"`         //用户姓名
	UserMobile       string `json:"user_mobile"`       //用户电话
	CourseCardNo     string `json:"course_card_no"`    //课程卡号
	CoursePriceName  string `json:"course_price_name"` //课程卡名称
	StudentNo        string `json:"student_no"`        //学号
	CardNo           string `json:"card_no"`           //一卡通号
	CourseName       string `json:"course_name"`       //课程名称
	ClassName        string `json:"class_name"`        //班级名称
	ValidityEndDate  string `json:"validity_end_date"` //有效期至
}

//订场购票项目---------------------------------------------------
type GetMiniFieldTicketProjectResponse struct {
	CompanyId    int64 `json:"company_id"`    //公司id
	BusinessId   int64 `json:"business_id"`   //中心id
	StadiumId    int64 `json:"stadium_id"`    //场馆id
	SportTagId   int64 `json:"sport_tag_id"`  //运动项目id
	BusinessType int64 `json:"business_type"` //业务类型
	IsOrder      int64 `json:"is_order"`      //是否订过
	OrderPrice   int64 `json:"order_price"`   //起订价格
	OrderNum     int64 `json:"order_num"`     //订单数量
}

type PersonnelListResponse struct {
	PersonnelId   int64  `json:"personnel_id"`
	PersonnelName string `json:"personnel_name"`
}

//PersonnelBusinessListResponse
type PersonnelBusinessListResponse struct {
	Count int64                    `json:"count"` //count
	List  []*PersonnelListResponse `json:"list"`  //list
	Page  int64                    `json:"page"`  //page
	Size  int64                    `json:"size"`  //size
}

//实现sort包接口
type GetMiniFieldTicketProjectResponses []*GetMiniFieldTicketProjectResponse

func (g GetMiniFieldTicketProjectResponses) Len() int {
	return len(g)
}

//根据订单数量进行排序
func (g GetMiniFieldTicketProjectResponses) Less(i, j int) bool {
	return g[i].OrderNum > g[j].OrderNum
}

// 交换数据
func (g GetMiniFieldTicketProjectResponses) Swap(i, j int) {
	g[i], g[j] = g[j], g[i]
}

//通道数据
type AisleListGetByAccessResponse struct {
	CompanyId    int64  `json:"company_id"`
	Aisleid      int64  `json:"aisle_id"`
	BusinessId   int64  `json:"business_id"`
	StadiumId    int64  `json:"stadium_id"`
	Name         string `json:"name"`
	GroupId      int64  `json:"group_id"`
	FieldId      string `json:"field_id"`
	AccessDevice string `json:"access_device"`
	DeviceReader string `json:"device_reader"`
	FaceDevice   string `json:"face_device"`
	AisleType    int64  `json:"aisle_type"`
	MatchType    int64  `json:"match_type"`
}

//通道数据
type AisleListResponse struct {
	CompanyId    int64  `json:"company_id"`
	Aisleid      int64  `json:"aisle_id"`
	BusinessId   int64  `json:"business_id"`
	StadiumId    int64  `json:"stadium_id"`
	AccessDevice string `json:"access_device"`
}

//订场购票项目---------------------------------------------------
