using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Newtonsoft.Json;

namespace isn.Data
{
    public class PackageVersion
    {
        [Required]
        [ForeignKey("Package")]
        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]
        public string FullString { get; set; }
        public bool IsPrerelease { get; set; }

        [StringLength(256)]
        public string Type { get; set; }

        [JsonIgnore]
        public virtual Package Package { get; set; }

        public string GetParmaLink()
        {
            return $"/package/{PackageId}/{FullString}/{PackageId}{FullString}.nupkg";
        }

    }
}