using Newtonsoft.Json;
using System.Collections.Generic;
namespace LifePayment.Domain.Shared;
public interface IACOOLYRequestBaseResponse
{
    /// 
    /// 接口调用状态(true/false)
    /// 
    public bool Success { get; set; }
    /// 
    /// 请求号(16-40位)
    /// 
    public string RequestNo { get; set; }
    /// 
    /// 商户ID(定长20字符)
    /// 
    public string PartnerId { get; set; }
    /// 
    /// 服务名称 
    /// 
    public string Service { get; set; }
    /// 
    /// 服务版本(默认1.0)
    /// 
    public string? Version { get; set; }
    /// 
    /// 协议类型(HTTP/JSON)
    /// 
    public string? Protocol { get; set; }
    /// 
    /// 会话参数(JSON格式)
    /// 
    public string? Context { get; set; }
    /// 
    /// 扩展参数(JSON单层结构)
    /// 
    public object Ext { get; set; }
    /// 
    /// 响应编码(SUCCESS/PARAM_ERROR等)
    /// 
    public string Code { get; set; }
    /// 
    /// 响应消息 
    /// 
    public string Message { get; set; }
    /// 
    /// 响应详情 
    /// 
    public string? Detail { get; set; }
}
/// 
/// 公共响应参数基类 
/// 
public class ACOOLYRequestBaseResponse : IACOOLYRequestBaseResponse
{
    /// 
    /// 接口调用状态(true/false)
    /// 
    public bool Success { get; set; }
    /// 
    /// 请求号(16-40位)
    /// 
    public string RequestNo { get; set; }
    /// 
    /// 商户ID(定长20字符)
    /// 
    public string PartnerId { get; set; }
    /// 
    /// 服务名称 
    /// 
    public string Service { get; set; }
    /// 
    /// 服务版本(默认1.0)
    /// 
    public string? Version { get; set; }
    /// 
    /// 协议类型(HTTP/JSON)
    /// 
    public string? Protocol { get; set; }
    /// 
    /// 会话参数(JSON格式)
    /// 
    public string? Context { get; set; }
    /// 
    /// 扩展参数(JSON单层结构)
    /// 
    public object Ext { get; set; }
    /// 
    /// 响应编码(SUCCESS/PARAM_ERROR等)
    /// 
    public string Code { get; set; }
    /// 
    /// 响应消息 
    /// 
    public string Message { get; set; }
    /// 
    /// 响应详情 
    /// 
    public string? Detail { get; set; }
}
/// 
/// 获取燃气面值返回参数
/// 
public class GasParValueResponse : ACOOLYRequestBaseResponse
{
    /// 
    /// 天然气公司类型
    /// 
    [JsonProperty("gasParValue")]
    public List GasParValue { get; set; }
}
public class GasOrgTypeValueResponse : ACOOLYRequestBaseResponse
{
    /// 
    /// 天然气公司类型
    /// 
    [JsonProperty("gasSupportMerchantInfos")]
    public List GasSupportMerchantInfos { get; set; }
}
public class GasSupportMerchantInfos
{
    /// 
    /// 燃气支持商户编码
    /// 
    public string gasOrgTypeCode { get; set; }
    /// 
    /// 燃气支持商户名称
    /// 
    public string gasOrgTypeName { get; set; }
}
/// 
/// 燃气面值数据
/// 
public class GasParValueOutput
{
    /// 
    /// 天然气名称(示例:中国燃气天)
    /// 
    [JsonProperty("gasOrgName")]
    public string GasOrgName { get; set; }
    /// 
    /// 天然气单位编码(示例:zhong_guo)
    /// 
    [JsonProperty("gasOrgCode")]
    public string GasOrgCode { get; set; }
    /// 
    /// 面额数组(示例:100,200,300)
    /// 
    [JsonProperty("parValue")]
    public List ParValue { get; set; }
    /// 
    /// 折扣率(示例:0.94)
    /// 
    [JsonProperty("rate")]
    public decimal Rate { get; set; }
    /// 
    /// 备注信息(示例:转网用户不能充值)
    /// 
    [JsonProperty("comments")]
    public string Comments { get; set; }
}
/// 
/// 提交燃气订单返回参数
/// 
public class ConfirmGasOrderResponse : ACOOLYRequestBaseResponse
{
    [JsonProperty("gasChargeOrder")]
    public GasChargeOrderOutput GasChargeOrder { get; set; }
}
public class GasChargeOrderOutput
{
    /// 
    /// 商户订单号。
    /// 
    [JsonProperty("outOrderNo")]
    public string OutOrderNo { get; set; }
    /// 
    /// 平台订单号。
    /// 
    [JsonProperty("busiOrderNo")]
    public string BusiOrderNo { get; set; }
    /// 
    /// 天然气公司类型,例如:"xin_ao"代表新奥燃气。
    /// 
    [JsonProperty("gasOrgType")]
    public string GasOrgType { get; set; }
    /// 
    /// 区域名称,如:北京,上海,广东,湖北等。
    /// 
    [JsonProperty("areaName")]
    public string AreaName { get; set; }
    /// 
    /// 电费面值金额,单位为元。
    /// 
    [JsonProperty("parValue")]
    public decimal ParValue { get; set; }
    /// 
    /// 实际扣款金额,单位为元。
    /// 
    [JsonProperty("payAmount")]
    public decimal PayAmount { get; set; }
    /// 
    /// 天然气账号。
    /// 
    [JsonProperty("gasAccount")]
    public string GasAccount { get; set; }
    /// 
    /// 充值状态,如:"SUCCESS"表示充值成功。
    /// 
    [JsonProperty("status")]
    public string Status { get; set; }
    /// 
    /// 状态描述,如:"充值成功"。
    /// 
    [JsonProperty("statusText")]
    public string StatusText { get; set; }
}
/// 
/// 电费面值返回参数
/// 
public class ElectricParValueResponse : ACOOLYRequestBaseResponse
{
    [JsonProperty("electricParValue")]
    public List ElectricParValue { get; set; }
}
/// 
/// 电费充值信息类,用于表示电费充值相关的详细信息。
/// 
public class ElectricParValueOutput
{
    /// 
    /// 电网类型,例如:"guowang"代表国家电网,"nanwang"代表南方电网。
    /// 
    [JsonProperty("electricType")]
    public string ElectricType { get; set; }
    /// 
    /// 区域名称,如:北京,上海,广东,湖北等。
    /// 
    [JsonProperty("areaName")]
    public string AreaName { get; set; }
    /// 
    /// 面额,单位为元。可能的值包括100,200,300等。
    /// 
    [JsonProperty("parValue")]
    public List ParValue { get; set; } // 假设面额为整数
    /// 
    /// 折扣率,可选项。折扣率为一个浮点数,例如0.94代表94%。
    /// 
    [JsonProperty("rate")]
    public decimal? Rate { get; set; } // 使用可空类型表示可选字段
    /// 
    /// 备注,可选项。例如:"转网用户不能充值"。
    /// 
    [JsonProperty("comments")]
    public string Comments { get; set; } // 备注字段默认可以为空字符串或null,表示可选
}
public class ElectricSupportAreaResponse : ACOOLYRequestBaseResponse
{
    [JsonProperty("electricSupportAreaList")]
    public List ElectricAreaList { get; set; }
}
public class ElectricSupportAreaListOutput
{
    /// 
    /// 城市自己列表。
    /// 
    [JsonProperty("childCityList")]
    public List ChildCityList { get; set; }
    /// 
    /// 城市名称。
    /// 
    [JsonProperty("cityName")]
    public string CityName { get; set; }
    /// 
    /// 城市父级Id。
    /// 
    [JsonProperty("cityParentId")]
    public string CityParentId { get; set; } // 假设面额为整数
    /// 
    /// 城市Id。
    /// 
    [JsonProperty("cityId")]
    public string CityId { get; set; } // 使用可空类型表示可选字段
    /// 
    /// 电网类型,例如:"guowang"代表国家电网,"nanwang"代表南方电网。
    /// 
    [JsonProperty("electricType")]
    public string ElectricType { get; set; }
    /// 
    /// 面额,单位为元。可能的值包括100,200,300等。
    /// 
    [JsonProperty("parValue")]
    public List ParValue { get; set; } // 假设面额为整数
    /// 
    /// 折扣率,可选项。折扣率为一个浮点数,例如0.94代表94%。
    /// 
    [JsonProperty("rate")]
    public decimal? Rate { get; set; } // 使用可空类型表示可选字段
}
public class ElectricSupportAreaChildCityListOutput
{
    /// 
    /// 城市名称。
    /// 
    [JsonProperty("cityName")]
    public string CityName { get; set; }
    /// 
    /// 城市父级Id。
    /// 
    [JsonProperty("cityParentId")]
    public string CityParentId { get; set; } // 假设面额为整数
    /// 
    /// 城市Id。
    /// 
    [JsonProperty("cityId")]
    public string CityId { get; set; } // 使用可空类型表示可选字段
}
/// 
/// 话费面值返回参数
/// 
public class PhoneParValueResponse : ACOOLYRequestBaseResponse
{
    [JsonProperty("phoneParValue")]
    public List PhoneParValue { get; set; }
}
public class PhoneParValueOutput
{
    /// 
    /// 运营商编码,例如:"yidong", "dianxin", "liantong"。
    /// 
    [JsonProperty("ispCode")]
    public string IspCode { get; set; }
    /// 
    /// 运营商名称,如:移动,联通,电信。
    /// 
    [JsonProperty("ispName")]
    public string IspName { get; set; }
    /// 
    /// 面额,单位为元。可能的值包括100, 200, 300等。
    /// 
    [JsonProperty("parValue")]
    public List ParValue { get; set; } // 假设面额为整数
    /// 
    /// 折扣率,可选项。折扣率为一个浮点数,例如0.94代表94%。
    /// 
    [JsonProperty("rate")]
    public decimal? Rate { get; set; } // 使用可空类型表示可选字段
    /// 
    /// 手机号段,例如:移动的134,136等,使用逗号分隔。
    /// 
    [JsonProperty("phoneSection")]
    public string PhoneSection { get; set; }
    /// 
    /// 备注,可选项。例如:"转网用户不能充值"。
    /// 
    [JsonProperty("comments")]
    public string Comments { get; set; } // 备注字段默认可以为空字符串或null,表示可选
}
/// 
/// 提交电费订单返回参数
/// 
public class ConfirmElectricOrderResponse : ACOOLYRequestBaseResponse
{
    [JsonProperty("electricChargeOrder")]
    public ElectricChargeOrderOutput ElectricChargeOrder { get; set; }
}
public class ElectricChargeOrderOutput
{
    /// 
    /// 商户订单号。
    /// 
    [JsonProperty("outOrderNo")]
    public string OutOrderNo { get; set; }
    /// 
    /// 平台订单号。
    /// 
    [JsonProperty("busiOrderNo")]
    public string BusiOrderNo { get; set; }
    /// 
    /// 电费户号。
    /// 
    [JsonProperty("electricAccount")]
    public string ElectricAccount { get; set; }
    /// 
    /// 区域名称,如:北京,上海,广东,湖北等。
    /// 
    [JsonProperty("areaName")]
    public string AreaName { get; set; }
    /// 
    /// 电网类型,例如:"guowang"代表国家电网,"nanwang"代表南方电网。
    /// 
    [JsonProperty("electricType")]
    public string ElectricType { get; set; }
    /// 
    /// 电费面值金额,单位为元。
    /// 
    [JsonProperty("parValue")]
    public decimal ParValue { get; set; }
    /// 
    /// 实际到账金额。
    /// 
    [JsonProperty("actualParValue")]
    public decimal ActualParValue { get; set; }
    /// 
    /// 实际扣款金额,单位为元。
    /// 
    [JsonProperty("payAmount")]
    public decimal PayAmount { get; set; }
    /// 
    /// 充值状态,如:"SUCCESS"表示充值成功。
    /// 
    [JsonProperty("status")]
    public string Status { get; set; }
    /// 
    /// 状态描述,如:"充值成功"。
    /// 
    [JsonProperty("statusText")]
    public string StatusText { get; set; }
    /// 
    /// 通知消息
    /// 
    [JsonProperty("responseMessage")]
    public string ResponseMessage {  get; set; }
}
/// 
/// 提交电话费订单返回参数
/// 
public class ConfirmPhoneOrderResponse : ACOOLYRequestBaseResponse
{
    [JsonProperty("phoneChargeOrder")]
    public PhoneChargeOrderOutput PhoneChargeOrder { get; set; }
}
public class PhoneChargeOrderOutput
{
    /// 
    /// 外部商户订单号。
    /// 
    [JsonProperty("outOrderNo")]
    public string OutOrderNo { get; set; }
    /// 
    /// 平台订单号。
    /// 
    [JsonProperty("busiOrderNo")]
    public string BusiOrderNo { get; set; }
    /// 
    /// 面值金额,单位为元。
    /// 
    [JsonProperty("parValue")]
    public decimal ParValue { get; set; }
    /// 
    /// 实际扣款金额,单位为元。
    /// 
    [JsonProperty("payAmount")]
    public decimal PayAmount { get; set; }
    /// 
    /// 充值状态,如:"SUCCESS"表示充值成功。
    /// 
    [JsonProperty("status")]
    public string Status { get; set; }
    /// 
    /// 状态描述,如:"充值成功"。
    /// 
    [JsonProperty("statusText")]
    public string StatusText { get; set; }
}