package com.gxwebsoft.common.system.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gxwebsoft.common.system.entity.TenantSubscription;
import org.apache.ibatis.annotations.Param;

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

/**
 * 租户订阅记录Mapper
 *
 * @author WebSoft
 * @since 2025-12-12
 */
public interface TenantSubscriptionMapper extends BaseMapper<TenantSubscription> {

    /**
     * 根据租户ID查询订阅信息（关联查询）
     *
     * @param tenantId 租户ID
     * @return TenantSubscription
     */
    @InterceptorIgnore(tenantLine = "true")
    TenantSubscription selectByTenantIdRel(@Param("tenantId") Integer tenantId);

    /**
     * 查询即将过期的订阅（用于提醒）
     *
     * @param days 提前天数
     * @return List<TenantSubscription>
     */
    @InterceptorIgnore(tenantLine = "true")
    List<TenantSubscription> selectExpiringSoon(@Param("days") Integer days);

    /**
     * 查询已过期的订阅
     *
     * @return List<TenantSubscription>
     */
    @InterceptorIgnore(tenantLine = "true")
    List<TenantSubscription> selectExpired();
}
