package com.zcloud.personnel.positioning.api;

import com.zcloud.personnel.positioning.dto.TerminalAddCmd;
import com.zcloud.personnel.positioning.dto.TerminalAppCompanyPageQry;
import com.zcloud.personnel.positioning.dto.TerminalAppPageQry;
import com.zcloud.personnel.positioning.dto.TerminalAppSaveCmd;
import com.zcloud.personnel.positioning.dto.TerminalAppSyncCmd;
import com.zcloud.personnel.positioning.dto.TerminalAppUpdateCmd;
import com.zcloud.personnel.positioning.dto.TerminalCardCompanyOptionQry;
import com.zcloud.personnel.positioning.dto.TerminalCardCompanyPageQry;
import com.zcloud.personnel.positioning.dto.TerminalCardPageQry;
import com.zcloud.personnel.positioning.dto.TerminalCardPersonOptionQry;
import com.zcloud.personnel.positioning.dto.TerminalCardSaveCmd;
import com.zcloud.personnel.positioning.dto.TerminalCardSyncCmd;
import com.zcloud.personnel.positioning.dto.TerminalCardUpdateCmd;
import com.zcloud.personnel.positioning.dto.TerminalPageQry;
import com.zcloud.personnel.positioning.dto.TerminalUpdateCmd;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalAppCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalAppCompanyCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalAppSyncCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalCardCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalCardCompanyCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalCardCompanyOptionCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalCardPersonOptionCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalCardSyncCO;
import com.zcloud.personnel.positioning.dto.clientobject.TerminalCO;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;

import java.util.List;

/**
 * web-client
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
public interface TerminalServiceI {
    PageResponse<TerminalAppCompanyCO> listAppCompanyPage(TerminalAppCompanyPageQry qry);

    PageResponse<TerminalAppCO> listAppPage(TerminalAppPageQry qry);

    TerminalAppCO queryAppById(Long id);

    TerminalAppSyncCO syncApps(TerminalAppSyncCmd cmd);

    TerminalAppCO saveApp(TerminalAppSaveCmd cmd);

    TerminalAppCO updateApp(TerminalAppUpdateCmd cmd);

    PageResponse<TerminalCardCompanyCO> listCardCompanyPage(TerminalCardCompanyPageQry qry);

    PageResponse<TerminalCardCO> listCardPage(TerminalCardPageQry qry);

    TerminalCardCO queryCardById(Long id);

    TerminalCardSyncCO syncCards(TerminalCardSyncCmd cmd);

    TerminalCardCO saveCard(TerminalCardSaveCmd cmd);

    TerminalCardCO updateCard(TerminalCardUpdateCmd cmd);

    PageResponse<TerminalCardPersonOptionCO> listCardPersonOptions(TerminalCardPersonOptionQry qry);

    List<TerminalCardCompanyOptionCO> listCardCompanyOptions(TerminalCardCompanyOptionQry qry);

    PageResponse<TerminalCO> listPage(TerminalPageQry qry);

    List<TerminalCO> listAll();

    TerminalCO queryById(Long id);

    SingleResponse<TerminalCO> add(TerminalAddCmd cmd);

    void edit(TerminalUpdateCmd cmd);

    void remove(Long id);

    void removeBatch(Long[] ids);
}
