Initial commit
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace PowderCoating.Application.DTOs.Company;
|
||||
|
||||
public class CompanyPreferencesDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public int CompanyId { get; set; }
|
||||
|
||||
// Application Defaults
|
||||
public string DefaultCurrency { get; set; } = "USD";
|
||||
public string DefaultDateFormat { get; set; } = "MM/dd/yyyy";
|
||||
public string DefaultTimeFormat { get; set; } = "12h";
|
||||
public string DefaultPaymentTerms { get; set; } = "Net 30";
|
||||
public int DefaultQuoteValidityDays { get; set; } = 30;
|
||||
public string QuoteNumberPrefix { get; set; } = "QT";
|
||||
public string JobNumberPrefix { get; set; } = "JOB";
|
||||
public bool UseMetricSystem { get; set; } = false;
|
||||
|
||||
// Job / Workflow
|
||||
public string DefaultJobPriority { get; set; } = "Normal";
|
||||
public bool RequireCustomerPO { get; set; }
|
||||
public bool AllowCustomerApproval { get; set; } = true;
|
||||
public int DefaultTurnaroundDays { get; set; } = 7;
|
||||
// Email Sender Identity
|
||||
public string? EmailFromAddress { get; set; }
|
||||
public string? EmailFromName { get; set; }
|
||||
|
||||
// Notifications
|
||||
public bool EmailNotificationsEnabled { get; set; } = true;
|
||||
public bool NotifyOnNewJob { get; set; } = true;
|
||||
public bool NotifyOnNewQuote { get; set; } = true;
|
||||
public bool NotifyOnJobStatusChange { get; set; } = true;
|
||||
public bool NotifyOnQuoteApproval { get; set; } = true;
|
||||
public bool NotifyOnPaymentReceived { get; set; } = true;
|
||||
public int QuoteExpiryWarningDays { get; set; } = 3;
|
||||
public int DueDateWarningDays { get; set; } = 2;
|
||||
public int MaintenanceAlertDays { get; set; } = 7;
|
||||
public bool PaymentRemindersEnabled { get; set; } = false;
|
||||
public string PaymentReminderDays { get; set; } = "7,14,30";
|
||||
|
||||
// Data Retention
|
||||
public int QuoteRetentionYears { get; set; } = 7;
|
||||
public int JobRetentionYears { get; set; } = 7;
|
||||
public int LogRetentionDays { get; set; } = 90;
|
||||
public int AutoArchiveJobsDays { get; set; } = 365;
|
||||
public int DeletedRecordRetentionDays { get; set; } = 30;
|
||||
|
||||
// Quote PDF Template
|
||||
public string QtAccentColor { get; set; } = "#374151";
|
||||
public string? QtDefaultTerms { get; set; }
|
||||
public string? QtFooterNote { get; set; }
|
||||
|
||||
// Invoice PDF Template
|
||||
public string InAccentColor { get; set; } = "#374151";
|
||||
public string? InDefaultTerms { get; set; }
|
||||
public string? InFooterNote { get; set; }
|
||||
|
||||
// Blank Work Order PDF Template
|
||||
public string WoAccentColor { get; set; } = "#374151";
|
||||
public string? WoTerms { get; set; }
|
||||
}
|
||||
|
||||
public class UpdateAppDefaultsDto
|
||||
{
|
||||
[Required, StringLength(3)] public string DefaultCurrency { get; set; } = "USD";
|
||||
[Required, StringLength(20)] public string DefaultDateFormat { get; set; } = "MM/dd/yyyy";
|
||||
[Required] public string DefaultTimeFormat { get; set; } = "12h";
|
||||
[Required, StringLength(50)] public string DefaultPaymentTerms { get; set; } = "Net 30";
|
||||
[Range(1, 365)] public int DefaultQuoteValidityDays { get; set; } = 30;
|
||||
[Required, StringLength(10)] public string QuoteNumberPrefix { get; set; } = "QT";
|
||||
[Required, StringLength(10)] public string JobNumberPrefix { get; set; } = "JOB";
|
||||
public bool UseMetricSystem { get; set; } = false;
|
||||
}
|
||||
|
||||
public class UpdateJobDefaultsDto
|
||||
{
|
||||
[Required] public string DefaultJobPriority { get; set; } = "Normal";
|
||||
public bool RequireCustomerPO { get; set; }
|
||||
public bool AllowCustomerApproval { get; set; }
|
||||
[Range(1, 365)] public int DefaultTurnaroundDays { get; set; } = 7;
|
||||
}
|
||||
|
||||
public class UpdateNotificationsDto
|
||||
{
|
||||
[EmailAddress(ErrorMessage = "Invalid email address format.")]
|
||||
[StringLength(100)]
|
||||
[Display(Name = "From Email Address")]
|
||||
public string? EmailFromAddress { get; set; }
|
||||
|
||||
[StringLength(100)]
|
||||
[Display(Name = "From Display Name")]
|
||||
public string? EmailFromName { get; set; }
|
||||
|
||||
public bool EmailNotificationsEnabled { get; set; }
|
||||
public bool NotifyOnNewJob { get; set; }
|
||||
public bool NotifyOnNewQuote { get; set; }
|
||||
public bool NotifyOnJobStatusChange { get; set; }
|
||||
public bool NotifyOnQuoteApproval { get; set; }
|
||||
public bool NotifyOnPaymentReceived { get; set; }
|
||||
[Range(0, 30)] public int QuoteExpiryWarningDays { get; set; } = 3;
|
||||
[Range(0, 30)] public int DueDateWarningDays { get; set; } = 2;
|
||||
[Range(0, 90)] public int MaintenanceAlertDays { get; set; } = 7;
|
||||
public bool PaymentRemindersEnabled { get; set; } = false;
|
||||
[StringLength(50)] public string PaymentReminderDays { get; set; } = "7,14,30";
|
||||
}
|
||||
|
||||
public class UpdateDataRetentionDto
|
||||
{
|
||||
[Range(1, 99)] public int QuoteRetentionYears { get; set; } = 7;
|
||||
[Range(1, 99)] public int JobRetentionYears { get; set; } = 7;
|
||||
[Range(30, 3650)] public int LogRetentionDays { get; set; } = 90;
|
||||
[Range(30, 3650)] public int AutoArchiveJobsDays { get; set; } = 365;
|
||||
[Range(7, 365)] public int DeletedRecordRetentionDays { get; set; } = 30;
|
||||
}
|
||||
|
||||
public class UpdateQuoteTemplateDto
|
||||
{
|
||||
[RegularExpression(@"^#[0-9A-Fa-f]{6}$", ErrorMessage = "Accent color must be a valid hex color (e.g. #374151)")]
|
||||
public string QtAccentColor { get; set; } = "#374151";
|
||||
[StringLength(3000)] public string? QtDefaultTerms { get; set; }
|
||||
[StringLength(200)] public string? QtFooterNote { get; set; }
|
||||
}
|
||||
|
||||
public class UpdateInvoiceTemplateDto
|
||||
{
|
||||
[RegularExpression(@"^#[0-9A-Fa-f]{6}$", ErrorMessage = "Accent color must be a valid hex color (e.g. #374151)")]
|
||||
public string InAccentColor { get; set; } = "#374151";
|
||||
[StringLength(3000)] public string? InDefaultTerms { get; set; }
|
||||
[StringLength(200)] public string? InFooterNote { get; set; }
|
||||
}
|
||||
|
||||
public class UpdateWorkOrderTemplateDto
|
||||
{
|
||||
[RegularExpression(@"^#[0-9A-Fa-f]{6}$", ErrorMessage = "Accent color must be a valid hex color (e.g. #374151)")]
|
||||
public string WoAccentColor { get; set; } = "#374151";
|
||||
[StringLength(2000)] public string? WoTerms { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user