package com.happy.service;

import com.happy.Model.Booking;
import com.happy.Model.HotelCoupon;
import com.happy.Model.HotelCouponStatus;
import com.happy.dto.IPage;
import com.happy.vo.*;

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

public interface HotelCoupomService {

    /**
     * 描述：新增
     * @param hotelCoupon
     * @return
     */
    int insert(HotelCoupon hotelCoupon);

    /**
     * 描述：修改
     * @param hotelCoupon
     * @return
     */
    int update(HotelCoupon hotelCoupon);

    /**
     * 描述：删除
     * @param id
     * @return
     */
    int delete(Integer id);

    /**
     * 描述：根据id查询
     * @param id
     * @return
     */
    HotelCoupon getById(String id);

    /**
     * 描述：分页查询
     * @param sqlx
     * @param page
     * @param rows
     * @return
     */
    IPage<HotelCoupon> queryPage(String sqlx, int page, int rows);

    /**
     * 描述：查询列表
     * @param sqlx
     * @return
     */
    List<HotelCoupon> queryList(String sqlx);

    int updateExpire();

    int updateLapse(List<String> coupomIds);


    IPage<CouponCollectionVo> couponCollection(String date, int page, int rows,String userId);

    DesignatedHotelVo designatedHotel(String hotelIds);

    Boolean quota(String complaintId,String userId);

    int coupon(HotelCouponStatus hotelCouponStatus);

    /**
     * 我的卡卷
     * @param types
     * @param userId
     * @param page
     * @param rows
     * @return
     */
    IPage<CardCouponPageVo> cardCouponPage(String types, String userId, int page, int rows);

    /**
     * 可用优惠券
     * @param hotelId
     * @param userId
     * @param page
     * @param rows
     * @return
     */
    IPage<UsefulCouponVo> usefulCoupon(String hotelId, String userId, int page, int rows,Double totalPrice);


    int useCoupons(HotelCoupon hotelCoupon, HotelCouponStatus hotelCouponStatus);


    int updatReversedNumber(HotelCoupon hotelCoupon);

    List<CouponModel> getCoupon(String strs);

    IPage<HotelCoupon> advertisingCouponPage(String toString, Integer page, Integer rows);
}
