package com.lesingle.edu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lesingle.edu.dto.request.TenantCreateRequest;
import com.lesingle.edu.dto.request.TenantUpdateRequest;
import com.lesingle.edu.dto.response.TenantResponse;
import com.lesingle.edu.entity.Tenant;

import java.util.List;

/**
 * 租户服务接口
 */
public interface TenantService extends com.baomidou.mybatisplus.extension.service.IService<Tenant> {

    /**
     * 创建租户
     */
    Tenant createTenant(TenantCreateRequest request);

    /**
     * 更新租户
     */
    Tenant updateTenant(Long id, TenantUpdateRequest request);

    /**
     * 根据 ID 查询租户
     */
    Tenant getTenantById(Long id);

    /**
     * 分页查询租户
     */
    Page<Tenant> getTenantPage(Integer pageNum, Integer pageSize, String keyword, String status);

    /**
     * 分页查询租户（带教师和学生统计）
     */
    Page<TenantResponse> getTenantPageWithStats(Integer pageNum, Integer pageSize, String keyword, String status);

    /**
     * 根据 ID 查询租户详情（带完整统计信息）
     */
    TenantResponse getTenantDetail(Long id);

    /**
     * 删除租户
     */
    void deleteTenant(Long id);

    /**
     * 获取所有活跃租户
     */
    List<Tenant> getAllActiveTenants();

    /**
     * 更新租户状态
     */
    void updateTenantStatus(Long id, String status);

    /**
     * 重置租户密码并返回临时密码
     */
    String resetPasswordAndReturnTemp(Long id);

}
