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

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.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;

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

/**
 * web-infrastructure
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
public interface TerminalRepository extends BaseRepository<TerminalDO> {
    PageResponse<TerminalDO> listPage(Map<String, Object> params);

    PageResponse<TerminalCardCompanyStatDO> listCardCompanyStats(Map<String, Object> params);

    PageResponse<TerminalCardDetailDO> listCards(Map<String, Object> params);

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

    PageResponse<TerminalCardPersonOptionDO> listCardPersonOptions(Map<String, Object> params);

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

    PageResponse<TerminalAppCompanyStatDO> listAppCompanyStats(Map<String, Object> params);

    PageResponse<TerminalAppDetailDO> listApps(Map<String, Object> params);

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

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

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

    boolean updateBindIdCardNo(Long id, String idCardNo);
}
