Coverage for apps/communications/seed_data.py: 100%
2 statements
« prev ^ index » next coverage.py v7.17.0, created at 2026-11-04 14:06 +0000
« prev ^ index » next coverage.py v7.17.0, created at 2026-11-04 14:06 +0000
1MERGE_FIELDS = [
2 {"key": "borrowerFirstName", "label": "Borrower first name", "sample": "Alex"},
3 {"key": "borrowerName", "label": "Borrower full name", "sample": "Alex Rivera"},
4 {"key": "loanNumber", "label": "Loan number", "sample": "LMN-24101"},
5 {"key": "loanOfficer", "label": "Loan officer", "sample": "Timothy Reed"},
6 {"key": "loanOfficerPhone", "label": "LO phone", "sample": "(561) 555-0142"},
7 {"key": "loanAmount", "label": "Loan amount", "sample": "$400,000"},
8 {"key": "rate", "label": "Note rate", "sample": "6.625%"},
9 {"key": "stage", "label": "Current stage", "sample": "Approved w/ Cond."},
10 {"key": "propertyState", "label": "Property state", "sample": "FL"},
11 {"key": "company", "label": "Company", "sample": "Lumen Lending"},
12]
14SEED_TEMPLATES = [
15 {
16 "name": "Application received",
17 "channel": "email",
18 "category": "Lifecycle",
19 "trigger": "stage:APPLICATION_INTAKE",
20 "subject": "We've received your application, {{borrowerFirstName}}",
21 "body": "Hi {{borrowerFirstName}},\n\nThanks for applying with {{company}}. Your loan {{loanNumber}} is in our hands and your loan officer {{loanOfficer}} will reach out shortly.\n\nYou can track everything in your borrower portal.\n\n— {{loanOfficer}}, {{loanOfficerPhone}}",
22 "system": True,
23 "auto_send": True,
24 },
25 {
26 "name": "Pre-approval issued",
27 "channel": "email",
28 "category": "Lifecycle",
29 "trigger": "stage:PREAPPROVED",
30 "subject": "You're pre-approved 🎉",
31 "body": "Great news {{borrowerFirstName}} — you're pre-approved on loan {{loanNumber}} for up to {{loanAmount}}. Let's find your home.\n\n{{loanOfficer}} · {{loanOfficerPhone}}",
32 "system": True,
33 "auto_send": True,
34 },
35 {
36 "name": "In qualification",
37 "channel": "email",
38 "category": "Lifecycle",
39 "trigger": "stage:QUALIFICATION",
40 "subject": "We're reviewing your file ({{loanNumber}})",
41 "body": "Hi {{borrowerFirstName}},\n\nWe're verifying the details on loan {{loanNumber}} to get you fully qualified. We'll reach out if we need anything.\n\n— {{loanOfficer}}",
42 "system": True,
43 "auto_send": True,
44 },
45 {
46 "name": "File in setup",
47 "channel": "email",
48 "category": "Lifecycle",
49 "trigger": "stage:LOAN_SETUP",
50 "subject": "Your loan is being set up",
51 "body": "Hi {{borrowerFirstName}},\n\nYour file {{loanNumber}} is now in processing and being prepared for disclosures. No action needed yet.\n\n— {{loanOfficer}}",
52 "system": True,
53 "auto_send": True,
54 },
55 {
56 "name": "Disclosures ready to sign",
57 "channel": "email",
58 "category": "Lifecycle",
59 "trigger": "stage:DISCLOSURE_SENT",
60 "subject": "Action needed: review & e-sign your disclosures",
61 "body": "Hi {{borrowerFirstName}},\n\nYour initial disclosures for loan {{loanNumber}} are ready. Please review and e-sign them in your portal within 3 business days to keep things on track.\n\nThank you,\n{{loanOfficer}}",
62 "system": True,
63 "auto_send": True,
64 },
65 {
66 "name": "Submitted to underwriting",
67 "channel": "email",
68 "category": "Lifecycle",
69 "trigger": "stage:UNDERWRITING_SUBMITTED",
70 "subject": "Your loan is with underwriting",
71 "body": "Hi {{borrowerFirstName}},\n\nGood progress — loan {{loanNumber}} is now in underwriting. We'll let you know as soon as we hear back.\n\n— {{loanOfficer}}",
72 "system": True,
73 "auto_send": True,
74 },
75 {
76 "name": "Conditional approval",
77 "channel": "email",
78 "category": "Lifecycle",
79 "trigger": "stage:APPROVED_WITH_CONDITION",
80 "subject": "Conditional approval — a few items needed",
81 "body": "Hi {{borrowerFirstName}},\n\nLoan {{loanNumber}} is conditionally approved! The underwriter needs a few more documents. Please check your portal and upload them so we can clear your file.\n\n— {{loanOfficer}}",
82 "system": True,
83 "auto_send": True,
84 },
85 {
86 "name": "Clear to close",
87 "channel": "email",
88 "category": "Lifecycle",
89 "trigger": "stage:CLEAR_TO_CLOSE",
90 "subject": "You're Clear to Close! 🎉",
91 "body": "Congratulations {{borrowerFirstName}}! Loan {{loanNumber}} is CLEAR TO CLOSE. We'll reach out to schedule your signing appointment.\n\n— {{loanOfficer}}, {{loanOfficerPhone}}",
92 "system": True,
93 "auto_send": True,
94 },
95 {
96 "name": "Loan funded",
97 "channel": "email",
98 "category": "Lifecycle",
99 "trigger": "stage:LOAN_FUNDED",
100 "subject": "Your loan has funded — congratulations! 🏡",
101 "body": "Congratulations {{borrowerFirstName}}!\n\nLoan {{loanNumber}} has officially funded. It's been a pleasure working with you.\n\n— {{loanOfficer}}",
102 "system": True,
103 "auto_send": True,
104 },
105 {
106 "name": "Rate locked (SMS)",
107 "channel": "sms",
108 "category": "Milestones",
109 "trigger": "loan:locked",
110 "body": "{{borrowerFirstName}}, your rate is locked at {{rate}} on loan {{loanNumber}}. — {{loanOfficer}}, {{company}}",
111 "system": True,
112 "auto_send": True,
113 },
114 {
115 "name": "Clear to close (SMS)",
116 "channel": "sms",
117 "category": "Lifecycle",
118 "trigger": "stage:CLEAR_TO_CLOSE",
119 "body": "Great news {{borrowerFirstName}} — loan {{loanNumber}} is Clear to Close! We'll call to schedule signing. — {{company}}",
120 "system": True,
121 "auto_send": True,
122 },
123]