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();
}