package com.pz.merchant.service;

import com.pz.merchant.domain.Employees;
import com.pz.merchant.domain.bo.EmployeesListBo;
import com.pz.merchant.domain.bo.SetEmployeeWorkingHourBo;
import com.pz.merchant.domain.vo.EmployeesListVo;
import com.pz.merchant.domain.vo.EmployeesVo;
import com.pz.merchant.domain.bo.EmployeesBo;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
import com.pz.merchant.domain.vo.OrderInfoVO;
import com.pz.merchant.domain.vo.TodayOrderListVo;

import java.util.Collection;
import java.util.List;

/**
 * 陪诊员Service接口
 *
 * @author WangMin
 * @date 2023-09-11
 */
public interface IEmployeesService {

    /**
     * 查询陪诊员
     */
    EmployeesVo queryById(Integer id);

    /**
     * 查询陪诊员列表
     */
    TableDataInfo<EmployeesVo> queryPageList(EmployeesBo bo, PageQuery pageQuery);

    /**
     * 查询陪诊员列表
     */
    TableDataInfo<EmployeesListVo> employeesList(EmployeesListBo bo, PageQuery pageQuery);

    /**
     * 查询陪诊员列表
     */
    List<EmployeesVo> queryList(EmployeesBo bo);

    /**
     * 新增陪诊员
     */
    Boolean insertByBo(EmployeesBo bo);

    /**
     * 修改陪诊员
     */
    Boolean updateByBo(EmployeesBo bo);

    /**
     * 校验并批量删除陪诊员信息
     */
    Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);

    /**
     * 设置员工工作时段
     */
    boolean setEmployeesWorkHours(SetEmployeeWorkingHourBo bo);

    /**
     * 查询员工信息
     *
     * @param emId 员工ID
     * @return 员工统计信息
     */
    TodayOrderListVo queryEmployeesInfo(Integer emId);

    /**
     * 员工今日订单
     *
     * @param emId 员工Id
     * @return 订单列表
     */
    List<OrderInfoVO> queryTodayOrders(Integer emId);
}