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