// EN: Repository interface for Resource aggregate.
// VI: Interface repository cho aggregate Resource.

using BookingService.Domain.AggregatesModel.ResourceAggregate;
using BookingService.Domain.SeedWork;

namespace BookingService.Infrastructure.Repositories;

public interface IResourceRepository : IRepository<Resource>
{
    Resource Add(Resource resource);
    void Update(Resource resource);
    Task<Resource?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default);
    Task<List<Resource>> GetByShopIdAsync(Guid shopId, bool? isActive = null, CancellationToken cancellationToken = default);
}
