2bf8871892
- Appointment reminders: add AppointmentReminderBackgroundService (60s poll), ReminderSentAt dedup stamp, NotifyAppointmentReminderAsync sends both customer email and creator staff email; AppointmentReminderStaff notification type + default template added; DateTime.Now used instead of UtcNow to match locally-stored ScheduledStartTime; ToLocalTime() double-conversion removed - NoExtraLayerCharge not persisted: flag existed on CreateQuoteItemCoatDto and was used by pricing engine but never written to JobItemCoat/QuoteItemCoat entities — every edit reset it to false and re-applied the extra layer charge; added column to both entities (migration AddNoExtraLayerChargeToCoats), both read DTOs, all 3 JobItemAssemblyService overloads, JobItemCoatSeed inner class, and existingItemsData JSON in all 5 wizard views; fixed JS template path that hard-coded noExtraLayerCharge: false - Coat notes not visible: notes were rendered in desktop job details but missing from the wizard item card summary and the mobile card view; both fixed - Scroll position lost on item save: sessionStorage save/restore added to item-wizard.js owner form submit handler; path-keyed so cross-page navigation does not restore stale position; requestAnimationFrame used for reliable mobile scroll restoration - Invoice Send dead button: #sendChannelModal was gated inside @if (isDraft) but the button targeting it fires for Sent/Overdue invoices too when customer has both email and SMS; modal moved outside the Draft guard - InitialCreate migration added for fresh database installs; Baseline migration guarded with IF OBJECT_ID check so it no-ops on fresh DBs; Razor scoping bug fixed in Customers/Index.cshtml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
709 B
C#
27 lines
709 B
C#
namespace PowderCoating.Core.Enums;
|
|
|
|
public enum NotificationChannel { Email = 0, Sms = 1 }
|
|
public enum NotificationStatus { Sent = 0, Failed = 1, Skipped = 2 }
|
|
public enum NotificationType
|
|
{
|
|
QuoteSent = 0,
|
|
QuoteApproved = 1,
|
|
JobStatusChanged = 2,
|
|
JobReadyForPickup = 3,
|
|
JobCompleted = 4,
|
|
SmsConsentConfirmation = 5,
|
|
InvoiceSent = 6,
|
|
PaymentReceived = 7,
|
|
QuoteDeclinedByCustomer = 8,
|
|
QuoteApprovedByCustomer = 16,
|
|
PaymentReminder = 9,
|
|
SubscriptionExpiryReminder = 10,
|
|
SubscriptionExpired = 11,
|
|
SmsInboundStop = 12,
|
|
SmsInboundHelp = 13,
|
|
AdminEmail = 14,
|
|
SmsInboundStart = 15,
|
|
AppointmentReminder = 17,
|
|
AppointmentReminderStaff = 18
|
|
}
|