package com.itheima.service;  // 定义接口所在的包路径：com.itheima.service

import com.itheima.po.PageInfo;  // 导入 PageInfo 类，用于封装分页信息，包含当前页、每页条数、总记录数等
import com.itheima.po.Visitor;  // 导入 Visitor 类，用于表示访客实体类，通常包含访客的各种属性，如姓名、电话等
import org.springframework.ui.Model;  // 导入 Spring 的 Model 类，通常用于在 Controller 中传递数据给视图（本代码中没有使用）

import java.util.List;  // 导入 List 类，用于存储多个 Visitor 对象，表示多个访客记录

/**
 * @program: dormitorySystem  // 项目名称：宿舍管理系统
 * @description: 访客  // 接口描述：访客管理服务接口，定义了访客相关的业务操作
 * @author: Joyrocky  // 作者：Joyrocky
 * @create: 2019-05-14 12:39  // 创建时间：2019年5月14日 12:39
 **/
public interface VisitorService {

    /**
     * 分页查询访客信息
     * @param v_name 访客姓名（可选的查询条件）
     * @param v_phone 访客电话（可选的查询条件）
     * @param pageIndex 当前页码
     * @param pageSize 每页显示的记录数
     * @return 返回一个 PageInfo<Visitor> 对象，封装了分页信息和查询结果
     */
    public PageInfo<Visitor> findPageInfo(String v_name, Integer v_phone, 
                                          Integer pageIndex, Integer pageSize);  
    // 分页查询访客信息，根据姓名（v_name）和电话（v_phone）进行筛选查询，分页参数为 pageIndex 和 pageSize。
    // 返回一个 PageInfo<Visitor> 对象，包含了分页相关信息和查询结果。

    /**
     * 添加访客信息
     * @param visitor 要添加的访客对象
     * @return 返回影响的行数，通常 1 表示添加成功，0 表示添加失败
     */
    public int addVisitor(Visitor visitor);  // 添加访客信息，返回受影响的行数，1 表示添加成功，0 表示添加失败

    /**
     * 获取所有访客信息
     * @return 返回一个 List<Visitor>，包含所有访客的信息
     */
    public List<Visitor> getAll();  // 获取所有访客信息，返回一个 List<Visitor>，表示所有访客记录
}
