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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import top.continew.starter.data.core.annotation.Query;
import top.continew.starter.data.core.enums.QueryType;

import java.io.Serial;
import java.io.Serializable;

/**
 * 计费规则查询条件
 *
 * @author jiay
 * @since 2025/11/14
 */
@Data
@Schema(description = "计费规则查询条件")
public class BillingRuleQuery implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 平台名称
     */
    @Schema(description = "平台名称", example = "AI绘画")
    @Query(columns = {"platform_name"}, type = QueryType.LIKE)
    private String platformName;

    /**
     * 平台ID
     */
    @Schema(description = "平台ID", example = "10000")
    @Query(columns = {"platform_id"}, type = QueryType.EQ)
    private Long platformId;

    /**
     * 平台编码
     */
    @Schema(description = "平台编码", example = "KEXUE_CHAT")
    @Query(columns = {"platform_code"}, type = QueryType.EQ)
    private String platformCode;

    /**
     * 扣费编码
     */
    @Schema(description = "扣费编码", example = "C0001")
    @Query(columns = {"charge_code"}, type = QueryType.EQ)
    private String chargeCode;

    /**
     * 模型名称
     */
    @Schema(description = "模型名称", example = "flux")
    @Query(columns = {"model_name"}, type = QueryType.LIKE)
    private String modelName;

    /**
     * 是否启用
     */
    @Schema(description = "是否启用", example = "1")
    @Query(columns = {"enabled"}, type = QueryType.EQ)
    private Integer enabled;
}
