package com.gxwebsoft.glt.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.common.core.web.PageResult;
import com.gxwebsoft.glt.entity.GltUserTicket;
import com.gxwebsoft.glt.param.GltUserTicketParam;

import java.util.List;

/**
 * 我的水票Service
 *
 * @author 科技小王子
 * @since 2026-02-03 18:55:55
 */
public interface GltUserTicketService extends IService<GltUserTicket> {

    /**
     * 分页关联查询
     *
     * @param param 查询参数
     * @return PageResult<GltUserTicket>
     */
    PageResult<GltUserTicket> pageRel(GltUserTicketParam param);

    /**
     * 关联查询全部
     *
     * @param param 查询参数
     * @return List<GltUserTicket>
     */
    List<GltUserTicket> listRel(GltUserTicketParam param);

    /**
     * 根据id查询
     *
     * @param id 
     * @return GltUserTicket
     */
    GltUserTicket getByIdRel(Integer id);

    /**
     * 统计指定用户可用水票总数（sum(available_qty)）
     *
     * @param userId 用户ID
     * @param tenantId 租户ID
     * @return 可用总数（无记录返回0）
     */
    Integer sumAvailableQtyByUserId(Integer userId, Integer tenantId);

}
