package com.dora.service;

import com.dora.dto.AdminEmployeeDto;
import com.dora.dto.ApiResponse;

/**
 * 管理员员工管理服务接口
 */
public interface AdminEmployeeService {

    /**
     * 获取员工列表
     * @param request 查询请求
     * @return 员工列表响应
     */
    ApiResponse<AdminEmployeeDto.EmployeeListResponse> getEmployeeList(AdminEmployeeDto.EmployeeListRequest request);

    /**
     * 获取员工详情
     * @param id 员工ID
     * @return 员工详情响应
     */
    ApiResponse<AdminEmployeeDto.EmployeeDetailResponse> getEmployeeDetail(Long id);

    /**
     * 创建员工
     * @param request 创建请求
     * @return 创建结果
     */
    ApiResponse<String> createEmployee(AdminEmployeeDto.EmployeeCreateRequest request);

    /**
     * 更新员工信息
     * @param request 更新请求
     * @return 更新结果
     */
    ApiResponse<String> updateEmployee(AdminEmployeeDto.EmployeeUpdateRequest request);

    /**
     * 删除员工
     * @param id 员工ID
     * @return 删除结果
     */
    ApiResponse<String> deleteEmployee(Long id);

    /**
     * 重置员工密码
     * @param request 密码重置请求
     * @return 重置结果
     */
    ApiResponse<String> resetEmployeePassword(AdminEmployeeDto.EmployeePasswordResetRequest request);

    /**
     * 更新员工状态
     * @param request 状态更新请求
     * @return 更新结果
     */
    ApiResponse<String> updateEmployeeStatus(AdminEmployeeDto.EmployeeStatusUpdateRequest request);
}
