package com.zcloud.personnel.positioning.persistence.mapper;

import com.zcloud.personnel.positioning.persistence.dataobject.TerminalDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalCardCompanyOptionDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalCardCompanyStatDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalCardDetailDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalCardPersonOptionDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalAppCompanyStatDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalAppDetailDO;
import com.zcloud.personnel.positioning.persistence.dataobject.TerminalPersonSnapshotDO;
import com.zcloud.personnel.positioning.persistence.dataobject.CorpInfoSnapshotDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * web-infrastructure
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
@Mapper
public interface TerminalMapper extends BaseMapper<TerminalDO> {
    IPage<TerminalCardCompanyStatDO> listCardCompanyStats(IPage<TerminalCardCompanyStatDO> page,
                                                          @Param("params") Map<String, Object> params);

    IPage<TerminalCardDetailDO> listCards(IPage<TerminalCardDetailDO> page,
                                          @Param("params") Map<String, Object> params);

    TerminalCardDetailDO getCardDetail(@Param("params") Map<String, Object> params);

    IPage<TerminalCardPersonOptionDO> listCardPersonOptions(IPage<TerminalCardPersonOptionDO> page,
                                                            @Param("params") Map<String, Object> params);

    List<TerminalCardCompanyOptionDO> listCardCompanyOptions(@Param("params") Map<String, Object> params);

    IPage<TerminalAppCompanyStatDO> listAppCompanyStats(IPage<TerminalAppCompanyStatDO> page,
                                                        @Param("params") Map<String, Object> params);

    IPage<TerminalAppDetailDO> listApps(IPage<TerminalAppDetailDO> page,
                                        @Param("params") Map<String, Object> params);

    TerminalAppDetailDO getAppDetail(@Param("params") Map<String, Object> params);

    TerminalPersonSnapshotDO findPerson(@Param("params") Map<String, Object> params);

    CorpInfoSnapshotDO findCorpInfo(@Param("params") Map<String, Object> params);

    int updateBindIdCardNo(@Param("params") Map<String, Object> params);
}
