#nullable enable annotations using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Yavsc.Models.Billing { using Models.Workflow; using Newtonsoft.Json; public partial class Estimate : IEstimate { [Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public long Id { get; set; } public long? CommandId { get; set; } /// /// A command is not required to create /// an estimate, /// it will result in a new estimate template /// /// [ForeignKey("CommandId"),JsonIgnore] public NominativeServiceCommand? Query { get; set; } public string Description { get; set; } public string Title { get; set; } [InverseProperty("Estimate")] public virtual List Bill { get; set; } /// /// List of attached graphic files /// to this estimate, as relative pathes to /// the command performer's root path. /// In db, they are separated by : /// /// [NotMapped] public List AttachedGraphics { get; set; } public string AttachedGraphicsString { get { return string.Join(":", AttachedGraphics); } set { AttachedGraphics = value.Split(':').ToList(); } } /// /// List of attached files /// to this estimate, as relative pathes to /// the command performer's root path. /// In db, they are separated by : /// /// [NotMapped] public List AttachedFiles { get; set; } public string AttachedFilesString { get { return string.Join(":", AttachedFiles); } set { AttachedFiles = value.Split(':').ToList(); } } public string OwnerId { get; set; } [ForeignKey("OwnerId"),JsonIgnore] public virtual PerformerProfile Owner { get; set; } [Required] public string ClientId { get; set; } [ForeignKey("ClientId"),JsonIgnore] public virtual ApplicationUser Client { get; set; } [Required] public string CommandType { get; set; } public DateTime ProviderValidationDate { get; set; } public DateTime ClientValidationDate { get; set; } /// /// All signatures captured against this estimate, in /// capture order. Multiple versions per (Type, SignerId) /// are allowed; the controller reads the most recent /// when asked. See . /// [InverseProperty(nameof(Signature.Estimate))] public virtual ICollection Signatures { get; set; } = new List(); } }