48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
using isnd.Data.Catalog;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace isnd.Data
|
|
{
|
|
public class PackageVersion
|
|
{
|
|
[Required]
|
|
[ForeignKey("Package")]
|
|
[StringLength(1024)]
|
|
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)]
|
|
[Required][Key]
|
|
public string FullString { get; set; }
|
|
public bool IsPrerelease { get; set; }
|
|
|
|
[StringLength(256)]
|
|
public string Type { get; set; }
|
|
|
|
[JsonIgnore]
|
|
public virtual Package Package { get; set; }
|
|
|
|
[Required][JsonIgnore]
|
|
[ForeignKey("LatestCommit")]
|
|
public long CommitNId { get; set ; }
|
|
|
|
[NotMapped]
|
|
|
|
public string CommitId { get => CommitNId.ToString(); }
|
|
|
|
public virtual Commit LatestCommit{ get; set; }
|
|
public string NugetLink => $"/package/{PackageId}/{FullString}/{PackageId}-{FullString}.nupkg";
|
|
public string NuspecLink => $"/package/{PackageId}/{FullString}/{PackageId}-{FullString}.nuspec";
|
|
|
|
}
|
|
} |