package cn.gov.customs.wxjy.generator.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import cn.gov.customs.wxjy.generator.pojo.GenTable;
import cn.gov.customs.wxjy.generator.pojo.GenTableQuery;

/**
 * 代码生成业务Mapper接口
 *
 * @author xiong
 * @date 2025-12-25
 */
@Mapper
public interface GenTableMapper {
    /**
     * 查询代码生成业务
     *
     * @param tableId 代码生成业务主键
     * @return 代码生成业务
     */
    public GenTable selectByTableId(String tableId);

    /**
     * 查询代码生成业务列表
     *
     * @param genTable 代码生成业务
     * @return 代码生成业务集合
     */
    public List<GenTable> selectList(GenTableQuery genTable);

    /**
     * 新增代码生成业务
     *
     * @param genTable 代码生成业务
     * @return 结果
     */
    public int insert(GenTable genTable);

    /**
     * 修改代码生成业务
     *
     * @param genTable 代码生成业务
     * @return 结果
     */
    public int update(GenTable genTable);

    /**
     * 删除代码生成业务
     *
     * @param tableId 代码生成业务主键
     * @return 结果
     */
    public int deleteByTableId(String tableId);

    /**
     * 批量删除代码生成业务
     *
     * @param tableIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteByTableIds(String[] tableIds);

    /**
     * 逻辑删除代码生成业务
     *
     * @param tableId 代码生成业务主键
     * @return 结果
     */
    public int logicDelete(String tableId);

    List<GenTable> selectGenTableAll();

    List<GenTable> selectDbTableList(GenTableQuery query);

    List<GenTable> selectDbTableListByNames(String[] tableNames);

    GenTable selectGenTableByName(String subTableName);
}
