package com.crm.custom.service;

import com.crm.rely.backend.core.dto.base.ResultWithPagerDto;
import com.crm.rely.backend.core.exception.ServiceException;
import com.crm.rely.backend.model.dto.custom.login.CustomLoginDto;
import com.crm.rely.backend.model.entity.custom.CustomLoginUpdateAssessmentByLoginEntity;
import com.crm.rely.backend.model.entity.custom.CustomLoginUpdateCheckByLoginEntity;
import com.crm.rely.backend.model.entity.custom.info.CustomInfoUpdateAgentEntity;
import com.crm.rely.backend.model.entity.custom.login.CustomLoginApproveEntity;
import com.crm.rely.backend.model.entity.custom.login.CustomLoginSearchListEntity;
import com.crm.rely.backend.model.pojo.table.CustomLoginTable;
import com.crm.rely.backend.model.pojo.view.CustomLoginView;

import java.math.BigDecimal;

public interface CustomLoginService {

    boolean existByCustomIdAndEquity(Long customId, BigDecimal equity) throws ServiceException;

    CustomLoginView getByLogin(Long login) throws ServiceException;

    void update(Long login, Integer valid) throws ServiceException;

    ResultWithPagerDto<CustomLoginDto> searchPageList(CustomLoginSearchListEntity entity) throws ServiceException;

    void assessment(CustomLoginUpdateAssessmentByLoginEntity entity) throws ServiceException;

    void abandonAssessment(CustomLoginUpdateAssessmentByLoginEntity entity) throws ServiceException;

    void applyCheck(CustomLoginUpdateCheckByLoginEntity entity) throws ServiceException;

    CustomLoginTable approve(CustomLoginApproveEntity entity) throws ServiceException;

    void updateAgentId(CustomInfoUpdateAgentEntity entity) throws ServiceException;

    Integer countByCustomId(Long customId) throws ServiceException;

}
