package com.mmc.iuav.user.service;

import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.ApplyQO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.*;

import java.util.List;

/**
 * @author: zj @Date: 2023/5/17 21:19
 */
public interface CooperationService {
    /**
     * 加盟标签列表
     *
     * @return
     */
    List<CooperationTagVO> listTag();

    /**
     * 用户申请加盟
     *
     * @param cooperationTagVO
     * @return
     */
    ResultBody apply(UserApplyTagVO cooperationTagVO);

    /**
     * 后台用户设置小程序用户等级标签
     *
     * @param userCooperationTagVO
     * @return
     */
    ResultBody changeUserTag(UserCooperationTagVO userCooperationTagVO);

    /**
     * 根据ID查询标签信息
     *
     * @param id
     * @return
     */
    ResultBody getTagById(Integer id);

    PageResult listUserApplyTag(ApplyQO applyQO);

    ResultBody getAuditSum();

    ResultBody deleteApplyTag(Integer id);

    ResultBody applyTagDetails(Integer id, Integer userAccountId);

    ResultBody approvalApplyTag(Integer id, Boolean status);

    ResultBody getTagIdByUserId(Integer userAccountId);
    ResultBody getContractNoAndStatus(Integer tagId, Integer userAccountId);

    ResultBody editUserApplyTag(ApplyTagEditVO applyTagEditVO);

    ResultBody editUserApplyTagDetails(Integer id);

    PageResult listServiceBitmapData(Integer type, Integer pageNo, Integer pageSize, Double lon, Double lat);

    ResultBody appBrandList();

    ResultBody<UserApplyTagVO> appBrandMessage(Integer userAccountId);

    PageResult listCompanyInfoByCoopId(Integer coopId, Integer pageNo, Integer pageSize, Double lon, Double lat);
}
