Coverage for domain/field_configs.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.17.0, created at 2026-11-04 17:24 +0000

1"""1003 Field configurations, lifecycle stages, and processing requirements. 

2 

3Matches admin.types.ts (FieldConfigs) and arive-spec. 

4""" 

5 

6from __future__ import annotations 

7 

8from typing import Any 

9 

10LOAN_STAGES: list[str] = [ 

11 "APPLICATION_INTAKE", 

12 "PREAPPROVED", 

13 "QUALIFICATION", 

14 "LOAN_SETUP", 

15 "DISCLOSURE_SENT", 

16 "UNDERWRITING_SUBMITTED", 

17 "APPROVED_WITH_CONDITION", 

18 "RE_SUBMITTAL", 

19 "CLEAR_TO_CLOSE", 

20 "DOCS_OUT", 

21 "DOCS_SIGNED", 

22 "LOAN_FUNDED", 

23 "COMMISSION_PAID", 

24 "BROKER_CHECK_RECEIVED", 

25 "ADVERSE", 

26 "SUSPENDED", 

27] 

28 

29REQUIRED_TO_PROCESSING: dict[str, list[str]] = { 

30 "Purchase": [ 

31 "county", 

32 "state_code", 

33 "transaction.purchase_price_amt", 

34 "transaction.base_loan_amt", 

35 ], 

36 "Refinance": [ 

37 "county", 

38 "state_code", 

39 "transaction.appraised_value_amt", 

40 "transaction.base_loan_amt", 

41 ], 

42} 

43 

44FIELD_CONFIG_CATALOG: list[dict[str, Any]] = [ 

45 { 

46 "name": "transaction.PurchasePriceAmt", 

47 "display_name": "Purchase Price", 

48 "value_type": "number", 

49 "required": True, 

50 "visible": True, 

51 "order": 1, 

52 "category": "Loan & Property", 

53 }, 

54 { 

55 "name": "transaction.AppraisedValueAmt", 

56 "display_name": "Appraised Value", 

57 "value_type": "number", 

58 "required": False, 

59 "visible": True, 

60 "order": 2, 

61 "category": "Loan & Property", 

62 }, 

63 { 

64 "name": "transaction.BaseLoanAmt", 

65 "display_name": "Base Loan Amount", 

66 "value_type": "number", 

67 "required": True, 

68 "visible": True, 

69 "order": 3, 

70 "category": "Loan & Property", 

71 }, 

72 { 

73 "name": "transaction.NoteRatePercent", 

74 "display_name": "Note Rate", 

75 "value_type": "number", 

76 "required": False, 

77 "visible": True, 

78 "order": 4, 

79 "category": "Loan & Property", 

80 }, 

81 { 

82 "name": "transaction.MortgageType", 

83 "display_name": "Mortgage Type", 

84 "value_type": "enum", 

85 "required": True, 

86 "visible": True, 

87 "order": 5, 

88 "category": "Loan & Property", 

89 }, 

90 { 

91 "name": "transaction.AmortizationType", 

92 "display_name": "Amortization Type", 

93 "value_type": "enum", 

94 "required": True, 

95 "visible": True, 

96 "order": 6, 

97 "category": "Loan & Property", 

98 }, 

99 { 

100 "name": "transaction.LoanAmortizationPeriodCount", 

101 "display_name": "Term (months)", 

102 "value_type": "number", 

103 "required": True, 

104 "visible": True, 

105 "order": 7, 

106 "category": "Loan & Property", 

107 "default_value": 360, 

108 }, 

109 { 

110 "name": "property.PropertyType", 

111 "display_name": "Property Type", 

112 "value_type": "enum", 

113 "required": True, 

114 "visible": True, 

115 "order": 8, 

116 "category": "Loan & Property", 

117 }, 

118 { 

119 "name": "property.NumberOfUnits", 

120 "display_name": "Units", 

121 "value_type": "number", 

122 "required": False, 

123 "visible": True, 

124 "order": 9, 

125 "category": "Loan & Property", 

126 "default_value": 1, 

127 }, 

128 { 

129 "name": "occupancy", 

130 "display_name": "Occupancy", 

131 "value_type": "enum", 

132 "required": True, 

133 "visible": True, 

134 "order": 10, 

135 "category": "Loan & Property", 

136 }, 

137 { 

138 "name": "borrower.FirstName", 

139 "display_name": "First Name", 

140 "value_type": "string", 

141 "required": True, 

142 "visible": True, 

143 "order": 11, 

144 "category": "Borrower", 

145 }, 

146 { 

147 "name": "borrower.LastName", 

148 "display_name": "Last Name", 

149 "value_type": "string", 

150 "required": True, 

151 "visible": True, 

152 "order": 12, 

153 "category": "Borrower", 

154 }, 

155 { 

156 "name": "borrower.SSN", 

157 "display_name": "SSN", 

158 "value_type": "string", 

159 "required": True, 

160 "visible": True, 

161 "order": 13, 

162 "category": "Borrower", 

163 }, 

164 { 

165 "name": "borrower.BirthDate", 

166 "display_name": "Date of Birth", 

167 "value_type": "date", 

168 "required": True, 

169 "visible": True, 

170 "order": 14, 

171 "category": "Borrower", 

172 }, 

173 { 

174 "name": "borrower.CitizenResidencyType", 

175 "display_name": "Citizenship", 

176 "value_type": "enum", 

177 "required": True, 

178 "visible": True, 

179 "order": 15, 

180 "category": "Borrower", 

181 }, 

182 { 

183 "name": "borrower.MaritalStatus", 

184 "display_name": "Marital Status", 

185 "value_type": "enum", 

186 "required": False, 

187 "visible": True, 

188 "order": 16, 

189 "category": "Borrower", 

190 }, 

191] 

192 

193 

194def get_field_configs() -> dict[str, Any]: 

195 return { 

196 "stages": LOAN_STAGES, 

197 "required_to_processing": REQUIRED_TO_PROCESSING, 

198 "fields": FIELD_CONFIG_CATALOG, 

199 }