import { IMessageHead } from '@/services/socket/trade/protobuf/proto'

declare global {
    namespace Proto {
        /** 新增修改收货地址请求 */
        interface UserReceiveInfoReq {
            Header?: IMessageHead;
            ClientSerialID?: number; // 客户端唯一ID
            UserID: number; // 用户ID
            ReceiverName: string; // 提货人姓名
            CardTypeID: number; // 证件类型
            CardNum: string; // 证件号码
            PhoneNum: string; // 提货人联系方式
            CountryID?: number; // 国家
            ProvinceID?: number; // 省
            CityID?: number; // 市
            DistrictID?: number; // 地区
            Address: string; // 提货人详细地址
            TakeRemark: string; // 提货备注
            ReceiveInfoId: number; // 修改时填收货地址id
        }

        /** 新增修改收货地址请求响应 */
        interface UserReceiveInfoRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
            ReceiveInfoId: number; // 响应返回autoid
        }

        /** 删除收货地址请求 */
        interface DelUserReceiveInfoReq {
            Header?: IMessageHead;
            ReceiveInfoId: number; // 收货地址id
        }

        /** 删除收货地址请求响应 */
        interface DelUserReceiveInfoRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
        }

        /** 设置默认收货地址请求 */
        interface UserReceiveIsDefaultReq {
            Header?: IMessageHead;
            AutoId: number; // 提货地址ID
            UserId: number; // 用户ID
        }

        /** 设置默认收货地址应答 */
        interface UserReceiveIsDefaultRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
            AutoId: number; // 提货地址ID
        }

        /** 新增修改用户发票信息请求 */
        interface UserReceiptInfoReq {
            Header?: IMessageHead;
            ClientSerialID?: number; // 客户端唯一ID
            UserID: number; // 用户ID
            UserName: string; // 发票抬头姓名
            ReceiptType: number; // 发票类型
            TaxpayerID: string; // 纳税人识别号
            ContactInfo: string; // 联系方式
            ReceiptInfoId: number; // 修改时填用户发票信息id
            ReceiptBank: string; // 发票开户行[发票类型:企业]
            ReceiptAccount: string; // 发票帐号[发票类型:企业]
            Address: string; // 地址[发票类型:企业]
            IDNum?: string; // 身份证号码[发票类型:个人]
        }

        /** 新增修改用户发票信息响应 */
        interface UserReceiptInfoRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
            ReceiptInfoId: number; // 响应返回发票信息id
        }

        /** 删除用户发票信息请求 */
        interface DelUserReceiptInfoReq {
            Header?: IMessageHead;
            ReceiptInfoId: number; // 删除发票信息id
        }

        /** 删除用户发票信息请求响应 */
        interface DelUserReceiptInfoRsp {
            Header?: IMessageHead;
            RetCode: number; // 返回码
            RetDesc: string; // 描述信息
        }
    }
}