using Microsoft.AspNetCore.Http; namespace PowderCoating.Application.Interfaces; public interface IProfilePhotoService { /// /// Saves a profile photo for a user /// Stores in [ContentRoot]/media/{companyId}/profile-photos/{userId}.{ext} /// /// The photo file to upload /// The user's ID /// The company's ID /// Tuple with success status, relative file path, and error message if any Task<(bool Success, string FilePath, string ErrorMessage)> SaveProfilePhotoAsync( IFormFile file, string userId, int companyId); /// /// Deletes a user's profile photo /// /// Relative path to the photo file /// Tuple with success status and error message if any Task<(bool Success, string ErrorMessage)> DeleteProfilePhotoAsync(string filePath); /// /// Gets a profile photo /// /// Relative path to the photo /// Tuple with success status, file bytes, content type, and error message Task<(bool Success, byte[] FileContent, string ContentType, string ErrorMessage)> GetProfilePhotoAsync(string filePath); /// /// Checks if a profile photo exists /// /// Relative path to the photo /// True if exists, false otherwise Task ProfilePhotoExistsAsync(string filePath); }