namespace JobTrackerApi.Models;

public sealed class CvUploadArtifact
{
    public int Id { get; set; }
    public string OwnerUserId { get; set; } = string.Empty;
    public string OriginalFileName { get; set; } = string.Empty;
    public string StoredFileName { get; set; } = string.Empty;
    public string MimeType { get; set; } = string.Empty;
    public long ByteSize { get; set; }
    public string Sha256 { get; set; } = string.Empty;
    public string StoragePath { get; set; } = string.Empty;
    public DateTimeOffset UploadedAtUtc { get; set; } = DateTimeOffset.UtcNow;
}

public sealed class CvExtractionRun
{
    public int Id { get; set; }
    public string OwnerUserId { get; set; } = string.Empty;
    public int? ArtifactId { get; set; }
    public CvUploadArtifact? Artifact { get; set; }
    public string Trigger { get; set; } = string.Empty;
    public string ParserVersion { get; set; } = string.Empty;
    public string NormalizerVersion { get; set; } = string.Empty;
    public string LlmPromptVersion { get; set; } = string.Empty;
    public string Status { get; set; } = string.Empty;
    public string? RawExtractedText { get; set; }
    public string? NormalizedText { get; set; }
    public string? StructuredProfileJson { get; set; }
    public string? ErrorMessage { get; set; }
    public DateTimeOffset StartedAtUtc { get; set; } = DateTimeOffset.UtcNow;
    public DateTimeOffset? CompletedAtUtc { get; set; }
    public DateTimeOffset? AppliedAtUtc { get; set; }
}
