using EnvelopeGenerator.Domain.Interfaces; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; #if NETFRAMEWORK using System; using System.Collections.Generic; #endif namespace EnvelopeGenerator.Domain.Entities #if NET ; #elif NETFRAMEWORK { #endif [Table("TBSIG_DOCUMENT_RECEIVER_ELEMENT", Schema = "dbo")] public class Signature : ISignature, IHasReceiver { public Signature() { // TODO: * Check the Form App and remove the default value #if NETFRAMEWORK Id = -1; Required = false; ReadOnly = false; AnnotationIndex = 0; #endif } [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] [Column("GUID")] public int Id { get; set; } [Required] [Column("DOCUMENT_ID")] public int DocumentId { get; set; } [Required] [Column("RECEIVER_ID")] public int ReceiverId { get; set; } [Required] [Column("ELEMENT_TYPE")] [DefaultValue(0)] public int ElementType { get; set; } [Required] [Column("POSITION_X")] [DefaultValue(0)] public double X { get; set; } [Required] [Column("POSITION_Y")] [DefaultValue(0)] public double Y { get; set; } [Required] [Column("WIDTH")] [DefaultValue(0)] public double Width { get; set; } [Required] [Column("HEIGHT")] [DefaultValue(0)] public double Height { get; set; } [Required] [Column("PAGE")] [DefaultValue(1)] public int Page { get; set; } [Required] [Column("REQUIRED")] [DefaultValue(false)] public bool Required { get; set; } [Column("TOOLTIP")] public string Tooltip { get; set; } [Required] [Column("READ_ONLY")] [DefaultValue(false)] public bool ReadOnly { get; set; } [Required] [Column("ANNOTATION_INDEX")] [DefaultValue(0)] public int AnnotationIndex { get; set; } [Required] [Column("ADDED_WHEN", TypeName = "datetime")] [DefaultValue("GETDATE()")] public DateTime? AddedWhen { get; set; } [Column("CHANGED_WHEN", TypeName = "datetime")] public DateTime? ChangedWhen { get; set; } [Column("CHANGED_WHO", TypeName = "nvarchar(100)")] public string #if NET ? #endif ChangedWho { get; set; } [ForeignKey("DocumentId")] public virtual Document Document { get; set; } [ForeignKey("ReceiverId")] public virtual Receiver #if NET ? #endif Receiver { get; set; } public virtual IEnumerable #if NET ? #endif Annotations { get; set; } #if NET [JsonIgnore] #endif [NotMapped] public double Top => Math.Round(Y, 5); #if NET [JsonIgnore] #endif [NotMapped] public double Left => Math.Round(X, 5); } #if NETFRAMEWORK } #endif