Add SMS gating, TCPA terms agreement, and compose-before-send modal
- Three-tier SMS gate: platform kill-switch → admin force-disable → plan AllowSms → company opt-in - CompanySmsAgreement entity records admin acceptance of TCPA terms with IP, user agent, and terms version - SMS terms of service modal on Company Settings with versioned re-agreement (AppConstants.SmsTermsVersion) - Dev redirect: non-production SMS routed to Twilio:DevRedirectPhone to protect real customer numbers - Removed redundant Ready for Pickup SMS (Job Completed covers it) - Role-based compose modal on job completion: Admin/Manager reviews and edits before send; ShopFloor auto-sends - Send SMS button on job details for ad-hoc messages (Admin/Manager only) - SendJobSmsAsync auto-appends STOP opt-out language if missing - Migrations: AddSmsGating, AddCompanySmsAgreement Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -48,9 +48,10 @@
|
||||
"FromName": "Powder Coating App Staff"
|
||||
},
|
||||
"Twilio": {
|
||||
"AccountSid": "your-account-sid-here",
|
||||
"AuthToken": "your-auth-token-here",
|
||||
"FromNumber": "+1XXXXXXXXXX"
|
||||
"AccountSid": "SK45bb87a7645d34c9227ea20faccad642",
|
||||
"AuthToken": " f262409674753f285b1c8184785c270e",
|
||||
"FromNumber": "+18664883595",
|
||||
"DevRedirectPhone": ""
|
||||
},
|
||||
"Stripe": {
|
||||
"SecretKey": "sk_test_51TM6ukDedBup3CZU5TLbLhbBZDuBYwwygoc58JZwIrYQ2SyhKPUFcbHkFV1Q5osqkIEPt3XkwgsuinSJbY58GLx300l7z2lvqg",
|
||||
|
||||
Reference in New Issue
Block a user