package org.hzhub.erp.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * ERP动态API配置实体
 *
 * @author HZHub Team
 */
@Data
@TableName("erp_api_config")
public class ErpApiConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    /** API ID */
    @TableId(value = "api_id", type = IdType.AUTO)
    private Long apiId;

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

    /** API路径（如 /erp/dynamic/customer/list） */
    private String apiPath;

    /** HTTP方法（GET/POST） */
    private String apiMethod;

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

    /** API版本号（v1/v2） */
    private String apiVersion;

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

    /** SQL模板（支持参数占位符 #{paramName}） */
    private String sqlTemplate;

    /** 结果类型（LIST/SINGLE/COUNT） */
    private String resultType;

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

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

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

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

    /** 权限标识（如 erp:customer:list） */
    private String permissionCode;

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

    /** 缓存键模板（支持参数占位符） */
    private String cacheKeyTemplate;

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

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

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

    /** 状态（0禁用 1启用） */
    private Integer status;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /** 创建者 */
    @TableField(fill = FieldFill.INSERT)
    private String createBy;

    /** 更新者 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    /** 备注 */
    private String remark;
}