isn/src/isnd/Data/PackageVersion.cs

48 lines
1.3 KiB
C#
Raw Normal View History

2021-05-16 14:07:14 +01:00
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
2021-08-28 18:41:22 +01:00
using isnd.Data.Catalog;
2021-06-21 23:38:05 +01:00
using Newtonsoft.Json;
2021-05-16 14:07:14 +01:00
2021-08-15 19:09:01 +01:00
namespace isnd.Data
2021-05-16 14:07:14 +01:00
{
public class PackageVersion
{
[Required]
[ForeignKey("Package")]
2021-09-05 15:44:47 +01:00
[StringLength(1024)]
2021-05-16 14:07:14 +01:00
public string PackageId { get; set; }
[Required]
public int Major { get; set; }
[Required]
public int Minor { get; set; }
[Required]
public int Patch { get; set; }
[StringLength(256)]
2022-04-15 23:56:15 +01:00
[Required][Key]
2021-05-16 14:07:14 +01:00
public string FullString { get; set; }
public bool IsPrerelease { get; set; }
2021-06-21 23:38:05 +01:00
[StringLength(256)]
public string Type { get; set; }
2021-05-16 14:07:14 +01:00
2021-06-21 23:38:05 +01:00
[JsonIgnore]
public virtual Package Package { get; set; }
2021-05-16 14:07:14 +01:00
2021-08-28 18:41:22 +01:00
[Required][JsonIgnore]
2021-08-28 21:26:39 +01:00
[ForeignKey("LatestCommit")]
2021-08-28 18:41:22 +01:00
public long CommitNId { get; set ; }
[NotMapped]
public string CommitId { get => CommitNId.ToString(); }
public virtual Commit LatestCommit{ get; set; }
2021-08-12 01:04:39 +01:00
public string NugetLink => $"/package/{PackageId}/{FullString}/{PackageId}-{FullString}.nupkg";
public string NuspecLink => $"/package/{PackageId}/{FullString}/{PackageId}-{FullString}.nuspec";
2021-07-05 21:24:37 +01:00
2021-05-16 14:07:14 +01:00
}
}