using Domain.Entities; namespace Infrastructure.Repository.Breweries; /// /// Repository for CRUD operations on brewery post records. /// public interface IBreweryRepository { /// /// Retrieves a brewery post by its unique identifier. /// /// The unique identifier of the brewery post. /// The matching , or null if not found. Task GetByIdAsync(Guid id); /// /// Retrieves all brewery posts, optionally paginated. /// /// The maximum number of records to return, or null for no limit. /// The number of records to skip, or null for no offset. /// The collection of matching records. Task> GetAllAsync(int? limit, int? offset); /// /// Updates an existing brewery post. /// /// The brewery post containing updated values. Task UpdateAsync(BreweryPost brewery); /// /// Deletes a brewery post by its unique identifier. /// /// The unique identifier of the brewery post to delete. Task DeleteAsync(Guid id); /// /// Creates a new brewery post, including its location details. /// /// The brewery post to create. Must have a non-null Location. /// Thrown when has no Location. Task CreateAsync(BreweryPost brewery); }