package com.cool.store.service;

import com.cool.store.dto.*;
import com.cool.store.dto.contract.ContractCallbackDTO;
import com.cool.store.request.AuditRequest;
import com.cool.store.request.ZxjpApiRequest;
import com.cool.store.request.xgj.PushFranchiseFeeRequest;
import com.cool.store.request.xgj.ReceiptRequest;
import com.cool.store.response.XgjAccessTokenDTO;

import java.util.List;

/**
 * @Author suzhuhong
 * @Date 2025/4/9 14:23
 * @Version 1.0
 */
public interface PushService {


    /**
     * 推送数据到下游系统 新管家
     * @param zxjpApiRequest
     * @return
     */
    Boolean pushDataToXGJ(ZxjpApiRequest zxjpApiRequest);

    /**
     * 推送加盟账单到新管家
     * @param request
     * @return
     */
    Boolean pushFranchiseFeeToXGJ(PushFranchiseFeeRequest request);

    /**
     * 推送收款单到新管家
     * @param receiptRequest
     * @return
     */
    Boolean pushReceiptToXGJ(ReceiptRequest receiptRequest);

    /**
     * 推送数据到下游系统 POS
     * @param zxjpApiRequest
     * @return
     */
    Boolean pushDataToPOS(ZxjpApiRequest zxjpApiRequest);

    /**
     * 修改密码推送到下游系统
     * @param modifyPasswordDTO
     * @return
     */
    Boolean modifyDownstreamSystem(ModifyPasswordDTO modifyPasswordDTO);


    /**
     * 获取云流水token
     * @param dto
     * @return
     */
    String getYlsToken(GetAccessTokenDTO dto);

    /**
     * 获取新管家token
     * @param dto
     * @return
     */
    String getXzgToken(GetAccessTokenDTO dto);

    /**
     * 获取Pos token
     * @param dto
     * @return
     */
    String getPosToken(GetAccessTokenDTO dto);


    List<XgjOrganizationDTO> getXgjOrganization(String parentId);

    /**
     * 获取新管家token
     * @return
     */
    XgjAccessTokenDTO getXgjAccessToken();

    Integer getUnReadMessageNum(String partnerId);
    /**
     * @Auther: wangshuo
     * @Date: 2025/7/24
     * @description:获取红圈通token
     */
    HqtTokenDTO getHqtToken();

    /**
     * 法大大一期 推送加盟合同信息
     * @param contractInformationDTO
     * @return
     */
    ContractCallbackDTO pushContract(ContractInformationDTO contractInformationDTO);






}
