using AyCode.Interfaces.Entities; using AyCode.Interfaces.TimeStampInfo; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Dynamic; using AyCode.Interfaces.Profiles.Dtos; using TIAM.Core.Enums; using TIAM.Entities.Products; using TIAM.Entities.Profiles; using TIAM.Entities.Users; namespace TIAM.Entities.Transfers; [Table(nameof(Transfer))] public class Transfer: IEntityGuid, IAcFullName, ITimeStampInfo, IProductForeignKey, IUserForeignKey { [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] public Guid Id { get; set; } [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int OrderId { get; set; } public Guid UserId { get; set; } public Guid? ProductId { get; set; } public virtual List TransferToDrivers { get; set; } [Required] public TransferStatusType TransferStatusType { get; set; } = TransferStatusType.OrderSubmitted; [Required] public DateTime Appointment { get; set; } public bool Payed { get; set; } public double? Price { get; set; } public byte PassengerCount { get; set; } public byte LuggageCount { get; set; } [MaxLength(50)] public string? FlightNumber { get; set; } [MaxLength(200)] public string FromAddress { get; set; } [MaxLength(200)] public string? ToAddress { get; set; } public string? FullName => Profile.GetFullName(FirstName, LastName); [Column("ContactFirstName")]public string? FirstName { get; set; } [Column("ContactLastName")]public string? LastName { get; set; } public string ContactEmail {get;set; } public string ContactPhone {get;set; } [MaxLength(250)] public string? Comment { get; set; } //[Column("ReferralProductId")] public Guid? ReferralId { get; set; } public DateTime Created { get; set; } public DateTime Modified { get; set; } }