namespace Sonex.Services.ImageSync;

internal sealed class ImageSyncRecord
{
    public long Id { get; set; }
    public string ArticleNumber { get; set; } = string.Empty;
    public int ImageNo { get; set; }
    public string SourceRelativePath { get; set; } = string.Empty;
    public string SourceFileName { get; set; } = string.Empty;
    public string SourceStem { get; set; } = string.Empty;
    public string SourceExtension { get; set; } = string.Empty;
    public string TargetFileName { get; set; } = string.Empty;
    public string TargetRelativePath { get; set; } = string.Empty;
    public long SourceLength { get; set; }
    public DateTime SourceLastWriteAt { get; set; }
    public DateTime UpdatedAt { get; set; }
}

internal sealed class ImageSyncRecordUpsert
{
    public required string ArticleNumber { get; init; }
    public required int ImageNo { get; init; }
    public required string SourceRelativePath { get; init; }
    public required string SourceFileName { get; init; }
    public required string SourceStem { get; init; }
    public required string SourceExtension { get; init; }
    public required long SourceLength { get; init; }
    public required DateTime SourceLastWriteAt { get; init; }
    public required DateTime UpdatedAt { get; init; }
}
