using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace RdtClient.Data.Models.Data;
public class Download
{
[Key]
public Guid DownloadId { get; set; }
public Guid TorrentId { get; set; }
[ForeignKey("TorrentId")]
public Torrent? Torrent { get; set; }
public String Path { get; set; } = null!;
public String? Link { get; set; }
public DateTimeOffset Added { get; set; }
public DateTimeOffset? DownloadQueued { get; set; }
public DateTimeOffset? DownloadStarted { get; set; }
public DateTimeOffset? DownloadFinished { get; set; }
public DateTimeOffset? UnpackingQueued { get; set; }
public DateTimeOffset? UnpackingStarted { get; set; }
public DateTimeOffset? UnpackingFinished { get; set; }
public DateTimeOffset? Completed { get; set; }
public Int32 RetryCount { get; set; }
public String? Error { get; set; }
public String? RemoteId { get; set; }
public String? FileName { get; set; }
[NotMapped]
public Int64 BytesTotal { get; set; }
[NotMapped]
public Int64 BytesDone { get; set; }
[NotMapped]
public Int64 Speed { get; set; }
}
///
/// Used to create s
///
public class DownloadInfo
{
///
/// The name of the file. Should not include directory.
/// If the filename is not known, set tn null and `GetFileName` will be called with the unrestricted link.
///
public required String? FileName;
///
/// The restricted link to download this download. If the debrid serice in question does not have restricted links, use
/// either a fake or the unrestricted link
///
public required String RestrictedLink;
}