namespace OpenNest.Data; /// /// Storage backend for saved nests. talks to the /// central nest server; File mode in the desktop app keeps using SaveFileDialog and /// does not go through this interface. /// public interface INestRepository { /// All stored nests, newest saved first. Task> ListAsync(CancellationToken cancellationToken = default); Task GetMetadataAsync(Guid id, CancellationToken cancellationToken = default); /// Downloaded .nest archive bytes, or null when the id does not exist. Task GetFileAsync(Guid id, CancellationToken cancellationToken = default); /// Stores a new nest; returns the server-assigned record. Task UploadAsync( byte[] nestFile, NestRecord record, CancellationToken cancellationToken = default); /// Replaces the archive and metadata of an existing id, keeping the id. Task UpdateFileAsync( Guid id, byte[] nestFile, NestRecord record, CancellationToken cancellationToken = default); /// Replaces metadata only (status, made-by, comments...), leaving the archive. Task UpdateMetadataAsync( Guid id, NestRecord record, CancellationToken cancellationToken = default); Task DeleteAsync(Guid id, CancellationToken cancellationToken = default); }