using RealCV.Application.DTOs;
using RealCV.Application.Models;

namespace RealCV.Application.Interfaces;

public interface ICVCheckService
{
    Task<Guid> CreateCheckAsync(Guid userId, Stream file, string fileName);
    Task<CVCheckDto?> GetCheckAsync(Guid id);
    Task<CVCheckDto?> GetCheckForUserAsync(Guid id, Guid userId);
    Task<List<CVCheckDto>> GetUserChecksAsync(Guid userId);
    Task<VeracityReport?> GetReportAsync(Guid checkId, Guid userId);
    Task<bool> DeleteCheckAsync(Guid checkId, Guid userId);

    /// <summary>
    /// GDPR: Delete all CV checks and associated data for a user (right to erasure).
    /// </summary>
    Task<int> DeleteAllUserDataAsync(Guid userId);
}
