using Journal.Core.Models;

namespace Journal.Core.Repositories;

public interface IFragmentRepository
{
    List<Fragment> GetAll();
    Fragment? GetById(Guid id);
    void Add(Fragment fragment);
    bool Remove(Guid id);
    bool Update(Guid id, string? type = null, string? description = null, IEnumerable<string>? tags = null, DateTimeOffset? time = null);
    List<Fragment> GetByTag(string tag);
    List<Fragment> GetByType(string type);
    List<Fragment> Search(string? type = null, string? tag = null, DateTimeOffset? timeAfter = null);
}
