package com.emotion.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.emotion.common.PageResult;
import com.emotion.dto.request.AdminCreateRequest;
import com.emotion.dto.request.AdminPageRequest;
import com.emotion.dto.request.AdminUpdateRequest;
import com.emotion.dto.response.AdminResponse;
import com.emotion.entity.Admin;

/**
 * 管理员服务接口
 * 
 * @author huazhongmin
 * @date 2025-10-27
 */
public interface AdminService extends IService<Admin> {
    
    /**
     * 分页查询管理员
     */
    PageResult<AdminResponse> getPageWithResponse(AdminPageRequest request);

    /**
     * 根据ID获取管理员响应
     */
    AdminResponse getAdminResponseById(String id);

    /**
     * 创建管理员并返回响应
     */
    AdminResponse createAdminWithResponse(AdminCreateRequest request);

    /**
     * 更新管理员并返回响应
     */
    AdminResponse updateAdminWithResponse(AdminUpdateRequest request);

    /**
     * 根据账号查询管理员
     */
    Admin getByAccount(String account);

    /**
     * 根据邮箱查询管理员
     */
    Admin getByEmail(String email);

    /**
     * 根据手机号查询管理员
     */
    Admin getByPhone(String phone);
}
