using AdsAnalyticsService.Domain.SeedWork; namespace AdsAnalyticsService.Domain.AggregatesModel.SampleAggregate; /// /// EN: Repository interface for Sample aggregate. /// VI: Interface repository cho Sample aggregate. /// /// /// EN: Following repository pattern, this interface defines the contract /// for data access operations on Sample aggregate. /// VI: Theo pattern repository, interface này định nghĩa contract /// cho các thao tác truy cập dữ liệu trên Sample aggregate. /// public interface ISampleRepository : IRepository { /// /// EN: Get a sample by its ID. /// VI: Lấy một sample theo ID. /// /// EN: The sample ID / VI: ID của sample /// EN: The sample or null if not found / VI: Sample hoặc null nếu không tìm thấy Task GetAsync(Guid sampleId); /// /// EN: Get all samples. /// VI: Lấy tất cả samples. /// /// EN: List of samples / VI: Danh sách samples Task> GetAllAsync(); /// /// EN: Add a new sample. /// VI: Thêm một sample mới. /// /// EN: The sample to add / VI: Sample cần thêm /// EN: The added sample / VI: Sample đã thêm Sample Add(Sample sample); /// /// EN: Update an existing sample. /// VI: Cập nhật một sample đã tồn tại. /// /// EN: The sample to update / VI: Sample cần cập nhật void Update(Sample sample); /// /// EN: Delete a sample. /// VI: Xóa một sample. /// /// EN: The sample to delete / VI: Sample cần xóa void Delete(Sample sample); /// /// EN: Get samples by status. /// VI: Lấy samples theo trạng thái. /// /// EN: The status ID / VI: ID trạng thái /// EN: List of samples with given status / VI: Danh sách samples với trạng thái cho trước Task> GetByStatusAsync(int statusId); }