namespace OTSSignsOrchestrator.Server.Data.Entities; public enum CustomerPlan { Essentials, Pro } public enum CustomerStatus { PendingPayment, Provisioning, Active, Suspended, Decommissioned } public class Customer { public Guid Id { get; set; } public string Abbreviation { get; set; } = string.Empty; public string CompanyName { get; set; } = string.Empty; public string AdminEmail { get; set; } = string.Empty; public string AdminFirstName { get; set; } = string.Empty; public string AdminLastName { get; set; } = string.Empty; public CustomerPlan Plan { get; set; } public int ScreenCount { get; set; } public string? StripeCustomerId { get; set; } public string? StripeSubscriptionId { get; set; } public string? StripeCheckoutSessionId { get; set; } public CustomerStatus Status { get; set; } public int FailedPaymentCount { get; set; } public DateTime? FirstPaymentFailedAt { get; set; } public DateTime CreatedAt { get; set; } public ICollection Instances { get; set; } = []; public ICollection Jobs { get; set; } = []; }