package com.seer.teach.mp.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.seer.teach.mp.entity.MpDealerApplicationsEntity;
import com.baomidou.mybatisplus.extension.service.IService;
import com.seer.teach.mp.request.DealerApplyReq;

/**
 * <p>
 * 经销商申请表 服务类
 * </p>
 *
 * @author Wang
 * @since 2025-08-04 13:45:07
 */
public interface IMpDealerApplicationsService extends IService<MpDealerApplicationsEntity> {

    /**
     * 解密经销商申请信息
     *
     * @param application 经销商申请信息
     */
    void decryptDealerApplication(MpDealerApplicationsEntity application);

    /**
     * 提交经销商申请
     *
     * @param request 申请信息
     * @param userId  用户ID
     * @return 申请是否成功
     */
    boolean apply(DealerApplyReq request, Integer userId);

    /**
     * 更新经销商申请信息
     *
     * @param request 经销商申请信息
     * @param userId  用户ID
     * @return 更新是否成功
     */
    boolean updateDealerApplication(DealerApplyReq request, int userId);

    /**
     * 根据用户ID获取经销商申请信息
     *
     * @param userId 用户ID
     * @return 经销商申请信息
     */
    MpDealerApplicationsEntity getOneByUserId(Integer userId);

    /**
     * 根据ID获取经销商申请信息
     *
     * @param id 申请ID
     * @return 经销商申请信息
     */
    MpDealerApplicationsEntity getOneById(Integer id);

    /**
     * 分页查询经销商申请列表
     *
     * @param pageParm 分页参数
     * @param query    查询条件
     * @return 经销商申请分页列表
     */
    IPage<MpDealerApplicationsEntity> pageList(Page<MpDealerApplicationsEntity> pageParm, MpDealerApplicationsEntity query);

}