package shop.alien.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import shop.alien.entity.store.UserReservation;
import shop.alien.entity.store.vo.StoreReservationListVo;

import java.util.Date;
import java.util.List;

/**
 * 商家端预约管理 Mapper 接口
 *
 * @author system
 * @since 2025-01-XX
 */
public interface StoreReservationMapper extends BaseMapper<UserReservation> {

    /**
     * 查询商家端预约信息列表
     *
     * @param storeId    门店ID（必填）
     * @param status     预约状态（可选，0:待确认 1:已确认 2:已到店 3:已取消 4:未到店超时）
     * @param dateFrom   预约日期起（可选）
     * @param dateTo     预约日期止（可选）
     * @param orderStatus 订单状态（可选，0:待支付 1:待使用 2:已完成 3:已过期 4:已取消 5:已关闭 6:退款中 7:已退款 8:商家预订）
     * @param reservationUserName 预约用户姓名（可选，模糊查询）
     * @return 预约信息列表
     */
    List<StoreReservationListVo> getStoreReservationList(
            @Param("storeId") Integer storeId,
            @Param("status") Integer status,
            @Param("dateFrom") Date dateFrom,
            @Param("dateTo") Date dateTo,
            @Param("orderStatus") Integer orderStatus,
            @Param("reservationUserName") String reservationUserName
    );
}
