package com.ruoyi.web.modules.account.service;

import java.util.List;
import com.ruoyi.web.modules.account.domain.MerchantEmployeeQuery;
import com.ruoyi.web.modules.account.dto.MerchantEmployeeCreateDTO;
import com.ruoyi.web.modules.account.dto.MerchantEmployeePasswordDTO;
import com.ruoyi.web.modules.account.dto.MerchantEmployeeProfileDTO;
import com.ruoyi.web.modules.account.dto.MerchantEmployeeUpdateDTO;
import com.ruoyi.web.modules.account.vo.MerchantEmployeeDetailVO;
import com.ruoyi.web.modules.account.vo.MerchantEmployeeListVO;
import com.ruoyi.web.modules.account.vo.MerchantEmployeeQuotaVO;
import com.ruoyi.web.modules.account.vo.MerchantEmployeeRoleOptionVO;

/**
 * 员工管理 Service
 */
public interface IMerchantEmployeeService
{
    void fillListScope(MerchantEmployeeQuery query, Long operatorUserId);

    List<MerchantEmployeeListVO> selectEmployeeList(MerchantEmployeeQuery query);

    MerchantEmployeeQuotaVO selectQuota(Long operatorUserId);

    List<MerchantEmployeeRoleOptionVO> selectRoleOptions(Long operatorUserId);

    MerchantEmployeeDetailVO selectEmployeeDetail(Long userId, Long operatorUserId);

    Long createEmployee(MerchantEmployeeCreateDTO dto, Long operatorUserId, String operator);

    void updateEmployee(MerchantEmployeeUpdateDTO dto, Long operatorUserId, String operator);

    void updateProfile(MerchantEmployeeProfileDTO dto, Long operatorUserId, String operator);

    void updatePassword(MerchantEmployeePasswordDTO dto, Long operatorUserId, String operator);

    void deleteEmployees(Long[] userIds, Long operatorUserId, String operator);
}
