using SIGCM.Domain.Entities;

namespace SIGCM.Domain.Interfaces;

public interface ICouponRepository
{
    Task<IEnumerable<Coupon>> GetAllAsync();
    Task<int> CreateAsync(Coupon coupon);
    Task DeleteAsync(int id);
    Task<Coupon?> GetByCodeAsync(string code);
    Task IncrementUsageAsync(int id);
    Task<int> CountUserUsageAsync(int userId, string couponCode);
}
