Initial commit

This commit is contained in:
2026-04-23 21:38:24 -04:00
commit 63e12a9636
1762 changed files with 1672620 additions and 0 deletions
@@ -0,0 +1,75 @@
using System.ComponentModel.DataAnnotations;
namespace PowderCoating.Application.DTOs.Subscription;
public class SubscriptionPlanConfigDto
{
public int Id { get; set; }
public int Plan { get; set; }
public string DisplayName { get; set; } = string.Empty;
public string? Description { get; set; }
public int MaxUsers { get; set; }
public int MaxActiveJobs { get; set; }
public int MaxCustomers { get; set; }
public int MaxQuotes { get; set; }
public int MaxCatalogItems { get; set; }
public int MaxJobPhotos { get; set; }
public int MaxQuotePhotos { get; set; }
public int MaxAiPhotoQuotesPerMonth { get; set; }
public decimal MonthlyPrice { get; set; }
public decimal AnnualPrice { get; set; }
public string? StripePriceIdMonthly { get; set; }
public string? StripePriceIdAnnual { get; set; }
public bool AllowOnlinePayments { get; set; }
public bool AllowAccounting { get; set; }
public bool AllowAiPhotoQuotes { get; set; }
public bool AllowAiInventoryAssist { get; set; }
public bool IsActive { get; set; }
public int SortOrder { get; set; }
}
public class UpdateSubscriptionPlanConfigDto
{
public int Id { get; set; }
public string? Description { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxUsers { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxActiveJobs { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxCustomers { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxQuotes { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxCatalogItems { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxJobPhotos { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxQuotePhotos { get; set; }
[Range(-1, int.MaxValue, ErrorMessage = "Value must be -1 (unlimited) or a positive number")]
public int MaxAiPhotoQuotesPerMonth { get; set; }
[Range(0, 99999, ErrorMessage = "Price must be between 0 and 99999")]
public decimal MonthlyPrice { get; set; }
[Range(0, 99999, ErrorMessage = "Price must be between 0 and 99999")]
public decimal AnnualPrice { get; set; }
public string? StripePriceIdMonthly { get; set; }
public string? StripePriceIdAnnual { get; set; }
public bool AllowOnlinePayments { get; set; }
public bool AllowAccounting { get; set; }
public bool AllowAiPhotoQuotes { get; set; }
public bool AllowAiInventoryAssist { get; set; }
public bool IsActive { get; set; }
}