package org.hzhub.erp.domain.vo;

import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.time.LocalDateTime;
import org.hzhub.erp.domain.entity.ErpApiParam;

/**
 * ERP动态API配置VO（包含参数列表）
 *
 * @author HZHub Team
 */
@Data
public class ErpApiConfigVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /** API ID */
    private Long apiId;

    /** API名称 */
    private String apiName;

    /** API路径 */
    private String apiPath;

    /** HTTP方法 */
    private String apiMethod;

    /** API描述 */
    private String apiDesc;

    /** API版本号 */
    private String apiVersion;

    /** 数据源名称 */
    private String dataSource;

    /** SQL模板 */
    private String sqlTemplate;

    /** 结果类型 */
    private String resultType;

    /** 是否支持分页 */
    private Integer supportPagination;

    /** 页码参数名 */
    private String pageParamName;

    /** 页大小参数名 */
    private String sizeParamName;

    /** 是否需要认证 */
    private Integer requireAuth;

    /** 权限标识 */
    private String permissionCode;

    /** 是否启用缓存 */
    private Integer enableCache;

    /** 缓存键模板 */
    private String cacheKeyTemplate;

    /** 缓存过期时间 */
    private Integer cacheTtl;

    /** 来源表名 */
    private String sourceTable;

    /** 来源表描述 */
    private String sourceTableComment;

    /** 状态 */
    private Integer status;

    /** 创建时间 */
    private LocalDateTime createTime;

    /** 更新时间 */
    private LocalDateTime updateTime;

    /** 创建者 */
    private String createBy;

    /** 更新者 */
    private String updateBy;

    /** 备注 */
    private String remark;

    /** 参数列表 */
    private List<ErpApiParam> params;
}