package com.infoepoch.pms.agent.platform.model.domain.irepository;

import com.infoepoch.pms.agent.common.utils.AbstractCriteria;

/**
 * @author jiangyz
 * @date 2026/4/17 15:07
 * AI 模型配置表查询条件类
 */
public class AiModelConfigCriteria extends AbstractCriteria {

    //region 所属供应商名称
    public boolean byProviderId() {
        return this.andMap.containsKey("ProviderId");
    }

    private String providerId;

    public String getProviderId() {
        if (byProviderId())
            return providerId;
        return null;
    }

    public void setProviderId(String value) {
        this.providerId = value;
        this.andMap.put("ProviderId", value);
    }
    //endregion

    //region 所属供应商名称模糊查询
    public boolean byProviderIdContain() {
        return this.andMap.containsKey("ProviderIdContain");
    }

    private String providerIdContain;

    public String getProviderIdContain() {
        if (byProviderIdContain())
            return providerIdContain;
        return null;
    }

    public void setProviderIdContain(String value) {
        this.providerIdContain = value;
        this.andMap.put("ProviderIdContain", value);
    }
    //endregion

    //region 原始模型名称，如 qwen-max
    public boolean byModelName() {
        return this.andMap.containsKey("ModelName");
    }

    private String modelName;

    public String getModelName() {
        if (byModelName())
            return modelName;
        return null;
    }

    public void setModelName(String value) {
        this.modelName = value;
        this.andMap.put("ModelName", value);
    }
    //endregion

    //region 原始模型名称，如 qwen-max模糊查询
    public boolean byModelNameContain() {
        return this.andMap.containsKey("ModelNameContain");
    }

    private String modelNameContain;

    public String getModelNameContain() {
        if (byModelNameContain())
            return modelNameContain;
        return null;
    }

    public void setModelNameContain(String value) {
        this.modelNameContain = value;
        this.andMap.put("ModelNameContain", value);
    }
    //endregion

    //region 模型类型：LLM / EMBEDDING
    public boolean byModelType() {
        return this.andMap.containsKey("ModelType");
    }

    private String modelType;

    public String getModelType() {
        if (byModelType())
            return modelType;
        return null;
    }

    public void setModelType(String value) {
        this.modelType = value;
        this.andMap.put("ModelType", value);
    }
    //endregion

    //region 模型显示名称
    public boolean byDisplayName() {
        return this.andMap.containsKey("DisplayName");
    }

    private String displayName;

    public String getDisplayName() {
        if (byDisplayName())
            return displayName;
        return null;
    }

    public void setDisplayName(String value) {
        this.displayName = value;
        this.andMap.put("DisplayName", value);
    }
    //endregion

    //region 模型显示名称模糊查询
    public boolean byDisplayNameContain() {
        return this.andMap.containsKey("DisplayNameContain");
    }

    private String displayNameContain;

    public String getDisplayNameContain() {
        if (byDisplayNameContain())
            return displayNameContain;
        return null;
    }

    public void setDisplayNameContain(String value) {
        this.displayNameContain = value;
        this.andMap.put("DisplayNameContain", value);
    }
    //endregion

    //region 是否启用
    public boolean byActive() {
        return this.andMap.containsKey("Active");
    }

    private Boolean active;

    public Boolean getActive() {
        if (byActive())
            return active;
        return null;
    }

    public void setActive(Boolean value) {
        this.active = value;
        this.andMap.put("Active", value);
    }
    //endregion

}