@salesforce/ui-bundle-template-feature-property-management-metadata 1.117.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/LICENSE.txt +82 -0
  2. package/package.json +25 -0
  3. package/src/force-app/main/default/classes/MaintenanceRequestTriggerHandler.cls +69 -0
  4. package/src/force-app/main/default/classes/MaintenanceRequestTriggerHandler.cls-meta.xml +5 -0
  5. package/src/force-app/main/default/classes/MaintenanceRequestTriggerHandler_Test.cls +308 -0
  6. package/src/force-app/main/default/classes/MaintenanceRequestTriggerHandler_Test.cls-meta.xml +5 -0
  7. package/src/force-app/main/default/classes/TenantTriggerHandler.cls +77 -0
  8. package/src/force-app/main/default/classes/TenantTriggerHandler.cls-meta.xml +5 -0
  9. package/src/force-app/main/default/classes/TenantTriggerHandler_Test.cls +100 -0
  10. package/src/force-app/main/default/classes/TenantTriggerHandler_Test.cls-meta.xml +5 -0
  11. package/src/force-app/main/default/cspTrustedSites/GitHub_Avatars.cspTrustedSite-meta.xml +15 -0
  12. package/src/force-app/main/default/cspTrustedSites/Google_Fonts.cspTrustedSite-meta.xml +15 -0
  13. package/src/force-app/main/default/cspTrustedSites/Google_Fonts_Static.cspTrustedSite-meta.xml +15 -0
  14. package/src/force-app/main/default/cspTrustedSites/OpenStreetMap_Nominatim.cspTrustedSite-meta.xml +15 -0
  15. package/src/force-app/main/default/cspTrustedSites/OpenStreetMap_Tiles.cspTrustedSite-meta.xml +15 -0
  16. package/src/force-app/main/default/cspTrustedSites/Open_Meteo_API.cspTrustedSite-meta.xml +15 -0
  17. package/src/force-app/main/default/cspTrustedSites/Pexels_Images.cspTrustedSite-meta.xml +15 -0
  18. package/src/force-app/main/default/cspTrustedSites/Pexels_Videos.cspTrustedSite-meta.xml +15 -0
  19. package/src/force-app/main/default/cspTrustedSites/Unsplash_Images.cspTrustedSite-meta.xml +15 -0
  20. package/src/force-app/main/default/data/Agent__c.json +79 -0
  21. package/src/force-app/main/default/data/Application__c.json +124 -0
  22. package/src/force-app/main/default/data/Contact.json +44 -0
  23. package/src/force-app/main/default/data/KPI_Snapshot__c.json +160 -0
  24. package/src/force-app/main/default/data/Lease__c.json +9442 -0
  25. package/src/force-app/main/default/data/Maintenance_Request__c.json +514 -0
  26. package/src/force-app/main/default/data/Maintenance_Worker__c.json +304 -0
  27. package/src/force-app/main/default/data/Notification__c.json +214 -0
  28. package/src/force-app/main/default/data/Payment__c.json +1024 -0
  29. package/src/force-app/main/default/data/Property_Cost__c.json +484 -0
  30. package/src/force-app/main/default/data/Property_Feature__c.json +169 -0
  31. package/src/force-app/main/default/data/Property_Image__c.json +148 -0
  32. package/src/force-app/main/default/data/Property_Listing__c.json +130 -0
  33. package/src/force-app/main/default/data/Property_Management_Company__c.json +70 -0
  34. package/src/force-app/main/default/data/Property_Owner__c.json +184 -0
  35. package/src/force-app/main/default/data/Property_Sale__c.json +246 -0
  36. package/src/force-app/main/default/data/Property__c.json +704 -0
  37. package/src/force-app/main/default/data/Tenant__c.json +184 -0
  38. package/src/force-app/main/default/data/data-plan.json +110 -0
  39. package/src/force-app/main/default/data/prepare-import-unique-fields.js +85 -0
  40. package/src/force-app/main/default/layouts/Application__c-Application Layout.layout-meta.xml +58 -0
  41. package/src/force-app/main/default/layouts/KPI_Snapshot__c-KPI Snapshot Layout.layout-meta.xml +87 -0
  42. package/src/force-app/main/default/layouts/Lease__c-Lease Layout.layout-meta.xml +83 -0
  43. package/src/force-app/main/default/layouts/Maintenance_Request__c-Maintenance Request Layout.layout-meta.xml +89 -0
  44. package/src/force-app/main/default/layouts/Maintenance_Worker__c-Maintenance Worker Layout.layout-meta.xml +66 -0
  45. package/src/force-app/main/default/layouts/Payment__c-Payment Layout.layout-meta.xml +88 -0
  46. package/src/force-app/main/default/layouts/Property_Cost__c-Property Cost Layout.layout-meta.xml +88 -0
  47. package/src/force-app/main/default/layouts/Property_Feature__c-Property Feature Layout.layout-meta.xml +80 -0
  48. package/src/force-app/main/default/layouts/Property_Image__c-Property Image Layout.layout-meta.xml +75 -0
  49. package/src/force-app/main/default/layouts/Property_Listing__c-Property Listing Layout.layout-meta.xml +92 -0
  50. package/src/force-app/main/default/layouts/Property_Management_Company__c-Property Management Company Layout.layout-meta.xml +75 -0
  51. package/src/force-app/main/default/layouts/Property_Owner__c-Property Owner Layout.layout-meta.xml +67 -0
  52. package/src/force-app/main/default/layouts/Property_Sale__c-Property Sale Layout.layout-meta.xml +87 -0
  53. package/src/force-app/main/default/layouts/Property__c-Property Layout.layout-meta.xml +130 -0
  54. package/src/force-app/main/default/layouts/Tenant__c-Tenant Layout.layout-meta.xml +58 -0
  55. package/src/force-app/main/default/objects/Agent__c/Agent__c.object-meta.xml +66 -0
  56. package/src/force-app/main/default/objects/Agent__c/fields/Agent_Type__c.field-meta.xml +37 -0
  57. package/src/force-app/main/default/objects/Agent__c/fields/Availability__c.field-meta.xml +37 -0
  58. package/src/force-app/main/default/objects/Agent__c/fields/Emergency_Alt__c.field-meta.xml +11 -0
  59. package/src/force-app/main/default/objects/Agent__c/fields/Language__c.field-meta.xml +42 -0
  60. package/src/force-app/main/default/objects/Agent__c/fields/License_Expiry__c.field-meta.xml +11 -0
  61. package/src/force-app/main/default/objects/Agent__c/fields/License_Number__c.field-meta.xml +14 -0
  62. package/src/force-app/main/default/objects/Agent__c/fields/Office_Location__c.field-meta.xml +42 -0
  63. package/src/force-app/main/default/objects/Agent__c/fields/Territory__c.field-meta.xml +42 -0
  64. package/src/force-app/main/default/objects/Application__c/Application__c.object-meta.xml +67 -0
  65. package/src/force-app/main/default/objects/Application__c/fields/Employment__c.field-meta.xml +10 -0
  66. package/src/force-app/main/default/objects/Application__c/fields/Property__c.field-meta.xml +15 -0
  67. package/src/force-app/main/default/objects/Application__c/fields/References__c.field-meta.xml +10 -0
  68. package/src/force-app/main/default/objects/Application__c/fields/Start_Date__c.field-meta.xml +9 -0
  69. package/src/force-app/main/default/objects/Application__c/fields/Status__c.field-meta.xml +47 -0
  70. package/src/force-app/main/default/objects/Application__c/fields/User__c.field-meta.xml +15 -0
  71. package/src/force-app/main/default/objects/KPI_Snapshot__c/KPI_Snapshot__c.object-meta.xml +65 -0
  72. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Previous_Month_Sales__c.field-meta.xml +12 -0
  73. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Sales_MoM_Change__c.field-meta.xml +18 -0
  74. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Snapshot_Date__c.field-meta.xml +10 -0
  75. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Total_Properties__c.field-meta.xml +13 -0
  76. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Total_Sales_Amount__c.field-meta.xml +12 -0
  77. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Total_Sales_Count__c.field-meta.xml +13 -0
  78. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Units_Available__c.field-meta.xml +13 -0
  79. package/src/force-app/main/default/objects/KPI_Snapshot__c/fields/Units_Occupied__c.field-meta.xml +13 -0
  80. package/src/force-app/main/default/objects/Lease__c/Lease__c.object-meta.xml +67 -0
  81. package/src/force-app/main/default/objects/Lease__c/fields/End_Date__c.field-meta.xml +10 -0
  82. package/src/force-app/main/default/objects/Lease__c/fields/Lease_Status__c.field-meta.xml +36 -0
  83. package/src/force-app/main/default/objects/Lease__c/fields/Monthly_Rent__c.field-meta.xml +12 -0
  84. package/src/force-app/main/default/objects/Lease__c/fields/Property__c.field-meta.xml +15 -0
  85. package/src/force-app/main/default/objects/Lease__c/fields/Security_Deposit__c.field-meta.xml +12 -0
  86. package/src/force-app/main/default/objects/Lease__c/fields/Start_Date__c.field-meta.xml +10 -0
  87. package/src/force-app/main/default/objects/Lease__c/fields/Tenant__c.field-meta.xml +14 -0
  88. package/src/force-app/main/default/objects/Lease__c/validationRules/End_Date_After_Start_Date.validationRule-meta.xml +10 -0
  89. package/src/force-app/main/default/objects/Maintenance_Request__c/Maintenance_Request__c.object-meta.xml +73 -0
  90. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Actual_Cost__c.field-meta.xml +13 -0
  91. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Assigned_Worker__c.field-meta.xml +15 -0
  92. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Completed__c.field-meta.xml +11 -0
  93. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Description__c.field-meta.xml +12 -0
  94. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Est_Cost__c.field-meta.xml +13 -0
  95. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Priority__c.field-meta.xml +32 -0
  96. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Property__c.field-meta.xml +15 -0
  97. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Scheduled__c.field-meta.xml +11 -0
  98. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Status__c.field-meta.xml +42 -0
  99. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Tenant_Home__c.field-meta.xml +11 -0
  100. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/Type__c.field-meta.xml +62 -0
  101. package/src/force-app/main/default/objects/Maintenance_Request__c/fields/User__c.field-meta.xml +15 -0
  102. package/src/force-app/main/default/objects/Maintenance_Worker__c/Maintenance_Worker__c.object-meta.xml +71 -0
  103. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/Certifications__c.field-meta.xml +12 -0
  104. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/Employment_Type__c.field-meta.xml +32 -0
  105. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/Hourly_Rate__c.field-meta.xml +13 -0
  106. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/IsActive__c.field-meta.xml +11 -0
  107. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/Location__c.field-meta.xml +13 -0
  108. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/Phone__c.field-meta.xml +11 -0
  109. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/Rating__c.field-meta.xml +14 -0
  110. package/src/force-app/main/default/objects/Maintenance_Worker__c/fields/Type__c.field-meta.xml +57 -0
  111. package/src/force-app/main/default/objects/Notification__c/Notification__c.object-meta.xml +67 -0
  112. package/src/force-app/main/default/objects/Notification__c/fields/Is_Read__c.field-meta.xml +10 -0
  113. package/src/force-app/main/default/objects/Notification__c/fields/Message__c.field-meta.xml +11 -0
  114. package/src/force-app/main/default/objects/Notification__c/fields/Priority__c.field-meta.xml +36 -0
  115. package/src/force-app/main/default/objects/Notification__c/fields/Related_Object_Type__c.field-meta.xml +12 -0
  116. package/src/force-app/main/default/objects/Notification__c/fields/Related_Record_Id__c.field-meta.xml +12 -0
  117. package/src/force-app/main/default/objects/Notification__c/fields/Title__c.field-meta.xml +12 -0
  118. package/src/force-app/main/default/objects/Notification__c/fields/Type__c.field-meta.xml +36 -0
  119. package/src/force-app/main/default/objects/Notification__c/fields/User__c.field-meta.xml +14 -0
  120. package/src/force-app/main/default/objects/Payment__c/Payment__c.object-meta.xml +67 -0
  121. package/src/force-app/main/default/objects/Payment__c/fields/Amount__c.field-meta.xml +12 -0
  122. package/src/force-app/main/default/objects/Payment__c/fields/Lease__c.field-meta.xml +15 -0
  123. package/src/force-app/main/default/objects/Payment__c/fields/Notes__c.field-meta.xml +11 -0
  124. package/src/force-app/main/default/objects/Payment__c/fields/Payment_Date__c.field-meta.xml +10 -0
  125. package/src/force-app/main/default/objects/Payment__c/fields/Payment_Method__c.field-meta.xml +41 -0
  126. package/src/force-app/main/default/objects/Payment__c/fields/Payment_Status__c.field-meta.xml +36 -0
  127. package/src/force-app/main/default/objects/Property_Cost__c/Property_Cost__c.object-meta.xml +67 -0
  128. package/src/force-app/main/default/objects/Property_Cost__c/fields/Cost_Amount__c.field-meta.xml +12 -0
  129. package/src/force-app/main/default/objects/Property_Cost__c/fields/Cost_Category__c.field-meta.xml +56 -0
  130. package/src/force-app/main/default/objects/Property_Cost__c/fields/Cost_Date__c.field-meta.xml +11 -0
  131. package/src/force-app/main/default/objects/Property_Cost__c/fields/Description__c.field-meta.xml +12 -0
  132. package/src/force-app/main/default/objects/Property_Cost__c/fields/Property__c.field-meta.xml +15 -0
  133. package/src/force-app/main/default/objects/Property_Cost__c/fields/Vendor__c.field-meta.xml +12 -0
  134. package/src/force-app/main/default/objects/Property_Cost__c/validationRules/Cost_Amount_Limit.validationRule-meta.xml +10 -0
  135. package/src/force-app/main/default/objects/Property_Feature__c/Property_Feature__c.object-meta.xml +65 -0
  136. package/src/force-app/main/default/objects/Property_Feature__c/fields/Description__c.field-meta.xml +11 -0
  137. package/src/force-app/main/default/objects/Property_Feature__c/fields/Display_on_Listing__c.field-meta.xml +10 -0
  138. package/src/force-app/main/default/objects/Property_Feature__c/fields/Feature_Category__c.field-meta.xml +51 -0
  139. package/src/force-app/main/default/objects/Property_Feature__c/fields/Property__c.field-meta.xml +15 -0
  140. package/src/force-app/main/default/objects/Property_Image__c/Property_Image__c.object-meta.xml +65 -0
  141. package/src/force-app/main/default/objects/Property_Image__c/fields/Alt_Text__c.field-meta.xml +12 -0
  142. package/src/force-app/main/default/objects/Property_Image__c/fields/Display_Order__c.field-meta.xml +13 -0
  143. package/src/force-app/main/default/objects/Property_Image__c/fields/Image_Type__c.field-meta.xml +41 -0
  144. package/src/force-app/main/default/objects/Property_Image__c/fields/Image_URL__c.field-meta.xml +10 -0
  145. package/src/force-app/main/default/objects/Property_Image__c/fields/Property__c.field-meta.xml +15 -0
  146. package/src/force-app/main/default/objects/Property_Listing__c/Property_Listing__c.object-meta.xml +65 -0
  147. package/src/force-app/main/default/objects/Property_Listing__c/fields/Display_Order__c.field-meta.xml +13 -0
  148. package/src/force-app/main/default/objects/Property_Listing__c/fields/Featured__c.field-meta.xml +10 -0
  149. package/src/force-app/main/default/objects/Property_Listing__c/fields/Listing_Price__c.field-meta.xml +12 -0
  150. package/src/force-app/main/default/objects/Property_Listing__c/fields/Listing_Status__c.field-meta.xml +41 -0
  151. package/src/force-app/main/default/objects/Property_Listing__c/fields/Marketing_Description__c.field-meta.xml +11 -0
  152. package/src/force-app/main/default/objects/Property_Listing__c/fields/Property__c.field-meta.xml +15 -0
  153. package/src/force-app/main/default/objects/Property_Listing__c/fields/Short_Description__c.field-meta.xml +12 -0
  154. package/src/force-app/main/default/objects/Property_Management_Company__c/Property_Management_Company__c.object-meta.xml +65 -0
  155. package/src/force-app/main/default/objects/Property_Management_Company__c/fields/Active__c.field-meta.xml +10 -0
  156. package/src/force-app/main/default/objects/Property_Management_Company__c/fields/Company_Code__c.field-meta.xml +13 -0
  157. package/src/force-app/main/default/objects/Property_Management_Company__c/fields/Email__c.field-meta.xml +10 -0
  158. package/src/force-app/main/default/objects/Property_Management_Company__c/fields/Phone__c.field-meta.xml +10 -0
  159. package/src/force-app/main/default/objects/Property_Management_Company__c/fields/Primary_Contact__c.field-meta.xml +14 -0
  160. package/src/force-app/main/default/objects/Property_Owner__c/Property_Owner__c.object-meta.xml +65 -0
  161. package/src/force-app/main/default/objects/Property_Owner__c/fields/Address__c.field-meta.xml +10 -0
  162. package/src/force-app/main/default/objects/Property_Owner__c/fields/Email__c.field-meta.xml +11 -0
  163. package/src/force-app/main/default/objects/Property_Owner__c/fields/Phone__c.field-meta.xml +10 -0
  164. package/src/force-app/main/default/objects/Property_Sale__c/Property_Sale__c.object-meta.xml +67 -0
  165. package/src/force-app/main/default/objects/Property_Sale__c/fields/Buyer_Tenant__c.field-meta.xml +13 -0
  166. package/src/force-app/main/default/objects/Property_Sale__c/fields/Payment_Method__c.field-meta.xml +41 -0
  167. package/src/force-app/main/default/objects/Property_Sale__c/fields/Property__c.field-meta.xml +15 -0
  168. package/src/force-app/main/default/objects/Property_Sale__c/fields/Reference_Number__c.field-meta.xml +12 -0
  169. package/src/force-app/main/default/objects/Property_Sale__c/fields/Sale_Amount__c.field-meta.xml +12 -0
  170. package/src/force-app/main/default/objects/Property_Sale__c/fields/Sale_Date__c.field-meta.xml +10 -0
  171. package/src/force-app/main/default/objects/Property_Sale__c/fields/Sale_Status__c.field-meta.xml +36 -0
  172. package/src/force-app/main/default/objects/Property_Sale__c/fields/Sale_Type__c.field-meta.xml +51 -0
  173. package/src/force-app/main/default/objects/Property__c/Property__c.object-meta.xml +71 -0
  174. package/src/force-app/main/default/objects/Property__c/fields/Address__c.field-meta.xml +13 -0
  175. package/src/force-app/main/default/objects/Property__c/fields/Agent__c.field-meta.xml +15 -0
  176. package/src/force-app/main/default/objects/Property__c/fields/Available_Date__c.field-meta.xml +11 -0
  177. package/src/force-app/main/default/objects/Property__c/fields/Bathrooms__c.field-meta.xml +14 -0
  178. package/src/force-app/main/default/objects/Property__c/fields/Bedrooms__c.field-meta.xml +14 -0
  179. package/src/force-app/main/default/objects/Property__c/fields/Coordinates__c.field-meta.xml +12 -0
  180. package/src/force-app/main/default/objects/Property__c/fields/Deposit__c.field-meta.xml +13 -0
  181. package/src/force-app/main/default/objects/Property__c/fields/Description__c.field-meta.xml +12 -0
  182. package/src/force-app/main/default/objects/Property__c/fields/Features__c.field-meta.xml +38 -0
  183. package/src/force-app/main/default/objects/Property__c/fields/Hero_Image__c.field-meta.xml +11 -0
  184. package/src/force-app/main/default/objects/Property__c/fields/Lease_Term__c.field-meta.xml +14 -0
  185. package/src/force-app/main/default/objects/Property__c/fields/Monthly_Rent__c.field-meta.xml +13 -0
  186. package/src/force-app/main/default/objects/Property__c/fields/Parking__c.field-meta.xml +14 -0
  187. package/src/force-app/main/default/objects/Property__c/fields/Pet_Friendly__c.field-meta.xml +11 -0
  188. package/src/force-app/main/default/objects/Property__c/fields/Sq_Ft__c.field-meta.xml +14 -0
  189. package/src/force-app/main/default/objects/Property__c/fields/Status__c.field-meta.xml +37 -0
  190. package/src/force-app/main/default/objects/Property__c/fields/Tour_URL__c.field-meta.xml +11 -0
  191. package/src/force-app/main/default/objects/Property__c/fields/Type__c.field-meta.xml +37 -0
  192. package/src/force-app/main/default/objects/Property__c/fields/Utilities__c.field-meta.xml +38 -0
  193. package/src/force-app/main/default/objects/Property__c/fields/Year_Built__c.field-meta.xml +14 -0
  194. package/src/force-app/main/default/objects/Tenant__c/Tenant__c.object-meta.xml +67 -0
  195. package/src/force-app/main/default/objects/Tenant__c/fields/End_Date__c.field-meta.xml +11 -0
  196. package/src/force-app/main/default/objects/Tenant__c/fields/Property__c.field-meta.xml +15 -0
  197. package/src/force-app/main/default/objects/Tenant__c/fields/Start_Date__c.field-meta.xml +11 -0
  198. package/src/force-app/main/default/objects/Tenant__c/fields/Status__c.field-meta.xml +37 -0
  199. package/src/force-app/main/default/objects/Tenant__c/fields/User_Status__c.field-meta.xml +42 -0
  200. package/src/force-app/main/default/objects/Tenant__c/fields/User__c.field-meta.xml +15 -0
  201. package/src/force-app/main/default/permissionsets/Property_Management_Access.permissionset-meta.xml +633 -0
  202. package/src/force-app/main/default/permissionsets/Tenant_Maintenance_Access.permissionset-meta.xml +137 -0
  203. package/src/force-app/main/default/triggers/MaintenanceRequestTrigger.trigger +5 -0
  204. package/src/force-app/main/default/triggers/MaintenanceRequestTrigger.trigger-meta.xml +5 -0
  205. package/src/force-app/main/default/triggers/TenantTrigger.trigger +8 -0
  206. package/src/force-app/main/default/triggers/TenantTrigger.trigger-meta.xml +5 -0
@@ -0,0 +1,184 @@
1
+ {
2
+ "records": [
3
+ {
4
+ "attributes": {
5
+ "type": "Tenant__c",
6
+ "referenceId": "TenantRef1"
7
+ },
8
+ "User__c": null,
9
+ "User_Status__c": "Tenant",
10
+ "Property__c": "@PropertyRef1",
11
+ "Start_Date__c": "2024-01-15",
12
+ "End_Date__c": "2025-01-14",
13
+ "Status__c": "Active"
14
+ },
15
+ {
16
+ "attributes": {
17
+ "type": "Tenant__c",
18
+ "referenceId": "TenantRef2"
19
+ },
20
+ "User__c": null,
21
+ "User_Status__c": "Tenant",
22
+ "Property__c": "@PropertyRef2",
23
+ "Start_Date__c": "2023-06-01",
24
+ "End_Date__c": "2025-05-31",
25
+ "Status__c": "Active"
26
+ },
27
+ {
28
+ "attributes": {
29
+ "type": "Tenant__c",
30
+ "referenceId": "TenantRef3"
31
+ },
32
+ "User__c": null,
33
+ "User_Status__c": "Tenant",
34
+ "Property__c": "@PropertyRef3",
35
+ "Start_Date__c": "2024-03-01",
36
+ "End_Date__c": "2025-02-28",
37
+ "Status__c": "Active"
38
+ },
39
+ {
40
+ "attributes": {
41
+ "type": "Tenant__c",
42
+ "referenceId": "TenantRef4"
43
+ },
44
+ "User__c": null,
45
+ "User_Status__c": "Tenant",
46
+ "Property__c": "@PropertyRef7",
47
+ "Start_Date__c": "2023-09-01",
48
+ "End_Date__c": "2024-08-31",
49
+ "Status__c": "Active"
50
+ },
51
+ {
52
+ "attributes": {
53
+ "type": "Tenant__c",
54
+ "referenceId": "TenantRef5"
55
+ },
56
+ "User__c": null,
57
+ "User_Status__c": "Tenant",
58
+ "Property__c": "@PropertyRef14",
59
+ "Start_Date__c": "2024-02-01",
60
+ "End_Date__c": "2025-01-31",
61
+ "Status__c": "Active"
62
+ },
63
+ {
64
+ "attributes": {
65
+ "type": "Tenant__c",
66
+ "referenceId": "TenantRef6"
67
+ },
68
+ "User__c": null,
69
+ "User_Status__c": "Tenant",
70
+ "Property__c": "@PropertyRef18",
71
+ "Start_Date__c": "2023-11-01",
72
+ "End_Date__c": "2024-10-31",
73
+ "Status__c": "Active"
74
+ },
75
+ {
76
+ "attributes": {
77
+ "type": "Tenant__c",
78
+ "referenceId": "TenantRef7"
79
+ },
80
+ "User__c": null,
81
+ "User_Status__c": "Tenant",
82
+ "Property__c": "@PropertyRef13",
83
+ "Start_Date__c": "2024-05-01",
84
+ "End_Date__c": "2025-04-30",
85
+ "Status__c": "Active"
86
+ },
87
+ {
88
+ "attributes": {
89
+ "type": "Tenant__c",
90
+ "referenceId": "TenantRef8"
91
+ },
92
+ "User__c": null,
93
+ "User_Status__c": "Tenant",
94
+ "Property__c": "@PropertyRef11",
95
+ "Start_Date__c": "2022-06-01",
96
+ "End_Date__c": "2025-05-31",
97
+ "Status__c": "Active"
98
+ },
99
+ {
100
+ "attributes": {
101
+ "type": "Tenant__c",
102
+ "referenceId": "TenantRef9"
103
+ },
104
+ "User__c": null,
105
+ "User_Status__c": "Tenant",
106
+ "Property__c": "@PropertyRef24",
107
+ "Start_Date__c": "2024-04-01",
108
+ "End_Date__c": "2025-03-31",
109
+ "Status__c": "Active"
110
+ },
111
+ {
112
+ "attributes": {
113
+ "type": "Tenant__c",
114
+ "referenceId": "TenantRef10"
115
+ },
116
+ "User__c": null,
117
+ "User_Status__c": "Tenant",
118
+ "Property__c": "@PropertyRef22",
119
+ "Start_Date__c": "2023-01-01",
120
+ "End_Date__c": "2026-12-31",
121
+ "Status__c": "Active"
122
+ },
123
+ {
124
+ "attributes": {
125
+ "type": "Tenant__c",
126
+ "referenceId": "TenantRef11"
127
+ },
128
+ "User__c": null,
129
+ "User_Status__c": "Tenant",
130
+ "Property__c": "@PropertyRef23",
131
+ "Start_Date__c": "2023-08-01",
132
+ "End_Date__c": "2024-07-31",
133
+ "Status__c": "Active"
134
+ },
135
+ {
136
+ "attributes": {
137
+ "type": "Tenant__c",
138
+ "referenceId": "TenantRef12"
139
+ },
140
+ "User__c": null,
141
+ "User_Status__c": "FormerTenant",
142
+ "Property__c": "@PropertyRef1",
143
+ "Start_Date__c": "2023-02-01",
144
+ "End_Date__c": "2024-01-31",
145
+ "Status__c": "Expired"
146
+ },
147
+ {
148
+ "attributes": {
149
+ "type": "Tenant__c",
150
+ "referenceId": "TenantRef13"
151
+ },
152
+ "User__c": null,
153
+ "User_Status__c": "FormerTenant",
154
+ "Property__c": "@PropertyRef2",
155
+ "Start_Date__c": "2022-06-01",
156
+ "End_Date__c": "2023-05-31",
157
+ "Status__c": "Expired"
158
+ },
159
+ {
160
+ "attributes": {
161
+ "type": "Tenant__c",
162
+ "referenceId": "TenantRef14"
163
+ },
164
+ "User__c": null,
165
+ "User_Status__c": "Tenant",
166
+ "Property__c": "@PropertyRef4",
167
+ "Start_Date__c": "2024-12-15",
168
+ "End_Date__c": "2025-12-14",
169
+ "Status__c": "Active"
170
+ },
171
+ {
172
+ "attributes": {
173
+ "type": "Tenant__c",
174
+ "referenceId": "TenantRef15"
175
+ },
176
+ "User__c": null,
177
+ "User_Status__c": "Tenant",
178
+ "Property__c": "@PropertyRef10",
179
+ "Start_Date__c": "2024-06-01",
180
+ "End_Date__c": "2026-05-31",
181
+ "Status__c": "Active"
182
+ }
183
+ ]
184
+ }
@@ -0,0 +1,110 @@
1
+ [
2
+ {
3
+ "sobject": "Contact",
4
+ "saveRefs": true,
5
+ "resolveRefs": false,
6
+ "files": ["Contact.json"]
7
+ },
8
+ {
9
+ "sobject": "Agent__c",
10
+ "saveRefs": true,
11
+ "resolveRefs": false,
12
+ "files": ["Agent__c.json"]
13
+ },
14
+ {
15
+ "sobject": "Maintenance_Worker__c",
16
+ "saveRefs": true,
17
+ "resolveRefs": false,
18
+ "files": ["Maintenance_Worker__c.json"]
19
+ },
20
+ {
21
+ "sobject": "Property__c",
22
+ "saveRefs": true,
23
+ "resolveRefs": false,
24
+ "files": ["Property__c.json"]
25
+ },
26
+ {
27
+ "sobject": "Tenant__c",
28
+ "saveRefs": true,
29
+ "resolveRefs": true,
30
+ "files": ["Tenant__c.json"]
31
+ },
32
+ {
33
+ "sobject": "Application__c",
34
+ "saveRefs": true,
35
+ "resolveRefs": true,
36
+ "files": ["Application__c.json"]
37
+ },
38
+ {
39
+ "sobject": "Maintenance_Request__c",
40
+ "saveRefs": true,
41
+ "resolveRefs": true,
42
+ "files": ["Maintenance_Request__c.json"]
43
+ },
44
+ {
45
+ "sobject": "Notification__c",
46
+ "saveRefs": true,
47
+ "resolveRefs": true,
48
+ "files": ["Notification__c.json"]
49
+ },
50
+ {
51
+ "sobject": "Property_Management_Company__c",
52
+ "saveRefs": true,
53
+ "resolveRefs": false,
54
+ "files": ["Property_Management_Company__c.json"]
55
+ },
56
+ {
57
+ "sobject": "Property_Owner__c",
58
+ "saveRefs": true,
59
+ "resolveRefs": false,
60
+ "files": ["Property_Owner__c.json"]
61
+ },
62
+ {
63
+ "sobject": "Lease__c",
64
+ "saveRefs": true,
65
+ "resolveRefs": true,
66
+ "files": ["Lease__c.json"]
67
+ },
68
+ {
69
+ "sobject": "Property_Sale__c",
70
+ "saveRefs": false,
71
+ "resolveRefs": true,
72
+ "files": ["Property_Sale__c.json"]
73
+ },
74
+ {
75
+ "sobject": "Property_Cost__c",
76
+ "saveRefs": false,
77
+ "resolveRefs": true,
78
+ "files": ["Property_Cost__c.json"]
79
+ },
80
+ {
81
+ "sobject": "Payment__c",
82
+ "saveRefs": false,
83
+ "resolveRefs": true,
84
+ "files": ["Payment__c.json"]
85
+ },
86
+ {
87
+ "sobject": "KPI_Snapshot__c",
88
+ "saveRefs": false,
89
+ "resolveRefs": false,
90
+ "files": ["KPI_Snapshot__c.json"]
91
+ },
92
+ {
93
+ "sobject": "Property_Listing__c",
94
+ "saveRefs": true,
95
+ "resolveRefs": true,
96
+ "files": ["Property_Listing__c.json"]
97
+ },
98
+ {
99
+ "sobject": "Property_Image__c",
100
+ "saveRefs": false,
101
+ "resolveRefs": true,
102
+ "files": ["Property_Image__c.json"]
103
+ },
104
+ {
105
+ "sobject": "Property_Feature__c",
106
+ "saveRefs": false,
107
+ "resolveRefs": true,
108
+ "files": ["Property_Feature__c.json"]
109
+ }
110
+ ]
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Updates unique fields in data JSON files so "sf data import tree" can be run
4
+ * repeatedly (e.g. after org already has data). Run before: node prepare-import-unique-fields.js
5
+ */
6
+ const fs = require("fs");
7
+ const path = require("path");
8
+ const dataDir = __dirname;
9
+ const runId = Date.now();
10
+ const runSuffix2 = String(runId % 100).padStart(2, "0"); // 00-99 for Company_Code__c (10-char limit)
11
+
12
+ // Contact: Email + LastName — unique so re-runs don't hit DUPLICATES_DETECTED (matching may use name)
13
+ const contactPath = path.join(dataDir, "Contact.json");
14
+ let contact = JSON.parse(fs.readFileSync(contactPath, "utf8"));
15
+ contact.records.forEach((r, i) => {
16
+ if (r.Email && r.Email.includes("@"))
17
+ r.Email = r.Email.replace(/\+[0-9]+@/, "@").replace("@", "+" + runId + "@");
18
+ if (r.LastName)
19
+ r.LastName = r.LastName.replace(/\s*\[[0-9-]+\]$/, "") + " [" + runId + "-" + i + "]";
20
+ });
21
+ fs.writeFileSync(contactPath, JSON.stringify(contact, null, 2));
22
+
23
+ // Agent__c: License_Number__c — strip any existing suffix and add run id + index (each record must be unique)
24
+ const agentPath = path.join(dataDir, "Agent__c.json");
25
+ let agent = JSON.parse(fs.readFileSync(agentPath, "utf8"));
26
+ agent.records.forEach((r, i) => {
27
+ if (r.License_Number__c)
28
+ r.License_Number__c =
29
+ r.License_Number__c.replace(/-[0-9]+(-[0-9]+)?$/, "") + "-" + runId + "-" + i;
30
+ });
31
+ fs.writeFileSync(agentPath, JSON.stringify(agent, null, 2));
32
+
33
+ // Property_Management_Company__c: Company_Code__c — max 10 chars, use 8-char base + 2-digit suffix
34
+ const companyPath = path.join(dataDir, "Property_Management_Company__c.json");
35
+ let company = JSON.parse(fs.readFileSync(companyPath, "utf8"));
36
+ company.records.forEach((r) => {
37
+ if (r.Company_Code__c) r.Company_Code__c = r.Company_Code__c.slice(0, 8) + runSuffix2; // 8-char base + 2-digit = 10 chars max
38
+ });
39
+ fs.writeFileSync(companyPath, JSON.stringify(company, null, 2));
40
+
41
+ // Property_Owner__c: Email__c — add +runId before @
42
+ const ownerPath = path.join(dataDir, "Property_Owner__c.json");
43
+ let owner = JSON.parse(fs.readFileSync(ownerPath, "utf8"));
44
+ owner.records.forEach((r) => {
45
+ if (r.Email__c && r.Email__c.includes("@"))
46
+ r.Email__c = r.Email__c.replace(/\+[0-9]+@/, "@").replace("@", "+" + runId + "@");
47
+ });
48
+ fs.writeFileSync(ownerPath, JSON.stringify(owner, null, 2));
49
+
50
+ // Remap @TenantRefN in dependent files to only use refs that exist in Tenant__c.json (fix UnresolvableRefsError)
51
+ const tenantPath = path.join(dataDir, "Tenant__c.json");
52
+ const tenantData = JSON.parse(fs.readFileSync(tenantPath, "utf8"));
53
+ const validTenantRefs = tenantData.records.map((r) => r.attributes?.referenceId).filter(Boolean);
54
+ if (validTenantRefs.length === 0) throw new Error("Tenant__c.json has no referenceIds");
55
+
56
+ function remapTenantRef(refValue) {
57
+ if (typeof refValue !== "string" || !refValue.startsWith("@TenantRef")) return refValue;
58
+ const match = refValue.match(/^@(TenantRef)(\d+)$/);
59
+ if (!match) return refValue;
60
+ const n = parseInt(match[2], 10);
61
+ const idx = (n - 1) % validTenantRefs.length;
62
+ return "@" + validTenantRefs[idx];
63
+ }
64
+
65
+ const leasePath = path.join(dataDir, "Lease__c.json");
66
+ let lease = JSON.parse(fs.readFileSync(leasePath, "utf8"));
67
+ lease.records.forEach((r) => {
68
+ if (r.Tenant__c) r.Tenant__c = remapTenantRef(r.Tenant__c);
69
+ });
70
+ fs.writeFileSync(leasePath, JSON.stringify(lease, null, 2));
71
+
72
+ const maintPath = path.join(dataDir, "Maintenance_Request__c.json");
73
+ let maint = JSON.parse(fs.readFileSync(maintPath, "utf8"));
74
+ maint.records.forEach((r) => {
75
+ if (r.User__c && String(r.User__c).startsWith("@TenantRef"))
76
+ r.User__c = remapTenantRef(r.User__c);
77
+ });
78
+ fs.writeFileSync(maintPath, JSON.stringify(maint, null, 2));
79
+
80
+ console.log(
81
+ "Unique fields updated: runId=%s companySuffix=%s validTenants=%s",
82
+ runId,
83
+ runSuffix2,
84
+ validTenantRefs.length,
85
+ );
@@ -0,0 +1,58 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <Layout xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <layoutSections>
4
+ <customLabel>false</customLabel>
5
+ <detailHeading>false</detailHeading>
6
+ <editHeading>true</editHeading>
7
+ <label>Information</label>
8
+ <layoutColumns>
9
+ <layoutItems>
10
+ <behavior>Readonly</behavior>
11
+ <field>Name</field>
12
+ </layoutItems>
13
+ <layoutItems>
14
+ <behavior>Edit</behavior>
15
+ <field>Property__c</field>
16
+ </layoutItems>
17
+ <layoutItems>
18
+ <behavior>Edit</behavior>
19
+ <field>User__c</field>
20
+ </layoutItems>
21
+ <layoutItems>
22
+ <behavior>Edit</behavior>
23
+ <field>Status__c</field>
24
+ </layoutItems>
25
+ <layoutItems>
26
+ <behavior>Edit</behavior>
27
+ <field>Start_Date__c</field>
28
+ </layoutItems>
29
+ <layoutItems>
30
+ <behavior>Edit</behavior>
31
+ <field>Employment__c</field>
32
+ </layoutItems>
33
+ <layoutItems>
34
+ <behavior>Edit</behavior>
35
+ <field>References__c</field>
36
+ </layoutItems>
37
+ </layoutColumns>
38
+ <style>OneColumn</style>
39
+ </layoutSections>
40
+ <platformActionList>
41
+ <actionListContext>Record</actionListContext>
42
+ <platformActionListItems>
43
+ <actionName>Edit</actionName>
44
+ <actionType>StandardButton</actionType>
45
+ <sortOrder>0</sortOrder>
46
+ </platformActionListItems>
47
+ <platformActionListItems>
48
+ <actionName>Delete</actionName>
49
+ <actionType>StandardButton</actionType>
50
+ <sortOrder>1</sortOrder>
51
+ </platformActionListItems>
52
+ </platformActionList>
53
+ <showEmailCheckbox>false</showEmailCheckbox>
54
+ <showHighlightsPanel>false</showHighlightsPanel>
55
+ <showInteractionLogPanel>false</showInteractionLogPanel>
56
+ <showRunAssignmentRulesCheckbox>false</showRunAssignmentRulesCheckbox>
57
+ <showSubmitAndAttachButton>false</showSubmitAndAttachButton>
58
+ </Layout>
@@ -0,0 +1,87 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <Layout xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <layoutSections>
4
+ <customLabel>false</customLabel>
5
+ <detailHeading>false</detailHeading>
6
+ <editHeading>true</editHeading>
7
+ <label>Information</label>
8
+ <layoutColumns>
9
+ <layoutItems>
10
+ <behavior>Required</behavior>
11
+ <field>Name</field>
12
+ </layoutItems>
13
+ <layoutItems>
14
+ <behavior>Edit</behavior>
15
+ <field>Snapshot_Date__c</field>
16
+ </layoutItems>
17
+ <layoutItems>
18
+ <behavior>Edit</behavior>
19
+ <field>Total_Properties__c</field>
20
+ </layoutItems>
21
+ <layoutItems>
22
+ <behavior>Edit</behavior>
23
+ <field>Units_Available__c</field>
24
+ </layoutItems>
25
+ <layoutItems>
26
+ <behavior>Edit</behavior>
27
+ <field>Units_Occupied__c</field>
28
+ </layoutItems>
29
+ </layoutColumns>
30
+ <layoutColumns>
31
+ <layoutItems>
32
+ <behavior>Edit</behavior>
33
+ <field>Total_Sales_Count__c</field>
34
+ </layoutItems>
35
+ <layoutItems>
36
+ <behavior>Edit</behavior>
37
+ <field>Total_Sales_Amount__c</field>
38
+ </layoutItems>
39
+ <layoutItems>
40
+ <behavior>Edit</behavior>
41
+ <field>Previous_Month_Sales__c</field>
42
+ </layoutItems>
43
+ <layoutItems>
44
+ <behavior>Readonly</behavior>
45
+ <field>Sales_MoM_Change__c</field>
46
+ </layoutItems>
47
+ </layoutColumns>
48
+ <style>TwoColumnsTopToBottom</style>
49
+ </layoutSections>
50
+ <layoutSections>
51
+ <customLabel>false</customLabel>
52
+ <detailHeading>false</detailHeading>
53
+ <editHeading>true</editHeading>
54
+ <label>System Information</label>
55
+ <layoutColumns>
56
+ <layoutItems>
57
+ <behavior>Readonly</behavior>
58
+ <field>CreatedById</field>
59
+ </layoutItems>
60
+ </layoutColumns>
61
+ <layoutColumns>
62
+ <layoutItems>
63
+ <behavior>Readonly</behavior>
64
+ <field>LastModifiedById</field>
65
+ </layoutItems>
66
+ </layoutColumns>
67
+ <style>TwoColumnsTopToBottom</style>
68
+ </layoutSections>
69
+ <platformActionList>
70
+ <actionListContext>Record</actionListContext>
71
+ <platformActionListItems>
72
+ <actionName>Edit</actionName>
73
+ <actionType>StandardButton</actionType>
74
+ <sortOrder>0</sortOrder>
75
+ </platformActionListItems>
76
+ <platformActionListItems>
77
+ <actionName>Delete</actionName>
78
+ <actionType>StandardButton</actionType>
79
+ <sortOrder>1</sortOrder>
80
+ </platformActionListItems>
81
+ </platformActionList>
82
+ <showEmailCheckbox>false</showEmailCheckbox>
83
+ <showHighlightsPanel>false</showHighlightsPanel>
84
+ <showInteractionLogPanel>false</showInteractionLogPanel>
85
+ <showRunAssignmentRulesCheckbox>false</showRunAssignmentRulesCheckbox>
86
+ <showSubmitAndAttachButton>false</showSubmitAndAttachButton>
87
+ </Layout>
@@ -0,0 +1,83 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <Layout xmlns="http://soap.sforce.com/2006/04/metadata">
3
+ <layoutSections>
4
+ <customLabel>false</customLabel>
5
+ <detailHeading>false</detailHeading>
6
+ <editHeading>true</editHeading>
7
+ <label>Information</label>
8
+ <layoutColumns>
9
+ <layoutItems>
10
+ <behavior>Readonly</behavior>
11
+ <field>Name</field>
12
+ </layoutItems>
13
+ <layoutItems>
14
+ <behavior>Edit</behavior>
15
+ <field>Property__c</field>
16
+ </layoutItems>
17
+ <layoutItems>
18
+ <behavior>Edit</behavior>
19
+ <field>Tenant__c</field>
20
+ </layoutItems>
21
+ <layoutItems>
22
+ <behavior>Edit</behavior>
23
+ <field>Lease_Status__c</field>
24
+ </layoutItems>
25
+ </layoutColumns>
26
+ <layoutColumns>
27
+ <layoutItems>
28
+ <behavior>Edit</behavior>
29
+ <field>Start_Date__c</field>
30
+ </layoutItems>
31
+ <layoutItems>
32
+ <behavior>Edit</behavior>
33
+ <field>End_Date__c</field>
34
+ </layoutItems>
35
+ <layoutItems>
36
+ <behavior>Edit</behavior>
37
+ <field>Monthly_Rent__c</field>
38
+ </layoutItems>
39
+ <layoutItems>
40
+ <behavior>Edit</behavior>
41
+ <field>Security_Deposit__c</field>
42
+ </layoutItems>
43
+ </layoutColumns>
44
+ <style>TwoColumnsTopToBottom</style>
45
+ </layoutSections>
46
+ <layoutSections>
47
+ <customLabel>false</customLabel>
48
+ <detailHeading>false</detailHeading>
49
+ <editHeading>true</editHeading>
50
+ <label>System Information</label>
51
+ <layoutColumns>
52
+ <layoutItems>
53
+ <behavior>Readonly</behavior>
54
+ <field>CreatedById</field>
55
+ </layoutItems>
56
+ </layoutColumns>
57
+ <layoutColumns>
58
+ <layoutItems>
59
+ <behavior>Readonly</behavior>
60
+ <field>LastModifiedById</field>
61
+ </layoutItems>
62
+ </layoutColumns>
63
+ <style>TwoColumnsTopToBottom</style>
64
+ </layoutSections>
65
+ <platformActionList>
66
+ <actionListContext>Record</actionListContext>
67
+ <platformActionListItems>
68
+ <actionName>Edit</actionName>
69
+ <actionType>StandardButton</actionType>
70
+ <sortOrder>0</sortOrder>
71
+ </platformActionListItems>
72
+ <platformActionListItems>
73
+ <actionName>Delete</actionName>
74
+ <actionType>StandardButton</actionType>
75
+ <sortOrder>1</sortOrder>
76
+ </platformActionListItems>
77
+ </platformActionList>
78
+ <showEmailCheckbox>false</showEmailCheckbox>
79
+ <showHighlightsPanel>false</showHighlightsPanel>
80
+ <showInteractionLogPanel>false</showInteractionLogPanel>
81
+ <showRunAssignmentRulesCheckbox>false</showRunAssignmentRulesCheckbox>
82
+ <showSubmitAndAttachButton>false</showSubmitAndAttachButton>
83
+ </Layout>