package top.continew.admin.business.model.resp;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import top.continew.starter.extension.crud.model.resp.BaseResp;

import java.io.Serial;

/**
 * 计费规则信息
 *
 * @author jiay
 * @since 2025/11/14
 */
@Data
@ExcelIgnoreUnannotated
@Schema(description = "计费规则信息")
public class BillingRuleResp extends BaseResp {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 平台名称
     */
    @Schema(description = "平台名称", example = "AI绘画")
    @ExcelProperty(value = "平台名称", order = 2)
    private String platformName;

    /**
     * 账户类型
     */
    @Schema(description = "账户类型", example = "图片")
    @ExcelProperty(value = "账户类型", order = 3)
    private String type;

    /**
     * 平台ID
     */
    @Schema(description = "平台ID", example = "10000")
    @ExcelProperty(value = "平台ID", order = 4)
    private Long platformId;

    /**
     * 平台编码
     */
    @Schema(description = "平台编码", example = "KEXUE_CHAT")
    @ExcelProperty(value = "平台编码", order = 5)
    private String platformCode;

    /**
     * 扣费编码
     */
    @Schema(description = "扣费编码", example = "C0001")
    @ExcelProperty(value = "扣费编码", order = 6)
    private String chargeCode;

    /**
     * 计费类型
     */
    @Schema(description = "计费类型", example = "1")
    @ExcelProperty(value = "计费类型", order = 7)
    private Integer chargeType;

    /**
     * 模型名称
     */
    @Schema(description = "模型名称", example = "flux")
    @ExcelProperty(value = "模型名称", order = 8)
    private String modelName;

    /**
     * 主账户单价（分/次/整数量）
     */
    @Schema(description = "主账户单价（分/次/整数量）", example = "13")
    @ExcelProperty(value = "主账户单价（分）", order = 9)
    private Long price;

    /**
     * 子账户单价（次/个/数量）
     */
    @Schema(description = "子账户单价（次/个/数量）", example = "1")
    @ExcelProperty(value = "子账户单价", order = 10)
    private Long subAccountPrice;

    /**
     * 计费单位
     */
    @Schema(description = "计费单位", example = "张")
    @ExcelProperty(value = "计费单位", order = 11)
    private String unit;

    /**
     * 备注
     */
    @Schema(description = "备注", example = "")
    @ExcelProperty(value = "备注", order = 12)
    private String remark;

    /**
     * 是否启用（0:禁用 1:启用）
     */
    @Schema(description = "是否启用", example = "1")
    @ExcelProperty(value = "是否启用", order = 13)
    private Integer enabled;
}
