package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxCouponCar;
import com.iformall.domain.vo.WxCouponCarVo;

public interface WxCouponCarService {

	/**
     * 根据实体查询分页列表
     *
     * @param record
     * @param pageIndex
     * @param pageSize
     * @return
     */
	PageInfo<WxCouponCar> listAsPage(WxCouponCar record, Integer pageIndex, Integer pageSize);
	
	/**
     * 根据Id获得实体
     *
     * @param id
     * @return
     */
    WxCouponCar getById(Long id);
    
    /**
     * 保存或更新实体
     *
     * @param record
     */
    void save(WxCouponCar record);

    /**
     * 更新实体
     *
     * @param record
     */
    void update(WxCouponCar record);

    /**
     * 根据Id删除实体
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 根据templateId获取库存总数
     *
     * @param templateId
     */
    Integer getAmtCountByTemplateId(Long templateId);

    /**
     * 根据templateId获取已分配总数
     *
     * @param templateId
     */
    Integer getAvaibleCountByTemplateId(Long templateId);

    /**
     * 根据templateId获取作废券的已领取总数
     *
     * @param templateId
     */
    Integer getClaimCountByTemplateId(Long templateId);

    /**
     * 根据coupon获得实体
     *
     * @param id
     * @return
     */
    WxCouponCarVo findDetailVo(Long id);

}
