using System; using System.Threading.Tasks; namespace Wino.Core.Domain.Interfaces; /// /// Manages contact picture files stored on disk instead of as base64 in SQLite, /// eliminating DB bloat and enabling native WIC hardware-accelerated image loading. /// public interface IContactPictureFileService { /// /// Returns the full file path for the given file ID, or null if the file does not exist on disk. /// string GetContactPicturePath(Guid fileId); /// /// Saves raw image bytes to disk and returns the new file ID. /// Task SaveContactPictureAsync(byte[] imageData); /// /// Deletes the picture file for the given file ID if it exists. /// Task DeleteContactPictureAsync(Guid fileId); /// /// One-time startup migration: reads AccountContact rows where Base64ContactPicture is set /// but ContactPictureFileId is null, writes the picture bytes to disk, updates the DB row, /// and clears the Base64ContactPicture column. /// Task MigrateBase64PicturesAsync(); }