using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Text.Json.Serialization; using eprintServer.Enums; namespace eprintServer.Entities; [Table("user_customizations")] public class UserCustomization { [Column("id")] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public Guid Id { get; set; } [Column("user_id")] public long UserId { get; set; } [Column("product_id")] public long ProductId { get; set; } [JsonIgnore] public CustomizableProduct Product { get; set; } [Column("progress_id")] public Guid ProgressId { get; set; } [Column("status")] public CustomizationStatusEnum Status { get; set; } = CustomizationStatusEnum.InProgress; [Column("started_at")] public DateTime StartedAt { get; set; } [Column("completed_at")] public DateTime? CompletedAt { get; set; } [Column("total_price")] public decimal TotalPrice { get; set; } [Column("order_id")] public long? OrderId { get; set; } [Column("created_at")] public DateTime CreatedAt { get; set; } [Column("updated_at")] public DateTime UpdatedAt { get; set; } public ICollection Steps { get; set; } = new List(); [JsonIgnore] public ICollection OrderItems { get; set; } = new List(); public UserCustomization() { Id = Guid.NewGuid(); ProgressId = Guid.NewGuid(); StartedAt = DateTime.UtcNow; CreatedAt = DateTime.UtcNow; UpdatedAt = DateTime.UtcNow; Status = CustomizationStatusEnum.InProgress; } }