@open-mercato/core 0.5.1-develop.2663.2c29774b5b → 0.5.1-develop.2681.c559bb2bc3

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 (687) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/generated/entities/action_log/index.js +8 -0
  3. package/dist/generated/entities/action_log/index.js.map +2 -2
  4. package/dist/generated/entities/customer_company_billing/index.js +23 -0
  5. package/dist/generated/entities/customer_company_billing/index.js.map +7 -0
  6. package/dist/generated/entities/customer_deal/index.js +8 -0
  7. package/dist/generated/entities/customer_deal/index.js.map +2 -2
  8. package/dist/generated/entities/customer_deal_stage_transition/index.js +31 -0
  9. package/dist/generated/entities/customer_deal_stage_transition/index.js.map +7 -0
  10. package/dist/generated/entities/customer_dictionary_kind_setting/index.js +21 -0
  11. package/dist/generated/entities/customer_dictionary_kind_setting/index.js.map +7 -0
  12. package/dist/generated/entities/customer_entity/index.js +8 -0
  13. package/dist/generated/entities/customer_entity/index.js.map +2 -2
  14. package/dist/generated/entities/customer_entity_role/index.js +23 -0
  15. package/dist/generated/entities/customer_entity_role/index.js.map +7 -0
  16. package/dist/generated/entities/customer_interaction/index.js +23 -1
  17. package/dist/generated/entities/customer_interaction/index.js.map +2 -2
  18. package/dist/generated/entities/customer_label/index.js +19 -0
  19. package/dist/generated/entities/customer_label/index.js.map +7 -0
  20. package/dist/generated/entities/customer_label_assignment/index.js +17 -0
  21. package/dist/generated/entities/customer_label_assignment/index.js.map +7 -0
  22. package/dist/generated/entities/customer_person_company_link/index.js +21 -0
  23. package/dist/generated/entities/customer_person_company_link/index.js.map +7 -0
  24. package/dist/generated/entities/customer_person_company_role/index.js +17 -0
  25. package/dist/generated/entities/customer_person_company_role/index.js.map +7 -0
  26. package/dist/generated/entities/dictionary_entry/index.js +4 -0
  27. package/dist/generated/entities/dictionary_entry/index.js.map +2 -2
  28. package/dist/generated/entities.ids.generated.js +9 -1
  29. package/dist/generated/entities.ids.generated.js.map +2 -2
  30. package/dist/generated/entity-fields-registry.js +116 -1
  31. package/dist/generated/entity-fields-registry.js.map +2 -2
  32. package/dist/modules/attachments/api/route.js +46 -8
  33. package/dist/modules/attachments/api/route.js.map +2 -2
  34. package/dist/modules/audit_logs/api/audit-logs/actions/export/route.js +208 -0
  35. package/dist/modules/audit_logs/api/audit-logs/actions/export/route.js.map +7 -0
  36. package/dist/modules/audit_logs/api/audit-logs/actions/route.js +52 -6
  37. package/dist/modules/audit_logs/api/audit-logs/actions/route.js.map +2 -2
  38. package/dist/modules/audit_logs/cli.js +62 -0
  39. package/dist/modules/audit_logs/cli.js.map +7 -0
  40. package/dist/modules/audit_logs/data/entities.js +21 -1
  41. package/dist/modules/audit_logs/data/entities.js.map +2 -2
  42. package/dist/modules/audit_logs/data/validators.js +9 -1
  43. package/dist/modules/audit_logs/data/validators.js.map +2 -2
  44. package/dist/modules/audit_logs/lib/changeRows.js +34 -0
  45. package/dist/modules/audit_logs/lib/changeRows.js.map +7 -0
  46. package/dist/modules/audit_logs/lib/display-helpers.js +2 -20
  47. package/dist/modules/audit_logs/lib/display-helpers.js.map +3 -3
  48. package/dist/modules/audit_logs/lib/projections.js +58 -0
  49. package/dist/modules/audit_logs/lib/projections.js.map +7 -0
  50. package/dist/modules/audit_logs/migrations/Migration20260412160533.js +21 -0
  51. package/dist/modules/audit_logs/migrations/Migration20260412160533.js.map +7 -0
  52. package/dist/modules/audit_logs/services/actionLogService.js +313 -79
  53. package/dist/modules/audit_logs/services/actionLogService.js.map +2 -2
  54. package/dist/modules/customers/acl.js +3 -1
  55. package/dist/modules/customers/acl.js.map +2 -2
  56. package/dist/modules/customers/api/activities/route.js +4 -0
  57. package/dist/modules/customers/api/activities/route.js.map +2 -2
  58. package/dist/modules/customers/api/assignable-staff/route.js +208 -0
  59. package/dist/modules/customers/api/assignable-staff/route.js.map +7 -0
  60. package/dist/modules/customers/api/companies/[id]/people/route.js +205 -0
  61. package/dist/modules/customers/api/companies/[id]/people/route.js.map +7 -0
  62. package/dist/modules/customers/api/companies/[id]/roles/route.js +22 -0
  63. package/dist/modules/customers/api/companies/[id]/roles/route.js.map +7 -0
  64. package/dist/modules/customers/api/companies/[id]/route.js +374 -32
  65. package/dist/modules/customers/api/companies/[id]/route.js.map +2 -2
  66. package/dist/modules/customers/api/companies/route.js +82 -7
  67. package/dist/modules/customers/api/companies/route.js.map +2 -2
  68. package/dist/modules/customers/api/deals/[id]/companies/route.js +172 -0
  69. package/dist/modules/customers/api/deals/[id]/companies/route.js.map +7 -0
  70. package/dist/modules/customers/api/deals/[id]/people/route.js +156 -0
  71. package/dist/modules/customers/api/deals/[id]/people/route.js.map +7 -0
  72. package/dist/modules/customers/api/deals/[id]/route.js +459 -53
  73. package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
  74. package/dist/modules/customers/api/deals/[id]/stats/route.js +195 -0
  75. package/dist/modules/customers/api/deals/[id]/stats/route.js.map +7 -0
  76. package/dist/modules/customers/api/deals/route.js +20 -10
  77. package/dist/modules/customers/api/deals/route.js.map +3 -3
  78. package/dist/modules/customers/api/dictionaries/[kind]/[id]/route.js +105 -4
  79. package/dist/modules/customers/api/dictionaries/[kind]/[id]/route.js.map +2 -2
  80. package/dist/modules/customers/api/dictionaries/[kind]/route.js +118 -42
  81. package/dist/modules/customers/api/dictionaries/[kind]/route.js.map +2 -2
  82. package/dist/modules/customers/api/dictionaries/context.js +30 -6
  83. package/dist/modules/customers/api/dictionaries/context.js.map +2 -2
  84. package/dist/modules/customers/api/dictionaries/kind-settings/route.js +207 -0
  85. package/dist/modules/customers/api/dictionaries/kind-settings/route.js.map +7 -0
  86. package/dist/modules/customers/api/entity-roles-factory.js +471 -0
  87. package/dist/modules/customers/api/entity-roles-factory.js.map +7 -0
  88. package/dist/modules/customers/api/interactions/conflicts/route.js +158 -0
  89. package/dist/modules/customers/api/interactions/conflicts/route.js.map +7 -0
  90. package/dist/modules/customers/api/interactions/counts/route.js +92 -0
  91. package/dist/modules/customers/api/interactions/counts/route.js.map +7 -0
  92. package/dist/modules/customers/api/interactions/route.js +83 -4
  93. package/dist/modules/customers/api/interactions/route.js.map +2 -2
  94. package/dist/modules/customers/api/labels/assign/route.js +189 -0
  95. package/dist/modules/customers/api/labels/assign/route.js.map +7 -0
  96. package/dist/modules/customers/api/labels/auth.js +17 -0
  97. package/dist/modules/customers/api/labels/auth.js.map +7 -0
  98. package/dist/modules/customers/api/labels/route.js +281 -0
  99. package/dist/modules/customers/api/labels/route.js.map +7 -0
  100. package/dist/modules/customers/api/labels/table-errors.js +38 -0
  101. package/dist/modules/customers/api/labels/table-errors.js.map +7 -0
  102. package/dist/modules/customers/api/labels/unassign/route.js +184 -0
  103. package/dist/modules/customers/api/labels/unassign/route.js.map +7 -0
  104. package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js +292 -0
  105. package/dist/modules/customers/api/people/[id]/companies/[linkId]/route.js.map +7 -0
  106. package/dist/modules/customers/api/people/[id]/companies/context.js +66 -0
  107. package/dist/modules/customers/api/people/[id]/companies/context.js.map +7 -0
  108. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js +334 -0
  109. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js.map +7 -0
  110. package/dist/modules/customers/api/people/[id]/companies/route.js +205 -0
  111. package/dist/modules/customers/api/people/[id]/companies/route.js.map +7 -0
  112. package/dist/modules/customers/api/people/[id]/roles/route.js +22 -0
  113. package/dist/modules/customers/api/people/[id]/roles/route.js.map +7 -0
  114. package/dist/modules/customers/api/people/[id]/route.js +134 -21
  115. package/dist/modules/customers/api/people/[id]/route.js.map +2 -2
  116. package/dist/modules/customers/api/people/route.js +122 -23
  117. package/dist/modules/customers/api/people/route.js.map +2 -2
  118. package/dist/modules/customers/api/todos/route.js +4 -0
  119. package/dist/modules/customers/api/todos/route.js.map +2 -2
  120. package/dist/modules/customers/api/utils.js +22 -0
  121. package/dist/modules/customers/api/utils.js.map +2 -2
  122. package/dist/modules/customers/backend/config/customers/page.js +2 -6
  123. package/dist/modules/customers/backend/config/customers/page.js.map +2 -2
  124. package/dist/modules/customers/backend/customers/companies/page.js +37 -26
  125. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  126. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js +265 -262
  127. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js.map +3 -3
  128. package/dist/modules/customers/backend/customers/deals/[id]/hooks/formatters.js +23 -0
  129. package/dist/modules/customers/backend/customers/deals/[id]/hooks/formatters.js.map +7 -0
  130. package/dist/modules/customers/backend/customers/deals/[id]/hooks/types.js +1 -0
  131. package/dist/modules/customers/backend/customers/deals/[id]/hooks/types.js.map +7 -0
  132. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealActivities.js +43 -0
  133. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealActivities.js.map +7 -0
  134. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealAssociations.js +264 -0
  135. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealAssociations.js.map +7 -0
  136. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealClosure.js +88 -0
  137. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealClosure.js.map +7 -0
  138. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealData.js +41 -0
  139. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealData.js.map +7 -0
  140. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealFormHandlers.js +66 -0
  141. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealFormHandlers.js.map +7 -0
  142. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealInjectedTabs.js +39 -0
  143. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealInjectedTabs.js.map +7 -0
  144. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealMutationContext.js +49 -0
  145. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealMutationContext.js.map +7 -0
  146. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealPipeline.js +43 -0
  147. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useDealPipeline.js.map +7 -0
  148. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useScheduleDialog.js +28 -0
  149. package/dist/modules/customers/backend/customers/deals/[id]/hooks/useScheduleDialog.js.map +7 -0
  150. package/dist/modules/customers/backend/customers/deals/[id]/page.js +556 -503
  151. package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +3 -3
  152. package/dist/modules/customers/backend/customers/deals/page.js +66 -21
  153. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  154. package/dist/modules/customers/backend/customers/people/page.js +36 -28
  155. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  156. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js +318 -203
  157. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js.map +3 -3
  158. package/dist/modules/customers/cli.js +105 -13
  159. package/dist/modules/customers/cli.js.map +2 -2
  160. package/dist/modules/customers/commands/activities.js +6 -0
  161. package/dist/modules/customers/commands/activities.js.map +2 -2
  162. package/dist/modules/customers/commands/deals.js +315 -107
  163. package/dist/modules/customers/commands/deals.js.map +2 -2
  164. package/dist/modules/customers/commands/dictionaries.js +166 -32
  165. package/dist/modules/customers/commands/dictionaries.js.map +2 -2
  166. package/dist/modules/customers/commands/dictionaryKindSettings.js +208 -0
  167. package/dist/modules/customers/commands/dictionaryKindSettings.js.map +7 -0
  168. package/dist/modules/customers/commands/entity-roles.js +415 -0
  169. package/dist/modules/customers/commands/entity-roles.js.map +7 -0
  170. package/dist/modules/customers/commands/index.js +4 -0
  171. package/dist/modules/customers/commands/index.js.map +2 -2
  172. package/dist/modules/customers/commands/interactions.js +108 -21
  173. package/dist/modules/customers/commands/interactions.js.map +2 -2
  174. package/dist/modules/customers/commands/labels.js +539 -0
  175. package/dist/modules/customers/commands/labels.js.map +7 -0
  176. package/dist/modules/customers/commands/people.js +560 -463
  177. package/dist/modules/customers/commands/people.js.map +3 -3
  178. package/dist/modules/customers/commands/personCompanyLinks.js +568 -0
  179. package/dist/modules/customers/commands/personCompanyLinks.js.map +7 -0
  180. package/dist/modules/customers/commands/shared.js +12 -4
  181. package/dist/modules/customers/commands/shared.js.map +2 -2
  182. package/dist/modules/customers/commands/todos.js +10 -1
  183. package/dist/modules/customers/commands/todos.js.map +2 -2
  184. package/dist/modules/customers/components/AddressEditor.js +1 -1
  185. package/dist/modules/customers/components/AddressEditor.js.map +2 -2
  186. package/dist/modules/customers/components/CustomersConfigurationSections.js +31 -0
  187. package/dist/modules/customers/components/CustomersConfigurationSections.js.map +7 -0
  188. package/dist/modules/customers/components/DictionarySettings.js +37 -2
  189. package/dist/modules/customers/components/DictionarySettings.js.map +2 -2
  190. package/dist/modules/customers/components/detail/ActiveDealCard.js +121 -0
  191. package/dist/modules/customers/components/detail/ActiveDealCard.js.map +7 -0
  192. package/dist/modules/customers/components/detail/ActivitiesSection.js +222 -331
  193. package/dist/modules/customers/components/detail/ActivitiesSection.js.map +3 -3
  194. package/dist/modules/customers/components/detail/ActivityAiActions.js +36 -0
  195. package/dist/modules/customers/components/detail/ActivityAiActions.js.map +7 -0
  196. package/dist/modules/customers/components/detail/ActivityCard.js +126 -0
  197. package/dist/modules/customers/components/detail/ActivityCard.js.map +7 -0
  198. package/dist/modules/customers/components/detail/ActivityHistorySection.js +340 -0
  199. package/dist/modules/customers/components/detail/ActivityHistorySection.js.map +7 -0
  200. package/dist/modules/customers/components/detail/ActivityLogTab.js +56 -0
  201. package/dist/modules/customers/components/detail/ActivityLogTab.js.map +7 -0
  202. package/dist/modules/customers/components/detail/ActivityTimeline.js +108 -0
  203. package/dist/modules/customers/components/detail/ActivityTimeline.js.map +7 -0
  204. package/dist/modules/customers/components/detail/ActivityTimelineFilters.js +139 -0
  205. package/dist/modules/customers/components/detail/ActivityTimelineFilters.js.map +7 -0
  206. package/dist/modules/customers/components/detail/ActivityTypeSelector.js +42 -0
  207. package/dist/modules/customers/components/detail/ActivityTypeSelector.js.map +7 -0
  208. package/dist/modules/customers/components/detail/AiActionChips.js +38 -0
  209. package/dist/modules/customers/components/detail/AiActionChips.js.map +7 -0
  210. package/dist/modules/customers/components/detail/AssignRoleDialog.js +534 -0
  211. package/dist/modules/customers/components/detail/AssignRoleDialog.js.map +7 -0
  212. package/dist/modules/customers/components/detail/ChangelogEntryRow.js +79 -0
  213. package/dist/modules/customers/components/detail/ChangelogEntryRow.js.map +7 -0
  214. package/dist/modules/customers/components/detail/ChangelogFilters.js +176 -0
  215. package/dist/modules/customers/components/detail/ChangelogFilters.js.map +7 -0
  216. package/dist/modules/customers/components/detail/ChangelogKpiCards.js +88 -0
  217. package/dist/modules/customers/components/detail/ChangelogKpiCards.js.map +7 -0
  218. package/dist/modules/customers/components/detail/ChangelogTab.js +470 -0
  219. package/dist/modules/customers/components/detail/ChangelogTab.js.map +7 -0
  220. package/dist/modules/customers/components/detail/ComingSoonPlaceholder.js +16 -0
  221. package/dist/modules/customers/components/detail/ComingSoonPlaceholder.js.map +7 -0
  222. package/dist/modules/customers/components/detail/CompanyCard.js +283 -0
  223. package/dist/modules/customers/components/detail/CompanyCard.js.map +7 -0
  224. package/dist/modules/customers/components/detail/CompanyDashboardTab.js +133 -0
  225. package/dist/modules/customers/components/detail/CompanyDashboardTab.js.map +7 -0
  226. package/dist/modules/customers/components/detail/CompanyDetailHeader.js +191 -0
  227. package/dist/modules/customers/components/detail/CompanyDetailHeader.js.map +7 -0
  228. package/dist/modules/customers/components/detail/CompanyDetailTabs.js +123 -0
  229. package/dist/modules/customers/components/detail/CompanyDetailTabs.js.map +7 -0
  230. package/dist/modules/customers/components/detail/CompanyKpiBar.js +174 -0
  231. package/dist/modules/customers/components/detail/CompanyKpiBar.js.map +7 -0
  232. package/dist/modules/customers/components/detail/CompanyPeopleSection.js +514 -230
  233. package/dist/modules/customers/components/detail/CompanyPeopleSection.js.map +2 -2
  234. package/dist/modules/customers/components/detail/CompanyTagsDialog.js +22 -0
  235. package/dist/modules/customers/components/detail/CompanyTagsDialog.js.map +7 -0
  236. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js +159 -0
  237. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js.map +7 -0
  238. package/dist/modules/customers/components/detail/CreatePersonDialog.js +135 -0
  239. package/dist/modules/customers/components/detail/CreatePersonDialog.js.map +7 -0
  240. package/dist/modules/customers/components/detail/DealClosureActionBar.js +59 -0
  241. package/dist/modules/customers/components/detail/DealClosureActionBar.js.map +7 -0
  242. package/dist/modules/customers/components/detail/DealDetailHeader.js +237 -0
  243. package/dist/modules/customers/components/detail/DealDetailHeader.js.map +7 -0
  244. package/dist/modules/customers/components/detail/DealDetailTabs.js +109 -0
  245. package/dist/modules/customers/components/detail/DealDetailTabs.js.map +7 -0
  246. package/dist/modules/customers/components/detail/DealForm.js +219 -92
  247. package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
  248. package/dist/modules/customers/components/detail/DealLinkedEntitiesTab.js +295 -0
  249. package/dist/modules/customers/components/detail/DealLinkedEntitiesTab.js.map +7 -0
  250. package/dist/modules/customers/components/detail/DealLostSummaryDialog.js +107 -0
  251. package/dist/modules/customers/components/detail/DealLostSummaryDialog.js.map +7 -0
  252. package/dist/modules/customers/components/detail/DealWonPopup.js +113 -0
  253. package/dist/modules/customers/components/detail/DealWonPopup.js.map +7 -0
  254. package/dist/modules/customers/components/detail/DealsSection.js +206 -193
  255. package/dist/modules/customers/components/detail/DealsSection.js.map +2 -2
  256. package/dist/modules/customers/components/detail/DecisionMakersFooter.js +39 -0
  257. package/dist/modules/customers/components/detail/DecisionMakersFooter.js.map +7 -0
  258. package/dist/modules/customers/components/detail/EntityTagsDialog.js +1096 -0
  259. package/dist/modules/customers/components/detail/EntityTagsDialog.js.map +7 -0
  260. package/dist/modules/customers/components/detail/InlineActivityComposer.js +197 -0
  261. package/dist/modules/customers/components/detail/InlineActivityComposer.js.map +7 -0
  262. package/dist/modules/customers/components/detail/ManageTagsDialog.js +1091 -0
  263. package/dist/modules/customers/components/detail/ManageTagsDialog.js.map +7 -0
  264. package/dist/modules/customers/components/detail/MiniWeekCalendar.js +272 -0
  265. package/dist/modules/customers/components/detail/MiniWeekCalendar.js.map +7 -0
  266. package/dist/modules/customers/components/detail/MobilePersonDetail.js +106 -0
  267. package/dist/modules/customers/components/detail/MobilePersonDetail.js.map +7 -0
  268. package/dist/modules/customers/components/detail/NextStepCard.js +72 -0
  269. package/dist/modules/customers/components/detail/NextStepCard.js.map +7 -0
  270. package/dist/modules/customers/components/detail/PersonCard.js +192 -0
  271. package/dist/modules/customers/components/detail/PersonCard.js.map +7 -0
  272. package/dist/modules/customers/components/detail/PersonCompaniesSection.js +345 -0
  273. package/dist/modules/customers/components/detail/PersonCompaniesSection.js.map +7 -0
  274. package/dist/modules/customers/components/detail/PersonDetailHeader.js +220 -0
  275. package/dist/modules/customers/components/detail/PersonDetailHeader.js.map +7 -0
  276. package/dist/modules/customers/components/detail/PersonDetailTabs.js +122 -0
  277. package/dist/modules/customers/components/detail/PersonDetailTabs.js.map +7 -0
  278. package/dist/modules/customers/components/detail/PersonTagsDialog.js +24 -0
  279. package/dist/modules/customers/components/detail/PersonTagsDialog.js.map +7 -0
  280. package/dist/modules/customers/components/detail/PipelineStepper.js +191 -0
  281. package/dist/modules/customers/components/detail/PipelineStepper.js.map +7 -0
  282. package/dist/modules/customers/components/detail/PlannedActivitiesSection.js +222 -0
  283. package/dist/modules/customers/components/detail/PlannedActivitiesSection.js.map +7 -0
  284. package/dist/modules/customers/components/detail/RelationshipHealthCard.js +49 -0
  285. package/dist/modules/customers/components/detail/RelationshipHealthCard.js.map +7 -0
  286. package/dist/modules/customers/components/detail/RoleAssignmentRow.js +189 -0
  287. package/dist/modules/customers/components/detail/RoleAssignmentRow.js.map +7 -0
  288. package/dist/modules/customers/components/detail/RolesSection.js +234 -0
  289. package/dist/modules/customers/components/detail/RolesSection.js.map +7 -0
  290. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js +410 -0
  291. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js.map +7 -0
  292. package/dist/modules/customers/components/detail/aiActionCatalog.js +41 -0
  293. package/dist/modules/customers/components/detail/aiActionCatalog.js.map +7 -0
  294. package/dist/modules/customers/components/detail/assignableStaff.js +48 -0
  295. package/dist/modules/customers/components/detail/assignableStaff.js.map +7 -0
  296. package/dist/modules/customers/components/detail/dashboard/ActiveDealWidget.js +48 -0
  297. package/dist/modules/customers/components/detail/dashboard/ActiveDealWidget.js.map +7 -0
  298. package/dist/modules/customers/components/detail/dashboard/OpenTasksWidget.js +86 -0
  299. package/dist/modules/customers/components/detail/dashboard/OpenTasksWidget.js.map +7 -0
  300. package/dist/modules/customers/components/detail/dashboard/RecentActivityWidget.js +53 -0
  301. package/dist/modules/customers/components/detail/dashboard/RecentActivityWidget.js.map +7 -0
  302. package/dist/modules/customers/components/detail/dashboard/RelationshipHealthWidget.js +30 -0
  303. package/dist/modules/customers/components/detail/dashboard/RelationshipHealthWidget.js.map +7 -0
  304. package/dist/modules/customers/components/detail/dashboard/UpcomingMeetingsWidget.js +43 -0
  305. package/dist/modules/customers/components/detail/dashboard/UpcomingMeetingsWidget.js.map +7 -0
  306. package/dist/modules/customers/components/detail/dashboard/helpers.js +71 -0
  307. package/dist/modules/customers/components/detail/dashboard/helpers.js.map +7 -0
  308. package/dist/modules/customers/components/detail/healthScoreUtils.js +69 -0
  309. package/dist/modules/customers/components/detail/healthScoreUtils.js.map +7 -0
  310. package/dist/modules/customers/components/detail/hooks/useCurrencyDictionary.js +5 -5
  311. package/dist/modules/customers/components/detail/hooks/useCurrencyDictionary.js.map +2 -2
  312. package/dist/modules/customers/components/detail/hooks/useCustomerDictionary.js +9 -8
  313. package/dist/modules/customers/components/detail/hooks/useCustomerDictionary.js.map +3 -3
  314. package/dist/modules/customers/components/detail/hooks/useInteractionMutations.js +65 -0
  315. package/dist/modules/customers/components/detail/hooks/useInteractionMutations.js.map +7 -0
  316. package/dist/modules/customers/components/detail/notesAdapter.js +70 -30
  317. package/dist/modules/customers/components/detail/notesAdapter.js.map +2 -2
  318. package/dist/modules/customers/components/detail/pipelineStageUtils.js +26 -0
  319. package/dist/modules/customers/components/detail/pipelineStageUtils.js.map +7 -0
  320. package/dist/modules/customers/components/detail/schedule/DateTimeFields.js +144 -0
  321. package/dist/modules/customers/components/detail/schedule/DateTimeFields.js.map +7 -0
  322. package/dist/modules/customers/components/detail/schedule/FooterFields.js +60 -0
  323. package/dist/modules/customers/components/detail/schedule/FooterFields.js.map +7 -0
  324. package/dist/modules/customers/components/detail/schedule/LinkedEntitiesField.js +216 -0
  325. package/dist/modules/customers/components/detail/schedule/LinkedEntitiesField.js.map +7 -0
  326. package/dist/modules/customers/components/detail/schedule/LocationField.js +34 -0
  327. package/dist/modules/customers/components/detail/schedule/LocationField.js.map +7 -0
  328. package/dist/modules/customers/components/detail/schedule/ParticipantsField.js +226 -0
  329. package/dist/modules/customers/components/detail/schedule/ParticipantsField.js.map +7 -0
  330. package/dist/modules/customers/components/detail/schedule/fieldConfig.js +69 -0
  331. package/dist/modules/customers/components/detail/schedule/fieldConfig.js.map +7 -0
  332. package/dist/modules/customers/components/detail/schedule/index.js +21 -0
  333. package/dist/modules/customers/components/detail/schedule/index.js.map +7 -0
  334. package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js +172 -0
  335. package/dist/modules/customers/components/detail/schedule/useScheduleFormState.js.map +7 -0
  336. package/dist/modules/customers/components/detail/utils.js +23 -0
  337. package/dist/modules/customers/components/detail/utils.js.map +2 -2
  338. package/dist/modules/customers/components/formConfig.js +144 -22
  339. package/dist/modules/customers/components/formConfig.js.map +2 -2
  340. package/dist/modules/customers/components/linking/LinkEntityDialog.js +661 -0
  341. package/dist/modules/customers/components/linking/LinkEntityDialog.js.map +7 -0
  342. package/dist/modules/customers/components/linking/adapters/companyAdapter.js +252 -0
  343. package/dist/modules/customers/components/linking/adapters/companyAdapter.js.map +7 -0
  344. package/dist/modules/customers/components/linking/adapters/dealAdapter.js +384 -0
  345. package/dist/modules/customers/components/linking/adapters/dealAdapter.js.map +7 -0
  346. package/dist/modules/customers/components/linking/adapters/personAdapter.js +324 -0
  347. package/dist/modules/customers/components/linking/adapters/personAdapter.js.map +7 -0
  348. package/dist/modules/customers/components/list/CollectionPreviewCell.js +53 -0
  349. package/dist/modules/customers/components/list/CollectionPreviewCell.js.map +7 -0
  350. package/dist/modules/customers/data/entities.js +407 -1
  351. package/dist/modules/customers/data/entities.js.map +2 -2
  352. package/dist/modules/customers/data/validators.js +139 -21
  353. package/dist/modules/customers/data/validators.js.map +2 -2
  354. package/dist/modules/customers/events.js +19 -1
  355. package/dist/modules/customers/events.js.map +2 -2
  356. package/dist/modules/customers/lib/customerRoleTypes.js +19 -0
  357. package/dist/modules/customers/lib/customerRoleTypes.js.map +7 -0
  358. package/dist/modules/customers/lib/dealClosureNotification.js +39 -0
  359. package/dist/modules/customers/lib/dealClosureNotification.js.map +7 -0
  360. package/dist/modules/customers/lib/dealStageTransitionTable.js +29 -0
  361. package/dist/modules/customers/lib/dealStageTransitionTable.js.map +7 -0
  362. package/dist/modules/customers/lib/dictionaries.js +25 -0
  363. package/dist/modules/customers/lib/dictionaries.js.map +2 -2
  364. package/dist/modules/customers/lib/interactionReadModel.js +10 -0
  365. package/dist/modules/customers/lib/interactionReadModel.js.map +2 -2
  366. package/dist/modules/customers/lib/personCompanies.js +235 -0
  367. package/dist/modules/customers/lib/personCompanies.js.map +7 -0
  368. package/dist/modules/customers/lib/personCompanyLinkTable.js +42 -0
  369. package/dist/modules/customers/lib/personCompanyLinkTable.js.map +7 -0
  370. package/dist/modules/customers/lib/roleTypeUsage.js +104 -0
  371. package/dist/modules/customers/lib/roleTypeUsage.js.map +7 -0
  372. package/dist/modules/customers/migrations/Migration20260406214502.js +18 -0
  373. package/dist/modules/customers/migrations/Migration20260406214502.js.map +7 -0
  374. package/dist/modules/customers/migrations/Migration20260408135736.js +17 -0
  375. package/dist/modules/customers/migrations/Migration20260408135736.js.map +7 -0
  376. package/dist/modules/customers/migrations/Migration20260408225345.js +21 -0
  377. package/dist/modules/customers/migrations/Migration20260408225345.js.map +7 -0
  378. package/dist/modules/customers/migrations/Migration20260411075533.js +27 -0
  379. package/dist/modules/customers/migrations/Migration20260411075533.js.map +7 -0
  380. package/dist/modules/customers/migrations/Migration20260411103551.js +13 -0
  381. package/dist/modules/customers/migrations/Migration20260411103551.js.map +7 -0
  382. package/dist/modules/customers/migrations/Migration20260411130944.js +26 -0
  383. package/dist/modules/customers/migrations/Migration20260411130944.js.map +7 -0
  384. package/dist/modules/customers/migrations/Migration20260415095203.js +13 -0
  385. package/dist/modules/customers/migrations/Migration20260415095203.js.map +7 -0
  386. package/dist/modules/customers/migrations/Migration20260415135056.js +20 -0
  387. package/dist/modules/customers/migrations/Migration20260415135056.js.map +7 -0
  388. package/dist/modules/customers/migrations/Migration20260417140000.js +15 -0
  389. package/dist/modules/customers/migrations/Migration20260417140000.js.map +7 -0
  390. package/dist/modules/customers/migrations/Migration20260417160000.js +17 -0
  391. package/dist/modules/customers/migrations/Migration20260417160000.js.map +7 -0
  392. package/dist/modules/customers/migrations/Migration20260417235407.js +13 -0
  393. package/dist/modules/customers/migrations/Migration20260417235407.js.map +7 -0
  394. package/dist/modules/customers/setup.js +16 -1
  395. package/dist/modules/customers/setup.js.map +2 -2
  396. package/dist/modules/customers/subscribers/deal-closure-notification.js +16 -0
  397. package/dist/modules/customers/subscribers/deal-closure-notification.js.map +7 -0
  398. package/dist/modules/customers/subscribers/deal-lost-notification.js +16 -0
  399. package/dist/modules/customers/subscribers/deal-lost-notification.js.map +7 -0
  400. package/dist/modules/dictionaries/api/[dictionaryId]/entries/[entryId]/route.js +2 -0
  401. package/dist/modules/dictionaries/api/[dictionaryId]/entries/[entryId]/route.js.map +2 -2
  402. package/dist/modules/dictionaries/api/[dictionaryId]/entries/reorder/route.js +154 -0
  403. package/dist/modules/dictionaries/api/[dictionaryId]/entries/reorder/route.js.map +7 -0
  404. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js +6 -2
  405. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js.map +2 -2
  406. package/dist/modules/dictionaries/api/[dictionaryId]/entries/set-default/route.js +154 -0
  407. package/dist/modules/dictionaries/api/[dictionaryId]/entries/set-default/route.js.map +7 -0
  408. package/dist/modules/dictionaries/api/context.js +8 -1
  409. package/dist/modules/dictionaries/api/context.js.map +2 -2
  410. package/dist/modules/dictionaries/api/openapi.js +18 -1
  411. package/dist/modules/dictionaries/api/openapi.js.map +2 -2
  412. package/dist/modules/dictionaries/commands/entry-operations.js +388 -0
  413. package/dist/modules/dictionaries/commands/entry-operations.js.map +7 -0
  414. package/dist/modules/dictionaries/commands/factory.js +24 -3
  415. package/dist/modules/dictionaries/commands/factory.js.map +2 -2
  416. package/dist/modules/dictionaries/commands/index.js +1 -0
  417. package/dist/modules/dictionaries/commands/index.js.map +2 -2
  418. package/dist/modules/dictionaries/components/DictionaryTable.js +6 -3
  419. package/dist/modules/dictionaries/components/DictionaryTable.js.map +2 -2
  420. package/dist/modules/dictionaries/data/entities.js +11 -1
  421. package/dist/modules/dictionaries/data/entities.js.map +2 -2
  422. package/dist/modules/dictionaries/data/validators.js +28 -2
  423. package/dist/modules/dictionaries/data/validators.js.map +2 -2
  424. package/dist/modules/dictionaries/events.js +18 -0
  425. package/dist/modules/dictionaries/events.js.map +7 -0
  426. package/dist/modules/dictionaries/lib/clientEntries.js +43 -0
  427. package/dist/modules/dictionaries/lib/clientEntries.js.map +7 -0
  428. package/dist/modules/dictionaries/migrations/Migration20260410171544.js +45 -0
  429. package/dist/modules/dictionaries/migrations/Migration20260410171544.js.map +7 -0
  430. package/dist/modules/inbox_ops/api/proposals/[id]/route.js +4 -1
  431. package/dist/modules/inbox_ops/api/proposals/[id]/route.js.map +2 -2
  432. package/dist/modules/query_index/lib/engine.js +1 -1
  433. package/dist/modules/query_index/lib/engine.js.map +2 -2
  434. package/dist/modules/sales/components/documents/AddressesSection.js +82 -42
  435. package/dist/modules/sales/components/documents/AddressesSection.js.map +2 -2
  436. package/dist/modules/sales/lib/dictionaries.js +16 -0
  437. package/dist/modules/sales/lib/dictionaries.js.map +2 -2
  438. package/dist/modules/sales/widgets/injection-table.js +5 -1
  439. package/dist/modules/sales/widgets/injection-table.js.map +2 -2
  440. package/generated/entities/action_log/index.ts +4 -0
  441. package/generated/entities/customer_company_billing/index.ts +10 -0
  442. package/generated/entities/customer_deal/index.ts +4 -0
  443. package/generated/entities/customer_deal_stage_transition/index.ts +14 -0
  444. package/generated/entities/customer_dictionary_kind_setting/index.ts +9 -0
  445. package/generated/entities/customer_entity/index.ts +4 -0
  446. package/generated/entities/customer_entity_role/index.ts +10 -0
  447. package/generated/entities/customer_interaction/index.ts +11 -0
  448. package/generated/entities/customer_label/index.ts +8 -0
  449. package/generated/entities/customer_label_assignment/index.ts +7 -0
  450. package/generated/entities/customer_person_company_link/index.ts +9 -0
  451. package/generated/entities/customer_person_company_role/index.ts +7 -0
  452. package/generated/entities/dictionary_entry/index.ts +2 -0
  453. package/generated/entities.ids.generated.ts +9 -1
  454. package/generated/entity-fields-registry.ts +116 -1
  455. package/package.json +3 -3
  456. package/src/modules/attachments/api/route.ts +48 -6
  457. package/src/modules/attachments/i18n/de.json +4 -0
  458. package/src/modules/attachments/i18n/en.json +4 -0
  459. package/src/modules/attachments/i18n/es.json +4 -0
  460. package/src/modules/attachments/i18n/pl.json +4 -0
  461. package/src/modules/audit_logs/api/audit-logs/actions/export/route.ts +260 -0
  462. package/src/modules/audit_logs/api/audit-logs/actions/route.ts +81 -6
  463. package/src/modules/audit_logs/cli.ts +79 -0
  464. package/src/modules/audit_logs/data/entities.ts +17 -0
  465. package/src/modules/audit_logs/data/validators.ts +9 -1
  466. package/src/modules/audit_logs/lib/changeRows.ts +47 -0
  467. package/src/modules/audit_logs/lib/display-helpers.tsx +4 -30
  468. package/src/modules/audit_logs/lib/projections.ts +110 -0
  469. package/src/modules/audit_logs/migrations/.snapshot-open-mercato.json +325 -2
  470. package/src/modules/audit_logs/migrations/Migration20260412160533.ts +21 -0
  471. package/src/modules/audit_logs/services/actionLogService.ts +455 -85
  472. package/src/modules/catalog/i18n/de.json +1 -0
  473. package/src/modules/catalog/i18n/en.json +1 -0
  474. package/src/modules/catalog/i18n/es.json +1 -0
  475. package/src/modules/catalog/i18n/pl.json +1 -0
  476. package/src/modules/customer_accounts/i18n/de.json +2 -0
  477. package/src/modules/customer_accounts/i18n/en.json +2 -0
  478. package/src/modules/customer_accounts/i18n/es.json +2 -0
  479. package/src/modules/customer_accounts/i18n/pl.json +2 -0
  480. package/src/modules/customers/acl.ts +2 -0
  481. package/src/modules/customers/api/activities/route.ts +4 -0
  482. package/src/modules/customers/api/assignable-staff/route.ts +250 -0
  483. package/src/modules/customers/api/companies/[id]/people/route.ts +244 -0
  484. package/src/modules/customers/api/companies/[id]/roles/route.ts +15 -0
  485. package/src/modules/customers/api/companies/[id]/route.ts +458 -40
  486. package/src/modules/customers/api/companies/route.ts +93 -15
  487. package/src/modules/customers/api/deals/[id]/companies/route.ts +203 -0
  488. package/src/modules/customers/api/deals/[id]/people/route.ts +182 -0
  489. package/src/modules/customers/api/deals/[id]/route.ts +554 -57
  490. package/src/modules/customers/api/deals/[id]/stats/route.ts +221 -0
  491. package/src/modules/customers/api/deals/route.ts +35 -46
  492. package/src/modules/customers/api/dictionaries/[kind]/[id]/route.ts +105 -3
  493. package/src/modules/customers/api/dictionaries/[kind]/route.ts +143 -44
  494. package/src/modules/customers/api/dictionaries/context.ts +45 -16
  495. package/src/modules/customers/api/dictionaries/kind-settings/route.ts +232 -0
  496. package/src/modules/customers/api/entity-roles-factory.ts +520 -0
  497. package/src/modules/customers/api/interactions/conflicts/route.ts +196 -0
  498. package/src/modules/customers/api/interactions/counts/route.ts +112 -0
  499. package/src/modules/customers/api/interactions/route.ts +95 -2
  500. package/src/modules/customers/api/labels/assign/route.ts +202 -0
  501. package/src/modules/customers/api/labels/auth.ts +19 -0
  502. package/src/modules/customers/api/labels/route.ts +310 -0
  503. package/src/modules/customers/api/labels/table-errors.ts +36 -0
  504. package/src/modules/customers/api/labels/unassign/route.ts +197 -0
  505. package/src/modules/customers/api/people/[id]/companies/[linkId]/route.ts +331 -0
  506. package/src/modules/customers/api/people/[id]/companies/context.ts +70 -0
  507. package/src/modules/customers/api/people/[id]/companies/enriched/route.ts +384 -0
  508. package/src/modules/customers/api/people/[id]/companies/route.ts +215 -0
  509. package/src/modules/customers/api/people/[id]/roles/route.ts +15 -0
  510. package/src/modules/customers/api/people/[id]/route.ts +153 -26
  511. package/src/modules/customers/api/people/route.ts +134 -31
  512. package/src/modules/customers/api/todos/route.ts +4 -0
  513. package/src/modules/customers/api/utils.ts +36 -0
  514. package/src/modules/customers/backend/config/customers/page.tsx +2 -6
  515. package/src/modules/customers/backend/customers/companies/page.tsx +36 -26
  516. package/src/modules/customers/backend/customers/companies-v2/[id]/page.tsx +277 -262
  517. package/src/modules/customers/backend/customers/deals/[id]/hooks/formatters.ts +19 -0
  518. package/src/modules/customers/backend/customers/deals/[id]/hooks/types.ts +104 -0
  519. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealActivities.ts +60 -0
  520. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealAssociations.ts +362 -0
  521. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealClosure.ts +113 -0
  522. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealData.ts +52 -0
  523. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealFormHandlers.ts +86 -0
  524. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealInjectedTabs.tsx +60 -0
  525. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealMutationContext.ts +76 -0
  526. package/src/modules/customers/backend/customers/deals/[id]/hooks/useDealPipeline.ts +56 -0
  527. package/src/modules/customers/backend/customers/deals/[id]/hooks/useScheduleDialog.ts +38 -0
  528. package/src/modules/customers/backend/customers/deals/[id]/page.tsx +587 -624
  529. package/src/modules/customers/backend/customers/deals/page.tsx +71 -28
  530. package/src/modules/customers/backend/customers/people/page.tsx +35 -29
  531. package/src/modules/customers/backend/customers/people-v2/[id]/page.tsx +343 -209
  532. package/src/modules/customers/cli.ts +107 -12
  533. package/src/modules/customers/commands/activities.ts +13 -0
  534. package/src/modules/customers/commands/deals.ts +386 -114
  535. package/src/modules/customers/commands/dictionaries.ts +175 -32
  536. package/src/modules/customers/commands/dictionaryKindSettings.ts +268 -0
  537. package/src/modules/customers/commands/entity-roles.ts +494 -0
  538. package/src/modules/customers/commands/index.ts +4 -0
  539. package/src/modules/customers/commands/interactions.ts +125 -21
  540. package/src/modules/customers/commands/labels.ts +626 -0
  541. package/src/modules/customers/commands/people.ts +373 -259
  542. package/src/modules/customers/commands/personCompanyLinks.ts +654 -0
  543. package/src/modules/customers/commands/shared.ts +16 -15
  544. package/src/modules/customers/commands/todos.ts +17 -1
  545. package/src/modules/customers/components/AddressEditor.tsx +1 -1
  546. package/src/modules/customers/components/CustomersConfigurationSections.tsx +36 -0
  547. package/src/modules/customers/components/DictionarySettings.tsx +43 -2
  548. package/src/modules/customers/components/detail/ActiveDealCard.tsx +175 -0
  549. package/src/modules/customers/components/detail/ActivitiesSection.tsx +267 -361
  550. package/src/modules/customers/components/detail/ActivityAiActions.tsx +49 -0
  551. package/src/modules/customers/components/detail/ActivityCard.tsx +154 -0
  552. package/src/modules/customers/components/detail/ActivityHistorySection.tsx +412 -0
  553. package/src/modules/customers/components/detail/ActivityLogTab.tsx +67 -0
  554. package/src/modules/customers/components/detail/ActivityTimeline.tsx +158 -0
  555. package/src/modules/customers/components/detail/ActivityTimelineFilters.tsx +163 -0
  556. package/src/modules/customers/components/detail/ActivityTypeSelector.tsx +53 -0
  557. package/src/modules/customers/components/detail/AiActionChips.tsx +48 -0
  558. package/src/modules/customers/components/detail/AssignRoleDialog.tsx +672 -0
  559. package/src/modules/customers/components/detail/ChangelogEntryRow.tsx +132 -0
  560. package/src/modules/customers/components/detail/ChangelogFilters.tsx +193 -0
  561. package/src/modules/customers/components/detail/ChangelogKpiCards.tsx +107 -0
  562. package/src/modules/customers/components/detail/ChangelogTab.tsx +629 -0
  563. package/src/modules/customers/components/detail/ComingSoonPlaceholder.tsx +21 -0
  564. package/src/modules/customers/components/detail/CompanyCard.tsx +419 -0
  565. package/src/modules/customers/components/detail/CompanyDashboardTab.tsx +161 -0
  566. package/src/modules/customers/components/detail/CompanyDetailHeader.tsx +243 -0
  567. package/src/modules/customers/components/detail/CompanyDetailTabs.tsx +172 -0
  568. package/src/modules/customers/components/detail/CompanyKpiBar.tsx +206 -0
  569. package/src/modules/customers/components/detail/CompanyPeopleSection.tsx +582 -288
  570. package/src/modules/customers/components/detail/CompanyTagsDialog.tsx +23 -0
  571. package/src/modules/customers/components/detail/ConfirmDealLostDialog.tsx +210 -0
  572. package/src/modules/customers/components/detail/CreatePersonDialog.tsx +178 -0
  573. package/src/modules/customers/components/detail/DealClosureActionBar.tsx +63 -0
  574. package/src/modules/customers/components/detail/DealDetailHeader.tsx +335 -0
  575. package/src/modules/customers/components/detail/DealDetailTabs.tsx +154 -0
  576. package/src/modules/customers/components/detail/DealForm.tsx +253 -101
  577. package/src/modules/customers/components/detail/DealLinkedEntitiesTab.tsx +349 -0
  578. package/src/modules/customers/components/detail/DealLostSummaryDialog.tsx +156 -0
  579. package/src/modules/customers/components/detail/DealWonPopup.tsx +164 -0
  580. package/src/modules/customers/components/detail/DealsSection.tsx +276 -221
  581. package/src/modules/customers/components/detail/DecisionMakersFooter.tsx +56 -0
  582. package/src/modules/customers/components/detail/EntityTagsDialog.tsx +1372 -0
  583. package/src/modules/customers/components/detail/InlineActivityComposer.tsx +239 -0
  584. package/src/modules/customers/components/detail/ManageTagsDialog.tsx +1331 -0
  585. package/src/modules/customers/components/detail/MiniWeekCalendar.tsx +338 -0
  586. package/src/modules/customers/components/detail/MobilePersonDetail.tsx +124 -0
  587. package/src/modules/customers/components/detail/NextStepCard.tsx +104 -0
  588. package/src/modules/customers/components/detail/PersonCard.tsx +238 -0
  589. package/src/modules/customers/components/detail/PersonCompaniesSection.tsx +426 -0
  590. package/src/modules/customers/components/detail/PersonDetailHeader.tsx +294 -0
  591. package/src/modules/customers/components/detail/PersonDetailTabs.tsx +172 -0
  592. package/src/modules/customers/components/detail/PersonTagsDialog.tsx +26 -0
  593. package/src/modules/customers/components/detail/PipelineStepper.tsx +245 -0
  594. package/src/modules/customers/components/detail/PlannedActivitiesSection.tsx +255 -0
  595. package/src/modules/customers/components/detail/RelationshipHealthCard.tsx +63 -0
  596. package/src/modules/customers/components/detail/RoleAssignmentRow.tsx +248 -0
  597. package/src/modules/customers/components/detail/RolesSection.tsx +311 -0
  598. package/src/modules/customers/components/detail/ScheduleActivityDialog.tsx +481 -0
  599. package/src/modules/customers/components/detail/aiActionCatalog.ts +77 -0
  600. package/src/modules/customers/components/detail/assignableStaff.ts +124 -0
  601. package/src/modules/customers/components/detail/dashboard/ActiveDealWidget.tsx +63 -0
  602. package/src/modules/customers/components/detail/dashboard/OpenTasksWidget.tsx +114 -0
  603. package/src/modules/customers/components/detail/dashboard/RecentActivityWidget.tsx +69 -0
  604. package/src/modules/customers/components/detail/dashboard/RelationshipHealthWidget.tsx +40 -0
  605. package/src/modules/customers/components/detail/dashboard/UpcomingMeetingsWidget.tsx +64 -0
  606. package/src/modules/customers/components/detail/dashboard/helpers.ts +78 -0
  607. package/src/modules/customers/components/detail/healthScoreUtils.ts +91 -0
  608. package/src/modules/customers/components/detail/hooks/useCurrencyDictionary.ts +8 -8
  609. package/src/modules/customers/components/detail/hooks/useCustomerDictionary.ts +10 -6
  610. package/src/modules/customers/components/detail/hooks/useInteractionMutations.ts +91 -0
  611. package/src/modules/customers/components/detail/notesAdapter.ts +91 -30
  612. package/src/modules/customers/components/detail/pipelineStageUtils.ts +29 -0
  613. package/src/modules/customers/components/detail/schedule/DateTimeFields.tsx +187 -0
  614. package/src/modules/customers/components/detail/schedule/FooterFields.tsx +79 -0
  615. package/src/modules/customers/components/detail/schedule/LinkedEntitiesField.tsx +277 -0
  616. package/src/modules/customers/components/detail/schedule/LocationField.tsx +42 -0
  617. package/src/modules/customers/components/detail/schedule/ParticipantsField.tsx +255 -0
  618. package/src/modules/customers/components/detail/schedule/fieldConfig.ts +70 -0
  619. package/src/modules/customers/components/detail/schedule/index.ts +9 -0
  620. package/src/modules/customers/components/detail/schedule/useScheduleFormState.ts +221 -0
  621. package/src/modules/customers/components/detail/types.ts +16 -0
  622. package/src/modules/customers/components/detail/utils.ts +25 -0
  623. package/src/modules/customers/components/formConfig.tsx +223 -28
  624. package/src/modules/customers/components/linking/LinkEntityDialog.tsx +920 -0
  625. package/src/modules/customers/components/linking/adapters/companyAdapter.tsx +398 -0
  626. package/src/modules/customers/components/linking/adapters/dealAdapter.tsx +578 -0
  627. package/src/modules/customers/components/linking/adapters/personAdapter.tsx +512 -0
  628. package/src/modules/customers/components/list/CollectionPreviewCell.tsx +66 -0
  629. package/src/modules/customers/data/entities.ts +353 -1
  630. package/src/modules/customers/data/validators.ts +170 -19
  631. package/src/modules/customers/events.ts +22 -0
  632. package/src/modules/customers/i18n/de.json +841 -2
  633. package/src/modules/customers/i18n/en.json +841 -2
  634. package/src/modules/customers/i18n/es.json +840 -1
  635. package/src/modules/customers/i18n/pl.json +841 -2
  636. package/src/modules/customers/lib/customerRoleTypes.ts +24 -0
  637. package/src/modules/customers/lib/dealClosureNotification.ts +64 -0
  638. package/src/modules/customers/lib/dealStageTransitionTable.ts +32 -0
  639. package/src/modules/customers/lib/dictionaries.ts +26 -10
  640. package/src/modules/customers/lib/interactionReadModel.ts +10 -0
  641. package/src/modules/customers/lib/personCompanies.ts +317 -0
  642. package/src/modules/customers/lib/personCompanyLinkTable.ts +58 -0
  643. package/src/modules/customers/lib/roleTypeUsage.ts +146 -0
  644. package/src/modules/customers/migrations/.snapshot-open-mercato.json +2747 -798
  645. package/src/modules/customers/migrations/Migration20260406214502.ts +19 -0
  646. package/src/modules/customers/migrations/Migration20260408135736.ts +15 -0
  647. package/src/modules/customers/migrations/Migration20260408225345.ts +23 -0
  648. package/src/modules/customers/migrations/Migration20260411075533.ts +30 -0
  649. package/src/modules/customers/migrations/Migration20260411103551.ts +13 -0
  650. package/src/modules/customers/migrations/Migration20260411130944.ts +30 -0
  651. package/src/modules/customers/migrations/Migration20260415095203.ts +13 -0
  652. package/src/modules/customers/migrations/Migration20260415135056.ts +22 -0
  653. package/src/modules/customers/migrations/Migration20260417140000.ts +15 -0
  654. package/src/modules/customers/migrations/Migration20260417160000.ts +17 -0
  655. package/src/modules/customers/migrations/Migration20260417235407.ts +13 -0
  656. package/src/modules/customers/setup.ts +15 -0
  657. package/src/modules/customers/subscribers/deal-closure-notification.ts +22 -0
  658. package/src/modules/customers/subscribers/deal-lost-notification.ts +22 -0
  659. package/src/modules/dictionaries/api/[dictionaryId]/entries/[entryId]/route.ts +2 -0
  660. package/src/modules/dictionaries/api/[dictionaryId]/entries/reorder/route.ts +162 -0
  661. package/src/modules/dictionaries/api/[dictionaryId]/entries/route.ts +6 -2
  662. package/src/modules/dictionaries/api/[dictionaryId]/entries/set-default/route.ts +162 -0
  663. package/src/modules/dictionaries/api/context.ts +9 -0
  664. package/src/modules/dictionaries/api/openapi.ts +17 -0
  665. package/src/modules/dictionaries/commands/entry-operations.ts +457 -0
  666. package/src/modules/dictionaries/commands/factory.ts +31 -3
  667. package/src/modules/dictionaries/commands/index.ts +1 -0
  668. package/src/modules/dictionaries/components/DictionaryTable.tsx +15 -6
  669. package/src/modules/dictionaries/data/entities.ts +9 -0
  670. package/src/modules/dictionaries/data/validators.ts +34 -0
  671. package/src/modules/dictionaries/events.ts +20 -0
  672. package/src/modules/dictionaries/i18n/de.json +2 -0
  673. package/src/modules/dictionaries/i18n/en.json +2 -0
  674. package/src/modules/dictionaries/i18n/es.json +2 -0
  675. package/src/modules/dictionaries/i18n/pl.json +2 -0
  676. package/src/modules/dictionaries/lib/clientEntries.ts +66 -0
  677. package/src/modules/dictionaries/migrations/.snapshot-open-mercato.json +185 -3
  678. package/src/modules/dictionaries/migrations/Migration20260410171544.ts +49 -0
  679. package/src/modules/inbox_ops/api/proposals/[id]/route.ts +4 -1
  680. package/src/modules/query_index/lib/engine.ts +9 -1
  681. package/src/modules/sales/components/documents/AddressesSection.tsx +92 -42
  682. package/src/modules/sales/i18n/de.json +28 -0
  683. package/src/modules/sales/i18n/en.json +28 -0
  684. package/src/modules/sales/i18n/es.json +28 -0
  685. package/src/modules/sales/i18n/pl.json +28 -0
  686. package/src/modules/sales/lib/dictionaries.ts +18 -0
  687. package/src/modules/sales/widgets/injection-table.ts +4 -0
@@ -4,6 +4,58 @@
4
4
  "audit_logs.resource_kind.customers.comment": "Comentario",
5
5
  "audit_logs.resource_kind.customers.todoLink": "Tarea",
6
6
  "backend.nav.configuration": "Configuración",
7
+ "customers.activities.filters.clearAll": "Clear filters",
8
+ "customers.activities.filters.dateRange": "Date range",
9
+ "customers.activities.loadFailed": "No se pudieron cargar las actividades.",
10
+ "customers.activities.loadMore": "Load more",
11
+ "customers.activities.overdue": "",
12
+ "customers.activities.seeAll": "",
13
+ "customers.activities.yearSeparator": "",
14
+ "customers.activityComposer.cancel": "Cancel",
15
+ "customers.activityComposer.dateLabel": "Date",
16
+ "customers.activityComposer.descriptionPlaceholder": "What happened?",
17
+ "customers.activityComposer.error": "Failed to save activity",
18
+ "customers.activityComposer.hint": "Cmd+Enter to save",
19
+ "customers.activityComposer.save": "Save activity",
20
+ "customers.activityComposer.saveActivity": "Save activity",
21
+ "customers.activityComposer.saved": "{{type}} saved",
22
+ "customers.activityComposer.saving": "Saving...",
23
+ "customers.activityComposer.schedule": "Schedule",
24
+ "customers.activityComposer.scheduledLabel": "Scheduled for",
25
+ "customers.activityComposer.title": "Log activity",
26
+ "customers.activityComposer.today": "Today",
27
+ "customers.activityComposer.types.call": "Call",
28
+ "customers.activityComposer.types.email": "Email",
29
+ "customers.activityComposer.types.meeting": "Meeting",
30
+ "customers.activityComposer.types.note": "Note",
31
+ "customers.activityComposer.validation.descriptionRequired": "Description is required",
32
+ "customers.activityComposer.validation.typeRequired": "Select an activity type",
33
+ "customers.activityLog.direction.to": "to",
34
+ "customers.activityLog.direction.with": "with",
35
+ "customers.activityLog.emptyDescription": "Try broadening the date range or removing some filters.",
36
+ "customers.activityLog.error": "Failed to load activity history",
37
+ "customers.activityLog.searchPlaceholder": "Search by title, note, or author",
38
+ "customers.activityLog.sort.recent": "Sort: newest",
39
+ "customers.activityLog.sort.titleAsc": "Sort: Name A-Z",
40
+ "customers.activityLog.sort.titleDesc": "Sort: Name Z-A",
41
+ "customers.activityLog.title": "Activity history",
42
+ "customers.ai.actions.actionItems": "Action items",
43
+ "customers.ai.actions.ai": "AI",
44
+ "customers.ai.actions.attendees": "Attendees",
45
+ "customers.ai.actions.bulletize": "Bulletize",
46
+ "customers.ai.actions.expand": "Expand",
47
+ "customers.ai.actions.leadScore": "Lead score",
48
+ "customers.ai.actions.notes": "Notes",
49
+ "customers.ai.actions.replay": "Replay",
50
+ "customers.ai.actions.reply": "Reply",
51
+ "customers.ai.actions.sentiment": "Sentiment",
52
+ "customers.ai.actions.showEmail": "Show email",
53
+ "customers.ai.actions.summarize": "Summarize",
54
+ "customers.ai.actions.transcription": "Transcription",
55
+ "customers.ai.actions.translate": "Translate",
56
+ "customers.ai.comingSoon": "Coming soon",
57
+ "customers.ai.prefix": "IA:",
58
+ "customers.assignableStaff.loadError": "No se pudieron cargar los miembros del equipo. Verifica tus permisos y vuelve a intentarlo.",
7
59
  "customers.audit.activities.create": "Crear actividad",
8
60
  "customers.audit.activities.delete": "Eliminar actividad",
9
61
  "customers.audit.activities.update": "Actualizar actividad",
@@ -22,14 +74,23 @@
22
74
  "customers.audit.dictionaryEntries.create": "Agregar entrada de diccionario de clientes",
23
75
  "customers.audit.dictionaryEntries.delete": "Eliminar entrada de diccionario de clientes",
24
76
  "customers.audit.dictionaryEntries.update": "Actualizar entrada de diccionario de clientes",
77
+ "customers.audit.entityRoles.create": "Create entity role",
78
+ "customers.audit.entityRoles.delete": "Delete entity role",
79
+ "customers.audit.entityRoles.update": "Update entity role",
25
80
  "customers.audit.interactions.cancel": "Cancelar interaccion",
26
81
  "customers.audit.interactions.complete": "Completar interaccion",
27
82
  "customers.audit.interactions.create": "Crear interaccion",
28
83
  "customers.audit.interactions.delete": "Eliminar interaccion",
29
84
  "customers.audit.interactions.update": "Actualizar interaccion",
85
+ "customers.audit.labels.assign": "Asignar etiqueta",
86
+ "customers.audit.labels.create": "Crear etiqueta",
87
+ "customers.audit.labels.unassign": "Quitar etiqueta",
30
88
  "customers.audit.people.create": "Crear persona",
31
89
  "customers.audit.people.delete": "Eliminar persona",
32
90
  "customers.audit.people.update": "Actualizar persona",
91
+ "customers.audit.personCompanyLinks.create": "Vincular persona con empresa",
92
+ "customers.audit.personCompanyLinks.delete": "Desvincular persona de empresa",
93
+ "customers.audit.personCompanyLinks.update": "Actualizar vínculo persona-empresa",
33
94
  "customers.audit.tags.assign": "Asignar etiqueta",
34
95
  "customers.audit.tags.create": "Crear etiqueta",
35
96
  "customers.audit.tags.delete": "Eliminar etiqueta",
@@ -38,14 +99,119 @@
38
99
  "customers.audit.todos.create": "Crear tarea de cliente",
39
100
  "customers.audit.todos.link": "Vincular tarea",
40
101
  "customers.audit.todos.unlink": "Desvincular tarea",
102
+ "customers.calendar.day.fri": "VIE",
103
+ "customers.calendar.day.mon": "LUN",
104
+ "customers.calendar.day.sat": "SÁB",
105
+ "customers.calendar.day.sun": "DOM",
106
+ "customers.calendar.day.thu": "JUE",
107
+ "customers.calendar.day.tue": "MAR",
108
+ "customers.calendar.day.wed": "MIÉ",
109
+ "customers.calendar.locale": "en",
110
+ "customers.calendar.nextWeek": "Semana siguiente",
111
+ "customers.calendar.previousWeek": "Semana anterior",
112
+ "customers.calendar.thisWeek": "This week",
113
+ "customers.calendar.tomorrow": "Tomorrow",
114
+ "customers.changelog.actions.assign": "Assign",
115
+ "customers.changelog.actions.create": "Create",
116
+ "customers.changelog.actions.delete": "Delete",
117
+ "customers.changelog.actions.edit": "Edit",
118
+ "customers.changelog.actions.system": "System",
119
+ "customers.changelog.allActions": "All actions",
120
+ "customers.changelog.allFields": "All fields",
121
+ "customers.changelog.allUsers": "All users",
122
+ "customers.changelog.col.action": "Action",
123
+ "customers.changelog.col.change": "What changed",
124
+ "customers.changelog.col.source": "Source",
125
+ "customers.changelog.col.user": "User",
126
+ "customers.changelog.col.when": "When",
127
+ "customers.changelog.empty": "No changes recorded in this period.",
128
+ "customers.changelog.emptyTitle": "No changes in this period",
129
+ "customers.changelog.error": "Failed to load change log",
130
+ "customers.changelog.exportCsv": "Export CSV",
131
+ "customers.changelog.exportError": "Failed to export change log",
132
+ "customers.changelog.filter": "Filter",
133
+ "customers.changelog.filters.empty": "No matching options",
134
+ "customers.changelog.filters.search": "Search",
135
+ "customers.changelog.filters.selectedCount": "{{count}} selected",
136
+ "customers.changelog.groupLabel.today": "HOY",
137
+ "customers.changelog.groupLabel.yesterday": "AYER",
138
+ "customers.changelog.kpi.active": "active",
139
+ "customers.changelog.kpi.criticalDescription": "status, stage, role",
140
+ "customers.changelog.kpi.criticalFields": "Critical fields",
141
+ "customers.changelog.kpi.period": "last {{days}} days",
142
+ "customers.changelog.kpi.today": "Today",
143
+ "customers.changelog.kpi.totalChanges": "All changes",
144
+ "customers.changelog.kpi.users": "Users",
145
+ "customers.changelog.kpi.vsYesterday": "vs yesterday",
146
+ "customers.changelog.last30days": "Last 30 days",
147
+ "customers.changelog.last7days": "Last 7 days",
148
+ "customers.changelog.last90days": "Last 90 days",
149
+ "customers.changelog.loading": "Loading changes...",
150
+ "customers.changelog.newer": "Newer",
151
+ "customers.changelog.next": "Siguiente",
152
+ "customers.changelog.older": "Older",
153
+ "customers.changelog.previous": "Anterior",
154
+ "customers.changelog.showing": "Showing {{shown}} of {{total}} entries",
155
+ "customers.changelog.showingWithPeriod": "Showing {{shown}} of {{total}} entries · last {{days}} days",
156
+ "customers.changelog.source.api": "API",
157
+ "customers.changelog.source.system": "System",
158
+ "customers.changelog.source.ui": "UI",
159
+ "customers.changelog.title": "Change log",
160
+ "customers.changelog.user.system": "System",
41
161
  "customers.companies.create.title": "Crear empresa",
162
+ "customers.companies.dashboard.activeDeal": "Deal activo",
163
+ "customers.companies.dashboard.created": "Created",
164
+ "customers.companies.dashboard.details": "Detalles",
165
+ "customers.companies.dashboard.dueOn": "Vence: {{date}}",
166
+ "customers.companies.dashboard.hiddenTiles": "{{count}} tiles hidden",
167
+ "customers.companies.dashboard.hideTile": "Hide tile",
168
+ "customers.companies.dashboard.kpi.activeDeals": "DEALS ACTIVOS",
169
+ "customers.companies.dashboard.kpi.activities": "ACTIVIDADES",
170
+ "customers.companies.dashboard.kpi.clientSince": "CLIENTE DESDE",
171
+ "customers.companies.dashboard.kpi.completedDeals": "completed deals",
172
+ "customers.companies.dashboard.kpi.last12months": "últimos 12 meses",
173
+ "customers.companies.dashboard.kpi.ltv": "VALOR DEL CLIENTE (LTV)",
174
+ "customers.companies.dashboard.kpi.noInteractions": "No interactions yet",
175
+ "customers.companies.dashboard.kpi.noWonDeals": "No won deals",
176
+ "customers.companies.dashboard.kpi.wonDeals": "won deals total",
177
+ "customers.companies.dashboard.kpi.year": "year",
178
+ "customers.companies.dashboard.kpi.years": "years",
179
+ "customers.companies.dashboard.last7days": "últimos 7 días",
180
+ "customers.companies.dashboard.newTask": "Nueva tarea",
181
+ "customers.companies.dashboard.noActivity": "No recent activity",
182
+ "customers.companies.dashboard.noDeals": "No active deals",
183
+ "customers.companies.dashboard.noMeetings": "No upcoming meetings",
184
+ "customers.companies.dashboard.noTasks": "No open tasks",
185
+ "customers.companies.dashboard.openTasks": "Tareas abiertas",
186
+ "customers.companies.dashboard.overdueBy": "Atrasado por {{days}} días",
187
+ "customers.companies.dashboard.potentialValue": "valor potencial",
188
+ "customers.companies.dashboard.recentActivity": "Actividad reciente",
189
+ "customers.companies.dashboard.relationshipHealth": "Relationship health",
190
+ "customers.companies.dashboard.seeAll": "Ver todas",
191
+ "customers.companies.dashboard.seeAllActivity": "Ver todas las {{count}} actividades",
192
+ "customers.companies.dashboard.showAll": "Show all",
193
+ "customers.companies.dashboard.upcomingMeetings": "Próximas reuniones",
42
194
  "customers.companies.detail.actions.addDeal": "Agregar oportunidad",
43
195
  "customers.companies.detail.actions.backToList": "Volver a empresas",
196
+ "customers.companies.detail.actions.cancel": "Cancelar",
44
197
  "customers.companies.detail.actions.delete": "Eliminar empresa",
198
+ "customers.companies.detail.actions.editEmail": "Editar correo",
199
+ "customers.companies.detail.actions.editPhone": "Editar teléfono",
200
+ "customers.companies.detail.actions.history": "History",
201
+ "customers.companies.detail.actions.manageTags": "Editar etiquetas",
202
+ "customers.companies.detail.actions.more": "Más",
203
+ "customers.companies.detail.actions.save": "Save",
204
+ "customers.companies.detail.activeDeal": "DEAL ACTIVO",
45
205
  "customers.companies.detail.activities.add": "Registrar actividad",
46
206
  "customers.companies.detail.activities.loading": "Cargando actividades…",
47
207
  "customers.companies.detail.addresses.add": "Agregar dirección",
48
208
  "customers.companies.detail.addresses.error": "No se pudo guardar la dirección.",
209
+ "customers.companies.detail.billing.address": "Dirección",
210
+ "customers.companies.detail.billing.currency": "Moneda",
211
+ "customers.companies.detail.billing.name": "Nombre",
212
+ "customers.companies.detail.billing.paymentTerms": "Condiciones de pago",
213
+ "customers.companies.detail.copied": "Copiado al portapapeles",
214
+ "customers.companies.detail.copy": "Copiar",
49
215
  "customers.companies.detail.currency.add": "Agregar divisa",
50
216
  "customers.companies.detail.currency.addPrompt": "Proporcione un código de moneda.",
51
217
  "customers.companies.detail.currency.cancel": "Cancelar",
@@ -70,6 +236,9 @@
70
236
  "customers.companies.detail.currency.valueLabel": "Código de divisa",
71
237
  "customers.companies.detail.currency.valuePlaceholder": "p. ej. USD",
72
238
  "customers.companies.detail.deals.loading": "Cargando oportunidades…",
239
+ "customers.companies.detail.deleteConfirmDescription": "Esta acción no se puede deshacer.",
240
+ "customers.companies.detail.deleteConfirmTitle": "¿Eliminar empresa?",
241
+ "customers.companies.detail.employees": "empleados",
73
242
  "customers.companies.detail.empty.addresses": "Sin direcciones registradas.",
74
243
  "customers.companies.detail.empty.comments": "Sin notas aún.",
75
244
  "customers.companies.detail.empty.deals": "Sin oportunidades vinculadas a esta empresa.",
@@ -108,6 +277,16 @@
108
277
  "customers.companies.detail.fields.website": "Sitio web",
109
278
  "customers.companies.detail.fields.websiteHelp": "Usa una URL completa, por ejemplo https://ejemplo.com.",
110
279
  "customers.companies.detail.fields.websitePlaceholder": "https://ejemplo.com",
280
+ "customers.companies.detail.files.subtitle": "Carga y gestiona archivos vinculados a esta empresa.",
281
+ "customers.companies.detail.header.accountManager": "",
282
+ "customers.companies.detail.header.employees": "",
283
+ "customers.companies.detail.header.more": "more",
284
+ "customers.companies.detail.header.notAssigned": "",
285
+ "customers.companies.detail.health.atRisk": "",
286
+ "customers.companies.detail.health.healthy": "",
287
+ "customers.companies.detail.health.lastContact": "",
288
+ "customers.companies.detail.health.title": "",
289
+ "customers.companies.detail.health.watchful": "",
111
290
  "customers.companies.detail.highlights.annualRevenue": "Ingresos anuales",
112
291
  "customers.companies.detail.highlights.annualRevenueCurrency": "Moneda",
113
292
  "customers.companies.detail.highlights.annualRevenueCurrencyPlaceholder": "USD",
@@ -132,42 +311,84 @@
132
311
  "customers.companies.detail.inline.error": "No se pudo actualizar la empresa.",
133
312
  "customers.companies.detail.inline.phoneInvalid": "El número de teléfono es demasiado corto.",
134
313
  "customers.companies.detail.inline.websiteInvalid": "Usa una dirección http(s) válida.",
314
+ "customers.companies.detail.lastContact": "ÚLTIMO CONTACTO",
135
315
  "customers.companies.detail.loading": "Cargando empresa…",
316
+ "customers.companies.detail.nextStep.call": "",
317
+ "customers.companies.detail.nextStep.in": "",
318
+ "customers.companies.detail.nextStep.none": "",
319
+ "customers.companies.detail.nextStep.overdue": "",
320
+ "customers.companies.detail.nextStep.proposal": "",
321
+ "customers.companies.detail.nextStep.title": "",
322
+ "customers.companies.detail.nextStep.today": "",
323
+ "customers.companies.detail.nextStep.untitled": "",
136
324
  "customers.companies.detail.noValue": "No proporcionado",
325
+ "customers.companies.detail.notAssigned": "Not assigned",
137
326
  "customers.companies.detail.notes.addLabel": "Agregar nota",
138
327
  "customers.companies.detail.notes.entityMissing": "No se pudo determinar la empresa actual.",
139
328
  "customers.companies.detail.notes.placeholder": "Escribe una nota sobre esta empresa…",
140
329
  "customers.companies.detail.people.add": "Agregar persona",
141
330
  "customers.companies.detail.people.empty": "Sin personas vinculadas a esta empresa aún.",
331
+ "customers.companies.detail.people.filter": "Filters",
142
332
  "customers.companies.detail.people.helper": "Las personas vinculadas a esta empresa aparecen aquí y pueden crearse, vincularse, abrirse o desvincularse sin salir de la página.",
143
333
  "customers.companies.detail.people.linkAction": "Vincular persona existente",
144
334
  "customers.companies.detail.people.linkCancel": "Cancelar",
145
335
  "customers.companies.detail.people.linkClear": "Borrar selección",
336
+ "customers.companies.detail.people.linkClearVisible": "Limpiar visibles",
146
337
  "customers.companies.detail.people.linkConfirm": "Vincular persona",
338
+ "customers.companies.detail.people.linkConfirmSelected": "Link selected",
147
339
  "customers.companies.detail.people.linkDialog.description": "Busca una persona existente y vincúlala a esta empresa sin salir de la página.",
148
340
  "customers.companies.detail.people.linkDialog.title": "Vincular persona existente",
149
341
  "customers.companies.detail.people.linkEmpty": "No se encontraron personas coincidentes.",
150
342
  "customers.companies.detail.people.linkError": "No se pudo vincular la persona a la empresa.",
151
343
  "customers.companies.detail.people.linkLoadError": "No se pudieron cargar las personas.",
344
+ "customers.companies.detail.people.linkLoadMore": "Load more people",
152
345
  "customers.companies.detail.people.linkLoading": "Buscando personas…",
153
346
  "customers.companies.detail.people.linkSearchPlaceholder": "Buscar personas por nombre o correo",
154
347
  "customers.companies.detail.people.linkSelect": "Vincular",
348
+ "customers.companies.detail.people.linkSelectPerson": "Select {{name}}",
349
+ "customers.companies.detail.people.linkSelectVisible": "Seleccionar visibles",
155
350
  "customers.companies.detail.people.linkSelected": "Seleccionado",
351
+ "customers.companies.detail.people.linkSelectedCount": "{{count}} selected",
352
+ "customers.companies.detail.people.linkSelectionHint": "Choose one or more people to link.",
156
353
  "customers.companies.detail.people.linkStartTyping": "Empieza a escribir para buscar una persona existente.",
157
354
  "customers.companies.detail.people.linkSubmitting": "Vinculando…",
158
355
  "customers.companies.detail.people.linkSuccess": "Persona vinculada a la empresa.",
356
+ "customers.companies.detail.people.linkSuccessMultiple": "{{count}} people linked to company.",
159
357
  "customers.companies.detail.people.linkedOn": "Vinculado el {{date}}",
358
+ "customers.companies.detail.people.loadError": "Failed to load people.",
160
359
  "customers.companies.detail.people.loading": "Cargando personas…",
360
+ "customers.companies.detail.people.next": "Next",
361
+ "customers.companies.detail.people.noSearchResults": "No people match your search.",
161
362
  "customers.companies.detail.people.open": "Abrir persona",
363
+ "customers.companies.detail.people.pageSummary": "Page {{page}} of {{total}}",
364
+ "customers.companies.detail.people.previous": "Previous",
162
365
  "customers.companies.detail.people.remove": "Desvincular",
163
366
  "customers.companies.detail.people.removeError": "No se pudo desvincular a la persona de la empresa.",
164
367
  "customers.companies.detail.people.removeSuccess": "Persona desvinculada de la empresa.",
368
+ "customers.companies.detail.people.searchPlaceholder": "Search by name, role, email...",
369
+ "customers.companies.detail.people.sectionSubtitle": "Employees and decision makers on the client side",
370
+ "customers.companies.detail.people.sectionTitle": "People",
371
+ "customers.companies.detail.people.sortNameAsc": "Sort: Name A-Z",
372
+ "customers.companies.detail.people.sortNameDesc": "Sort: Name Z-A",
373
+ "customers.companies.detail.people.sortRecent": "Sort: Recently linked",
374
+ "customers.companies.detail.relativeTime.daysAgo": "hace {{days}} días",
375
+ "customers.companies.detail.relativeTime.monthsAgo": "hace {{months}} meses",
376
+ "customers.companies.detail.relativeTime.oneDayAgo": "hace 1 día",
377
+ "customers.companies.detail.relativeTime.today": "hoy",
378
+ "customers.companies.detail.relativeTime.weeksAgo": "hace {{weeks}} sem.",
379
+ "customers.companies.detail.roleInCompany": "ROL DE {{name}} EN ESTA EMPRESA",
165
380
  "customers.companies.detail.sectionLoading": "Cargando…",
166
381
  "customers.companies.detail.sections.customFields": "Campos personalizados",
167
382
  "customers.companies.detail.sections.details": "Detalles de la empresa",
168
383
  "customers.companies.detail.tabs.activities": "Actividades",
384
+ "customers.companies.detail.tabs.activityLog": "Registro de actividades",
169
385
  "customers.companies.detail.tabs.addresses": "Direcciones",
386
+ "customers.companies.detail.tabs.analysis": "Análisis",
387
+ "customers.companies.detail.tabs.changelog": "Registro de cambios",
388
+ "customers.companies.detail.tabs.daneFiremy": "Datos de empresa",
389
+ "customers.companies.detail.tabs.dashboard": "Dashboard",
170
390
  "customers.companies.detail.tabs.deals": "Oportunidades",
391
+ "customers.companies.detail.tabs.files": "Archivos",
171
392
  "customers.companies.detail.tabs.label": "Secciones de detalles de empresa",
172
393
  "customers.companies.detail.tabs.notes": "Notas",
173
394
  "customers.companies.detail.tabs.people": "Personas",
@@ -175,6 +396,7 @@
175
396
  "customers.companies.detail.tasks.add": "Agregar tarea",
176
397
  "customers.companies.detail.tasks.dialog.context": "Esta tarea se vinculará con {{name}}",
177
398
  "customers.companies.detail.title": "Detalles de la empresa",
399
+ "customers.companies.detail.untitled": "Untitled",
178
400
  "customers.companies.form.annualRevenue.error": "Introduce un importe válido (máximo dos decimales).",
179
401
  "customers.companies.form.dictionary.addIndustry": "Agregar industria",
180
402
  "customers.companies.form.dictionary.addLifecycleStage": "Añadir etapa del ciclo de vida",
@@ -193,8 +415,13 @@
193
415
  "customers.companies.form.displayName.placeholder": "Introduce el nombre de la empresa",
194
416
  "customers.companies.form.error.create": "No se pudo crear la empresa",
195
417
  "customers.companies.form.groups.addresses": "Direcciones",
418
+ "customers.companies.form.groups.businessProfile": "Business profile",
419
+ "customers.companies.form.groups.classification": "Classification",
420
+ "customers.companies.form.groups.contact": "Contact",
196
421
  "customers.companies.form.groups.custom": "Campos personalizados",
422
+ "customers.companies.form.groups.customAttributes": "Custom attributes",
197
423
  "customers.companies.form.groups.details": "Detalles",
424
+ "customers.companies.form.groups.identity": "Identity",
198
425
  "customers.companies.form.groups.notes": "Notas",
199
426
  "customers.companies.form.groups.profile": "Perfil de la empresa",
200
427
  "customers.companies.form.industry.placeholder": "Selecciona una industria",
@@ -204,6 +431,10 @@
204
431
  "customers.companies.form.primaryEmailPlaceholder": "nombre@ejemplo.com",
205
432
  "customers.companies.form.primaryPhone": "Agregar teléfono",
206
433
  "customers.companies.form.primaryPhonePlaceholder": "+34 000 000 000",
434
+ "customers.companies.form.sections.businessProfile": "Business profile",
435
+ "customers.companies.form.sections.classification": "Classification",
436
+ "customers.companies.form.sections.contact": "Contact",
437
+ "customers.companies.form.sections.identity": "Identity",
207
438
  "customers.companies.form.source": "Origen",
208
439
  "customers.companies.form.source.placeholder": "Selecciona un origen",
209
440
  "customers.companies.form.status": "Estado",
@@ -221,6 +452,8 @@
221
452
  "customers.companies.list.booleanYes": "Sí",
222
453
  "customers.companies.list.bulkDelete.action": "Delete selected",
223
454
  "customers.companies.list.bulkDelete.description": "This action cannot be undone.",
455
+ "customers.companies.list.bulkDelete.failed": "No se pudieron eliminar {count} empresas",
456
+ "customers.companies.list.bulkDelete.partial": "{deleted} de {total} empresas eliminadas; {failed} fallaron",
224
457
  "customers.companies.list.bulkDelete.success": "{count} companies deleted",
225
458
  "customers.companies.list.bulkDelete.title": "Delete {count} companies?",
226
459
  "customers.companies.list.columns.email": "Correo electrónico",
@@ -297,10 +530,15 @@
297
530
  "customers.config.dictionaries.errors.invalidColor": "El color debe ser un valor hexadecimal válido como #3366ff.",
298
531
  "customers.config.dictionaries.errors.invalidIcon": "El ícono debe ser un nombre corto o un emoji.",
299
532
  "customers.config.dictionaries.errors.required": "Ingresa un valor.",
533
+ "customers.config.dictionaries.errors.roleTypeDeleteInUse": "Este tipo de rol está asignado a {{count}} registros. Elimina o reemplaza esas asignaciones antes de borrar el tipo de rol.",
534
+ "customers.config.dictionaries.errors.roleTypeValueInUse": "Este tipo de rol está asignado a {{count}} registros. Elimina o reemplaza esas asignaciones antes de cambiar su valor.",
300
535
  "customers.config.dictionaries.inherited.blocked": "Las entradas heredadas solo pueden editarse en la organización superior.",
301
536
  "customers.config.dictionaries.inherited.label": "Heredado",
302
537
  "customers.config.dictionaries.inherited.notice": "Las entradas heredadas se administran en la organización superior.",
303
538
  "customers.config.dictionaries.inherited.tooltip": "Gestionado en la organización superior",
539
+ "customers.config.dictionaries.roleTypes.deleteBlocked.text": "Este tipo de rol está asignado a {{count}} registros. Elimina o reemplaza esas asignaciones antes de borrar el tipo de rol.",
540
+ "customers.config.dictionaries.roleTypes.deleteBlocked.title": "El tipo de rol está en uso",
541
+ "customers.config.dictionaries.roleTypes.usageCount": "En uso en {{count}} registros",
304
542
  "customers.config.dictionaries.searchPlaceholder": "Buscar entradas…",
305
543
  "customers.config.dictionaries.sections.activityTypes.description": "Define los tipos de actividad usados para las interacciones con clientes.",
306
544
  "customers.config.dictionaries.sections.activityTypes.title": "Tipos de actividad",
@@ -314,6 +552,8 @@
314
552
  "customers.config.dictionaries.sections.jobTitles.title": "Cargos",
315
553
  "customers.config.dictionaries.sections.lifecycle.description": "Configura las etapas del ciclo de vida para seguir el progreso de los clientes.",
316
554
  "customers.config.dictionaries.sections.lifecycle.title": "Etapas del ciclo de vida",
555
+ "customers.config.dictionaries.sections.personCompanyRoles.description": "Gestiona los tipos de roles disponibles en las asignaciones de la pestaña Personas.",
556
+ "customers.config.dictionaries.sections.personCompanyRoles.title": "Tipos de roles",
317
557
  "customers.config.dictionaries.sections.pipelineStages.description": "Define las etapas que componen tu pipeline de ventas.",
318
558
  "customers.config.dictionaries.sections.pipelineStages.title": "Etapas del pipeline",
319
559
  "customers.config.dictionaries.sections.sources.description": "Captura cómo se adquirieron los clientes.",
@@ -324,6 +564,8 @@
324
564
  "customers.config.dictionaries.success.save": "Entrada del diccionario guardada.",
325
565
  "customers.config.dictionaries.title": "Diccionarios de clientes",
326
566
  "customers.config.nav.customers": "Clientes",
567
+ "customers.config.pipelineStages.deletePipelineDesc": "This pipeline and all its stages will be permanently removed. Deals assigned to it will lose their pipeline assignment.",
568
+ "customers.config.pipelineStages.deleteStageDesc": "This stage will be permanently removed. Deals assigned to it will lose their stage assignment.",
327
569
  "customers.countries.ca": "Canadá",
328
570
  "customers.countries.de": "Alemania",
329
571
  "customers.countries.es": "España",
@@ -335,29 +577,101 @@
335
577
  "customers.deals.create.error": "No se pudo crear la oportunidad.",
336
578
  "customers.deals.create.submit": "Crear oportunidad",
337
579
  "customers.deals.create.title": "Crear oportunidad",
580
+ "customers.deals.detail.actions.apply": "Apply",
581
+ "customers.deals.detail.actions.backToList": "Back to deals",
582
+ "customers.deals.detail.actions.cancel": "Cancel",
583
+ "customers.deals.detail.actions.delete": "Delete",
584
+ "customers.deals.detail.actions.moveStage": "Mover etapa",
585
+ "customers.deals.detail.actions.save": "Save",
586
+ "customers.deals.detail.activities.linkEntityDescription": "Activities on a deal still need a customer record for timeline ownership.",
587
+ "customers.deals.detail.activities.linkEntityTitle": "Link a person or company first",
588
+ "customers.deals.detail.activities.selectEntityDescription": "Pick the person or company that should own new deal activities and follow-ups.",
589
+ "customers.deals.detail.activities.selectEntityLabel": "Choose customer record",
590
+ "customers.deals.detail.activities.selectEntityPlaceholder": "Select a person or company",
591
+ "customers.deals.detail.activities.selectEntityRequiredDescription": "Select the customer record that should receive new deal activities before logging or scheduling anything.",
592
+ "customers.deals.detail.activities.selectEntityRequiredTitle": "Choose a person or company to continue",
338
593
  "customers.deals.detail.activitiesAdd": "Registrar actividad",
339
594
  "customers.deals.detail.activitiesEmptyAction": "Agregar actividad",
340
595
  "customers.deals.detail.activitiesEmptyTitle": "Aún no hay actividades",
341
596
  "customers.deals.detail.activitiesLoading": "Cargando actividades…",
342
597
  "customers.deals.detail.backToList": "Volver a los deals",
598
+ "customers.deals.detail.badge.deal": "Deal",
599
+ "customers.deals.detail.badge.lost": "Lost",
600
+ "customers.deals.detail.badge.won": "Won",
601
+ "customers.deals.detail.closure.lost": "Lost",
602
+ "customers.deals.detail.closure.prompt": "Close deal — choose outcome",
603
+ "customers.deals.detail.closure.won": "Won",
604
+ "customers.deals.detail.companiesEditorTitle": "Manage linked companies",
343
605
  "customers.deals.detail.companiesNoDetails": "Sin información adicional",
606
+ "customers.deals.detail.companiesSearch": "Search linked companies…",
344
607
  "customers.deals.detail.companiesSection": "Empresas",
345
608
  "customers.deals.detail.companiesSummaryMany": "Empresas vinculadas: {{count}}",
346
609
  "customers.deals.detail.companiesSummaryOne": "Empresas vinculadas: 1",
610
+ "customers.deals.detail.companiesUpdateError": "Failed to update linked companies.",
347
611
  "customers.deals.detail.customFields": "Datos personalizados",
348
612
  "customers.deals.detail.deleteConfirm": "¿Eliminar este deal? Esta acción no se puede deshacer.",
613
+ "customers.deals.detail.deleteConfirmDescription": "This action cannot be undone.",
614
+ "customers.deals.detail.deleteConfirmTitle": "Delete deal?",
349
615
  "customers.deals.detail.deleteError": "No se pudo eliminar el deal.",
350
616
  "customers.deals.detail.deleteSuccess": "Deal eliminado.",
351
617
  "customers.deals.detail.editAssignments": "Editar vínculos",
618
+ "customers.deals.detail.error.load": "Failed to load deal.",
619
+ "customers.deals.detail.error.notFound": "Deal not found.",
352
620
  "customers.deals.detail.fields.expectedClose": "Cierre previsto",
353
621
  "customers.deals.detail.fields.pipeline": "Etapa del pipeline",
354
622
  "customers.deals.detail.fields.probability": "Probabilidad",
355
623
  "customers.deals.detail.fields.value": "Valor del deal",
624
+ "customers.deals.detail.files.subtitle": "Upload and manage files linked to this deal.",
356
625
  "customers.deals.detail.formTitle": "Configuración del deal",
357
626
  "customers.deals.detail.goToSettings": "Editar detalles del deal",
627
+ "customers.deals.detail.header.createdAt": "Created {{date}}",
628
+ "customers.deals.detail.header.expectedClose": "Expected close {{date}}",
629
+ "customers.deals.detail.header.timeline": "Created {{created}} · Expected close {{expected}}",
358
630
  "customers.deals.detail.highlights": "Aspectos destacados",
631
+ "customers.deals.detail.linkedEntities.clearAll": "Clear",
632
+ "customers.deals.detail.linkedEntities.clearVisible": "Limpiar visibles",
633
+ "customers.deals.detail.linkedEntities.dialogTitle": "Manage linked {{entity}}",
634
+ "customers.deals.detail.linkedEntities.empty": "No linked records yet.",
635
+ "customers.deals.detail.linkedEntities.loadMore": "Load more",
636
+ "customers.deals.detail.linkedEntities.loading": "Loading linked records…",
637
+ "customers.deals.detail.linkedEntities.manage": "Manage links",
638
+ "customers.deals.detail.linkedEntities.noResults": "No matching records found.",
639
+ "customers.deals.detail.linkedEntities.noSearchMatches": "No linked records match the current search.",
640
+ "customers.deals.detail.linkedEntities.noneSelected": "No linked records selected.",
641
+ "customers.deals.detail.linkedEntities.remove": "Remove",
642
+ "customers.deals.detail.linkedEntities.saving": "Saving…",
643
+ "customers.deals.detail.linkedEntities.searchAll": "Search all {{entity}}…",
644
+ "customers.deals.detail.linkedEntities.searchResults": "Search results",
645
+ "customers.deals.detail.linkedEntities.searching": "Searching…",
646
+ "customers.deals.detail.linkedEntities.selectVisible": "Seleccionar visibles",
647
+ "customers.deals.detail.linkedEntities.selectedTitle": "Selected {{entity}}",
648
+ "customers.deals.detail.linkedEntities.summary": "{{count}} linked {{entity}}",
359
649
  "customers.deals.detail.loadError": "No se pudo cargar el deal.",
360
650
  "customers.deals.detail.loading": "Cargando deal…",
651
+ "customers.deals.detail.lost.cancel": "Cancel",
652
+ "customers.deals.detail.lost.confirm": "Mark as Lost",
653
+ "customers.deals.detail.lost.dealsThisWeek": "Lost this week",
654
+ "customers.deals.detail.lost.followUpFallbackTitle": "Revisit closed deal",
655
+ "customers.deals.detail.lost.followUpTitle": "Revisit {{title}}",
656
+ "customers.deals.detail.lost.nextHeading": "What's next",
657
+ "customers.deals.detail.lost.notesLabel": "Loss notes (optional)",
658
+ "customers.deals.detail.lost.notesPlaceholder": "Additional context about the loss...",
659
+ "customers.deals.detail.lost.popupSubtitle": "Even great teams miss a shot sometimes",
660
+ "customers.deals.detail.lost.popupSummary": "Lost · reason: {{reason}}",
661
+ "customers.deals.detail.lost.popupTitle": "Not this round",
662
+ "customers.deals.detail.lost.primaryAction": "Back to pipeline",
663
+ "customers.deals.detail.lost.reason": "Loss reason",
664
+ "customers.deals.detail.lost.reasonFallback": "Unknown",
665
+ "customers.deals.detail.lost.reasonFallbackDescription": "No description available.",
666
+ "customers.deals.detail.lost.reasonHelp": "Choose the closest reason from the dictionary.",
667
+ "customers.deals.detail.lost.reasonLabel": "Loss reason",
668
+ "customers.deals.detail.lost.reasonPlaceholder": "Select loss reason",
669
+ "customers.deals.detail.lost.reasonRequired": "Please select a loss reason",
670
+ "customers.deals.detail.lost.salesCycle": "Sales cycle",
671
+ "customers.deals.detail.lost.secondaryAction": "Set reminder for Q3",
672
+ "customers.deals.detail.lost.title": "Mark deal as Lost?",
673
+ "customers.deals.detail.lost.warning": "This action sets the stage to 'Lost' and cannot be undone without 'sales.reopen' permission",
674
+ "customers.deals.detail.lost.warningTitle": "This action closes the deal",
361
675
  "customers.deals.detail.missingId": "Se requiere el ID del deal.",
362
676
  "customers.deals.detail.noCompanies": "Todavía no hay empresas vinculadas a este deal.",
363
677
  "customers.deals.detail.noPeople": "Todavía no hay personas vinculadas a este deal.",
@@ -370,17 +684,56 @@
370
684
  "customers.deals.detail.notesEmptyAction": "Agregar nota",
371
685
  "customers.deals.detail.notesEmptyTitle": "Comparte la información clave",
372
686
  "customers.deals.detail.notesLoading": "Cargando notas…",
687
+ "customers.deals.detail.peopleEditorTitle": "Manage linked people",
373
688
  "customers.deals.detail.peopleNoDetails": "Sin información adicional",
689
+ "customers.deals.detail.peopleSearch": "Search linked people…",
374
690
  "customers.deals.detail.peopleSection": "Personas",
375
691
  "customers.deals.detail.peopleSummaryMany": "Personas vinculadas: {{count}}",
376
692
  "customers.deals.detail.peopleSummaryOne": "Personas vinculadas: 1",
693
+ "customers.deals.detail.peopleUpdateError": "Failed to update linked people.",
694
+ "customers.deals.detail.pipeline.ariaClosedLost": "Pipeline cerrado — oportunidad perdida.",
695
+ "customers.deals.detail.pipeline.ariaClosedWon": "Pipeline cerrado — oportunidad ganada.",
696
+ "customers.deals.detail.pipeline.ariaLabel": "Progreso del pipeline",
697
+ "customers.deals.detail.pipeline.ariaLabelNamed": "Progreso del pipeline — {{name}}",
698
+ "customers.deals.detail.pipeline.ariaValueText": "Etapa {{current}} de {{total}}: {{label}}",
699
+ "customers.deals.detail.pipeline.current": "actual",
700
+ "customers.deals.detail.pipeline.currentWithDate": "{{date}} · {{state}}",
701
+ "customers.deals.detail.pipeline.defaultName": "Pipeline actual",
702
+ "customers.deals.detail.pipeline.label": "Etapas del pipeline",
703
+ "customers.deals.detail.pipeline.noCurrent": "sin etapa actual",
704
+ "customers.deals.detail.pipeline.stageOf": "Etapa {{current}} de {{total}}",
377
705
  "customers.deals.detail.saveError": "No se pudo actualizar el deal.",
378
706
  "customers.deals.detail.saveSuccess": "Deal actualizado.",
707
+ "customers.deals.detail.stageMenu.description": "Mueve el deal sin abrir el formulario.",
708
+ "customers.deals.detail.stageMenu.title": "Actualizar etapa del pipeline",
709
+ "customers.deals.detail.stageUpdateError": "No se pudo actualizar la etapa del deal.",
710
+ "customers.deals.detail.stageUpdateSuccess": "La etapa del deal se actualizó.",
379
711
  "customers.deals.detail.summary": "{{status}} · {{pipeline}}",
380
712
  "customers.deals.detail.tabs.activities": "Actividades",
713
+ "customers.deals.detail.tabs.changelog": "Changelog",
714
+ "customers.deals.detail.tabs.companies": "Companies",
715
+ "customers.deals.detail.tabs.companySingular": "Company",
716
+ "customers.deals.detail.tabs.files": "Files",
717
+ "customers.deals.detail.tabs.label": "Deal detail sections",
381
718
  "customers.deals.detail.tabs.notes": "Notas",
719
+ "customers.deals.detail.tabs.people": "People",
720
+ "customers.deals.detail.tabs.peopleSingular": "Person",
382
721
  "customers.deals.detail.title": "Detalles del deal",
722
+ "customers.deals.detail.unsavedCancel": "Keep editing",
723
+ "customers.deals.detail.unsavedConfirm": "Discard changes",
724
+ "customers.deals.detail.unsavedTitle": "Discard unsaved changes?",
383
725
  "customers.deals.detail.untitled": "Deal sin título",
726
+ "customers.deals.detail.updateSuccess": "Deal updated.",
727
+ "customers.deals.detail.won.closed": "Closed",
728
+ "customers.deals.detail.won.dealsThisWeek": "Deals this week",
729
+ "customers.deals.detail.won.pipeline": "Pipeline",
730
+ "customers.deals.detail.won.pipelineFallback": "Current pipeline",
731
+ "customers.deals.detail.won.primaryAction": "View sales report",
732
+ "customers.deals.detail.won.rank": "Quarter rank",
733
+ "customers.deals.detail.won.salesCycle": "Sales cycle",
734
+ "customers.deals.detail.won.secondaryAction": "Back to pipeline",
735
+ "customers.deals.detail.won.subtitle": "You are a sales machine!",
736
+ "customers.deals.detail.won.title": "Closed successfully",
384
737
  "customers.deals.edit.errorLoad": "No se pudo cargar el negocio.",
385
738
  "customers.deals.edit.errorUpdate": "No se pudo guardar el negocio.",
386
739
  "customers.deals.edit.missingId": "El ID del negocio es obligatorio.",
@@ -427,6 +780,8 @@
427
780
  "customers.deals.list.booleanYes": "Sí",
428
781
  "customers.deals.list.bulkDelete.action": "Delete selected",
429
782
  "customers.deals.list.bulkDelete.description": "This action cannot be undone.",
783
+ "customers.deals.list.bulkDelete.failed": "No se pudieron eliminar {count} deals",
784
+ "customers.deals.list.bulkDelete.partial": "{deleted} de {total} deals eliminados; {failed} fallaron",
430
785
  "customers.deals.list.bulkDelete.success": "{count} deals deleted",
431
786
  "customers.deals.list.bulkDelete.title": "Delete {count} deals?",
432
787
  "customers.deals.list.columns.companies": "Empresas",
@@ -478,25 +833,53 @@
478
833
  "customers.deals.pipeline.unassigned": "Sin etapa",
479
834
  "customers.deals.pipeline.unassignedDisabled": "Mover a \"Sin etapa\" no está disponible.",
480
835
  "customers.deals.pipeline.untitled": "Oportunidad sin título",
836
+ "customers.detail.comingSoon": "Coming soon",
481
837
  "customers.detail.saveGuide": "Los campos del perfil se guardan con el botón principal Guardar. Las etiquetas se guardan automáticamente. Las secciones relacionadas de abajo se guardan de forma independiente en sus propias pestañas y paneles.",
482
838
  "customers.dictionaryEntries.create": "Agregar entrada de diccionario de clientes",
483
839
  "customers.dictionaryEntries.delete": "Eliminar entrada de diccionario de clientes",
484
840
  "customers.dictionaryEntries.update": "Actualizar entrada de diccionario de clientes",
841
+ "customers.errors.access_denied": "Acceso denegado",
485
842
  "customers.errors.activity_required": "Se requiere el ID de la actividad",
486
843
  "customers.errors.address_required": "Se requiere el ID de la dirección",
487
844
  "customers.errors.assign_failed": "No se pudo asignar la etiqueta",
845
+ "customers.errors.assignable_staff_load_failed": "No se pudo cargar el personal asignable",
846
+ "customers.errors.authentication_required": "Se requiere autenticación",
488
847
  "customers.errors.comment_required": "Se requiere el ID de la nota",
848
+ "customers.errors.company_not_found": "Empresa no encontrada",
849
+ "customers.errors.company_people_load_failed": "No se pudieron cargar las personas vinculadas",
489
850
  "customers.errors.company_required": "Se requiere el ID de la empresa",
851
+ "customers.errors.customer_label_tables_missing": "Faltan las tablas de etiquetas de cliente. Ejecute yarn db:migrate.",
852
+ "customers.errors.customer_not_found": "Cliente no encontrado",
853
+ "customers.errors.deal_companies_load_failed": "No se pudieron cargar las empresas vinculadas",
854
+ "customers.errors.deal_not_closed": "La oportunidad no está cerrada",
855
+ "customers.errors.deal_not_found": "Oportunidad no encontrada",
856
+ "customers.errors.deal_people_load_failed": "No se pudieron cargar las personas vinculadas",
490
857
  "customers.errors.deal_required": "Se requiere el ID de la oportunidad",
858
+ "customers.errors.entity_not_found": "Entidad no encontrada",
859
+ "customers.errors.failed_to_assign_label": "No se pudo asignar la etiqueta",
860
+ "customers.errors.failed_to_assign_role": "No se pudo asignar el rol",
861
+ "customers.errors.failed_to_delete_role": "No se pudo eliminar el rol",
862
+ "customers.errors.failed_to_load_roles": "No se pudieron cargar los roles",
863
+ "customers.errors.failed_to_update_role": "No se pudo actualizar el rol",
491
864
  "customers.errors.interaction_required": "Se requiere el ID de la interaccion",
865
+ "customers.errors.internal": "Error interno del servidor",
492
866
  "customers.errors.internalError": "Error interno del servidor",
867
+ "customers.errors.invalid_date_time": "Fecha/hora no válida",
493
868
  "customers.errors.invalid_query": "Parámetros de consulta no válidos",
869
+ "customers.errors.kind_settings_load_failed": "No se pudo cargar la configuración de la categoría",
870
+ "customers.errors.label_duplicate": "Ya existe una etiqueta con este slug",
871
+ "customers.errors.label_not_found": "Etiqueta no encontrada",
872
+ "customers.errors.labels_load_failed": "No se pudieron cargar las etiquetas",
494
873
  "customers.errors.lookup_failed": "No se pudo cargar el diccionario",
495
874
  "customers.errors.organization_forbidden": "Organización no accesible",
496
875
  "customers.errors.organization_required": "Se requiere contexto de organización",
876
+ "customers.errors.person_company_link_not_found": "No se encontró el vínculo persona-empresa",
877
+ "customers.errors.person_not_found": "Persona no encontrada",
878
+ "customers.errors.person_profile_not_found": "Perfil de persona no encontrado",
497
879
  "customers.errors.person_required": "Se requiere el ID de la persona",
498
880
  "customers.errors.profile_must_be_object": "el perfil debe ser un objeto",
499
881
  "customers.errors.profile_unsupported_field": "Campo de perfil no soportado: {{field}}",
882
+ "customers.errors.role_not_found": "Rol no encontrado",
500
883
  "customers.errors.save_failed": "Error al guardar el registro del cliente.",
501
884
  "customers.errors.tag_required": "Se requiere el ID de la etiqueta",
502
885
  "customers.errors.tenant_required": "Se requiere contexto de inquilino",
@@ -511,6 +894,10 @@
511
894
  "customers.errors.unassign_failed": "No se pudo quitar la etiqueta",
512
895
  "customers.errors.unauthorized": "No autorizado",
513
896
  "customers.errors.validationFailed": "La validación falló",
897
+ "customers.fields.bankIban": "Banco / IBAN",
898
+ "customers.health.daysAgo": "{{days}} days ago",
899
+ "customers.health.lastContact": "Last contact",
900
+ "customers.health.today": "today",
514
901
  "customers.interactions.cancel.confirm": "Cancel this interaction?",
515
902
  "customers.interactions.cancel.error": "Failed to cancel interaction.",
516
903
  "customers.interactions.cancel.success": "Interaction canceled.",
@@ -538,6 +925,57 @@
538
925
  "customers.interactions.status.planned": "Planned",
539
926
  "customers.interactions.update.error": "Failed to update interaction.",
540
927
  "customers.interactions.update.success": "Interaction updated.",
928
+ "customers.linking.actions.cancel": "Cancelar",
929
+ "customers.linking.actions.save": "Guardar vínculos",
930
+ "customers.linking.actions.saving": "Guardando…",
931
+ "customers.linking.company.addNew": "Añadir nueva empresa",
932
+ "customers.linking.company.confirmButton": "Vincular empresa",
933
+ "customers.linking.company.dialogDescription": "Busca empresas existentes, actualiza la relación principal y vincúlalas sin salir de la página.",
934
+ "customers.linking.company.dialogSubtitle": "Vincular una empresa existente a esta persona",
935
+ "customers.linking.company.dialogSubtitleFor": "Vincular una empresa existente a {{name}}",
936
+ "customers.linking.company.dialogTitle": "Vincular empresas",
937
+ "customers.linking.company.searchEmpty": "No se encontraron empresas.",
938
+ "customers.linking.company.searchPlaceholder": "Buscar todas las empresas…",
939
+ "customers.linking.company.sectionLabel": "EMPRESAS COINCIDENTES",
940
+ "customers.linking.company.selectedEmpty": "Ninguna empresa seleccionada.",
941
+ "customers.linking.deal.addNew": "Añadir nueva oportunidad",
942
+ "customers.linking.deal.confirmButton": "Vincular oportunidad",
943
+ "customers.linking.deal.dialogDescription": "Busca oportunidades existentes para vincularlas a este registro.",
944
+ "customers.linking.deal.dialogTitle": "Vincular oportunidades",
945
+ "customers.linking.deal.orphanWarning": "Esta oportunidad no tiene otros elementos vinculados. Si la desvinculas más tarde, quedará inaccesible.",
946
+ "customers.linking.deal.orphanWarningTitle": "Oportunidad sin empresa",
947
+ "customers.linking.deal.searchEmpty": "No se encontraron oportunidades.",
948
+ "customers.linking.deal.searchPlaceholder": "Buscar todas las oportunidades…",
949
+ "customers.linking.deal.sectionLabel": "OPORTUNIDADES COINCIDENTES",
950
+ "customers.linking.deal.selectedEmpty": "Ninguna oportunidad seleccionada.",
951
+ "customers.linking.orphanWarning.dismiss": "Descartar aviso",
952
+ "customers.linking.pagination.next": "Página siguiente",
953
+ "customers.linking.pagination.nextShort": "Siguiente",
954
+ "customers.linking.pagination.pageOf": "Página {{page}} de {{total}}",
955
+ "customers.linking.pagination.previous": "Página anterior",
956
+ "customers.linking.pagination.previousShort": "Anterior",
957
+ "customers.linking.person.addNew": "Añadir nueva persona",
958
+ "customers.linking.person.confirmButton": "Vincular persona",
959
+ "customers.linking.person.dialogDescription": "Busca personas existentes y vincúlalas a este registro sin salir de la página.",
960
+ "customers.linking.person.dialogTitle": "Vincular personas",
961
+ "customers.linking.person.searchEmpty": "No se encontraron personas.",
962
+ "customers.linking.person.searchPlaceholder": "Buscar todas las personas…",
963
+ "customers.linking.person.sectionLabel": "CONTACTOS COINCIDENTES",
964
+ "customers.linking.person.selectedEmpty": "Ninguna persona seleccionada.",
965
+ "customers.linking.preview.empty": "Selecciona una entrada a la izquierda para ver detalles aquí.",
966
+ "customers.linking.preview.label": "Vista previa",
967
+ "customers.linking.preview.loading": "Cargando detalles…",
968
+ "customers.linking.primary.badge": "Principal",
969
+ "customers.linking.primary.setAction": "Marcar como principal",
970
+ "customers.linking.resultsCount": "{{count}} resultados",
971
+ "customers.linking.searchResults": "Resultados de la búsqueda",
972
+ "customers.linking.searching": "Buscando…",
973
+ "customers.linking.selectEntity": "Seleccionar {{name}}",
974
+ "customers.linking.selected.clearAll": "Limpiar",
975
+ "customers.linking.selected.count": "{{count}} seleccionados",
976
+ "customers.linking.selected.remove": "Eliminar",
977
+ "customers.linking.selected.title": "Seleccionados",
978
+ "customers.linking.settings.label": "Ajustes del vínculo",
541
979
  "customers.messageObjects.company.title": "Empresa",
542
980
  "customers.messageObjects.deal.title": "Trato",
543
981
  "customers.messageObjects.notFound": "No encontrado",
@@ -554,12 +992,53 @@
554
992
  "customers.notifications.deal.lost.title": "Negocio perdido",
555
993
  "customers.notifications.deal.won.body": "{dealTitle} se ha marcado como ganado{dealValue, select, other { ({dealValue})}}",
556
994
  "customers.notifications.deal.won.title": "Negocio ganado",
995
+ "customers.people.card.defaultStage": "cliente",
996
+ "customers.people.card.linkedOn": "Vinculado {{date}}",
997
+ "customers.people.card.more": "Más",
998
+ "customers.people.card.open": "Open person",
999
+ "customers.people.card.source": "Source",
1000
+ "customers.people.card.toggleStar": "Alternar estrella",
1001
+ "customers.people.card.unlink": "Unlink",
557
1002
  "customers.people.create.title": "Crear persona",
1003
+ "customers.people.createDialog.auto": "auto",
1004
+ "customers.people.createDialog.autoLink": "auto-linked to company",
1005
+ "customers.people.createDialog.cancel": "Cancel",
1006
+ "customers.people.createDialog.company": "Company",
1007
+ "customers.people.createDialog.contact": "Contact",
1008
+ "customers.people.createDialog.creating": "Creating...",
1009
+ "customers.people.createDialog.description": "Description",
1010
+ "customers.people.createDialog.displayNamePreview": "Display name preview",
1011
+ "customers.people.createDialog.editName": "Edit name",
1012
+ "customers.people.createDialog.email": "Primary email",
1013
+ "customers.people.createDialog.error": "Failed to create person",
1014
+ "customers.people.createDialog.firstName": "First name",
1015
+ "customers.people.createDialog.jobTitle": "Job title",
1016
+ "customers.people.createDialog.lastName": "Last name",
1017
+ "customers.people.createDialog.notes": "Notes",
1018
+ "customers.people.createDialog.personalData": "Personal data",
1019
+ "customers.people.createDialog.phone": "Primary phone",
1020
+ "customers.people.createDialog.position": "Position & company",
1021
+ "customers.people.createDialog.required": "Fields marked * are required",
1022
+ "customers.people.createDialog.submit": "Create person",
1023
+ "customers.people.createDialog.success": "Person created and linked to company",
1024
+ "customers.people.createDialog.title": "Add new person",
1025
+ "customers.people.decisionMakers.count": "{{count}} key people",
1026
+ "customers.people.decisionMakers.label": "Decision Makers",
1027
+ "customers.people.decisionMakers.more": "more",
1028
+ "customers.people.decisionMakers.sendInvitation": "Send invitation",
558
1029
  "customers.people.detail.actions.addDeal": "Agregar oportunidad",
559
1030
  "customers.people.detail.actions.backToList": "Volver a personas",
1031
+ "customers.people.detail.actions.cancel": "Cancelar",
1032
+ "customers.people.detail.actions.delete": "Delete",
1033
+ "customers.people.detail.actions.editEmail": "Edit email",
1034
+ "customers.people.detail.actions.editPhone": "Edit phone",
1035
+ "customers.people.detail.actions.history": "History",
1036
+ "customers.people.detail.actions.linkCompany": "Link company",
560
1037
  "customers.people.detail.actions.linkTodo": "Vincular tarea",
561
1038
  "customers.people.detail.actions.manageAddresses": "Gestionar direcciones",
562
- "customers.people.detail.actions.manageTags": "Gestionar etiquetas",
1039
+ "customers.people.detail.actions.manageTags": "Editar etiquetas",
1040
+ "customers.people.detail.actions.more": "More",
1041
+ "customers.people.detail.actions.save": "Save",
563
1042
  "customers.people.detail.activities.add": "Agregar actividad",
564
1043
  "customers.people.detail.activities.addTitle": "Agregar actividad",
565
1044
  "customers.people.detail.activities.bodyPlaceholder": "Describe la interacción",
@@ -577,6 +1056,7 @@
577
1056
  "customers.people.detail.activities.fields.occurredAt": "Ocurrió / ocurrirá el",
578
1057
  "customers.people.detail.activities.fields.subject": "Asunto",
579
1058
  "customers.people.detail.activities.fields.type": "Tipo",
1059
+ "customers.people.detail.activities.filterLabel": "FILTRAR:",
580
1060
  "customers.people.detail.activities.form.customFields": "Campos personalizados",
581
1061
  "customers.people.detail.activities.form.details": "Detalles de la actividad",
582
1062
  "customers.people.detail.activities.invalidDate": "Introduce una fecha y hora válidas",
@@ -585,6 +1065,7 @@
585
1065
  "customers.people.detail.activities.loadMore": "Cargar más actividades",
586
1066
  "customers.people.detail.activities.loading": "Cargando actividades…",
587
1067
  "customers.people.detail.activities.loggedBy": "Registrado por {{user}}",
1068
+ "customers.people.detail.activities.moreFilters": "Más",
588
1069
  "customers.people.detail.activities.noDate": "Sin fecha.",
589
1070
  "customers.people.detail.activities.save": "Guardar actividad (⌘/Ctrl + Enter)",
590
1071
  "customers.people.detail.activities.saving": "Guardando…",
@@ -653,6 +1134,50 @@
653
1134
  "customers.people.detail.addresses.validation.required": "Introduce {{field}}",
654
1135
  "customers.people.detail.addresses.validation.tooLong": "{{field}} es demasiado largo (máximo {{max}} caracteres)",
655
1136
  "customers.people.detail.anonymous": "Anónimo",
1137
+ "customers.people.detail.companies.addAction": "Link company",
1138
+ "customers.people.detail.companies.addError": "Failed to link company.",
1139
+ "customers.people.detail.companies.addSuccess": "Company linked.",
1140
+ "customers.people.detail.companies.adding": "Linking…",
1141
+ "customers.people.detail.companies.alreadyLinked": "This company is already linked.",
1142
+ "customers.people.detail.companies.clearVisible": "Limpiar visibles",
1143
+ "customers.people.detail.companies.dialogApply": "Aplicar",
1144
+ "customers.people.detail.companies.dialogCancel": "Cancelar",
1145
+ "customers.people.detail.companies.dialogDescription": "Busca una o más empresas, actualiza la relación principal y elimina vínculos sin salir de la página.",
1146
+ "customers.people.detail.companies.dialogSaving": "Guardando…",
1147
+ "customers.people.detail.companies.dialogTitle": "Administrar empresas vinculadas",
1148
+ "customers.people.detail.companies.linkLoadError": "Error al cargar las empresas.",
1149
+ "customers.people.detail.companies.loadError": "Failed to load companies.",
1150
+ "customers.people.detail.companies.loadMore": "Cargar más empresas",
1151
+ "customers.people.detail.companies.loading": "Loading companies…",
1152
+ "customers.people.detail.companies.makePrimary": "Set primary",
1153
+ "customers.people.detail.companies.manageAction": "Administrar vínculos",
1154
+ "customers.people.detail.companies.manageError": "Error al actualizar las empresas vinculadas.",
1155
+ "customers.people.detail.companies.manageSuccess": "Empresas vinculadas actualizadas.",
1156
+ "customers.people.detail.companies.manageTitle": "Administrar empresas vinculadas",
1157
+ "customers.people.detail.companies.noSearchResults": "No linked companies match your search.",
1158
+ "customers.people.detail.companies.primaryBadge": "Principal",
1159
+ "customers.people.detail.companies.primaryError": "Failed to update the primary company.",
1160
+ "customers.people.detail.companies.primaryPending": "Updating…",
1161
+ "customers.people.detail.companies.primarySuccess": "Primary company updated.",
1162
+ "customers.people.detail.companies.removeAction": "Remove",
1163
+ "customers.people.detail.companies.removeError": "Failed to remove company.",
1164
+ "customers.people.detail.companies.removeSuccess": "Company removed.",
1165
+ "customers.people.detail.companies.removing": "Removing…",
1166
+ "customers.people.detail.companies.searchAllPlaceholder": "Buscar todas las empresas…",
1167
+ "customers.people.detail.companies.searchEmpty": "No se encontraron empresas coincidentes.",
1168
+ "customers.people.detail.companies.searchLoading": "Buscando empresas…",
1169
+ "customers.people.detail.companies.searchPlaceholder": "Search linked companies…",
1170
+ "customers.people.detail.companies.searchResults": "Resultados de búsqueda",
1171
+ "customers.people.detail.companies.selectVisible": "Seleccionar visibles",
1172
+ "customers.people.detail.companies.selectedEmpty": "No se han seleccionado empresas.",
1173
+ "customers.people.detail.companies.selectedSummary": "{{count}} empresas",
1174
+ "customers.people.detail.companies.selectedTitle": "Empresas seleccionadas",
1175
+ "customers.people.detail.companies.setPrimary": "Set primary",
1176
+ "customers.people.detail.companies.sortNameAsc": "Sort: Name A-Z",
1177
+ "customers.people.detail.companies.sortNameDesc": "Sort: Name Z-A",
1178
+ "customers.people.detail.companies.sortRecent": "Sort: Recently active",
1179
+ "customers.people.detail.companies.subtitle": "Link one or more companies and choose the primary relationship for this person.",
1180
+ "customers.people.detail.companies.summary": "{{count}} empresas vinculadas",
656
1181
  "customers.people.detail.company.current": "{{company}}",
657
1182
  "customers.people.detail.company.empty": "Ninguna empresa asignada",
658
1183
  "customers.people.detail.company.label": "Empresa",
@@ -663,11 +1188,13 @@
663
1188
  "customers.people.detail.customFields.defineFirst": "Define el primer campo",
664
1189
  "customers.people.detail.deals.addTitle": "Crear oportunidad",
665
1190
  "customers.people.detail.deals.cancel": "Cancelar",
1191
+ "customers.people.detail.deals.closing": "Closing…",
666
1192
  "customers.people.detail.deals.currencyInvalid": "La divisa debe tener 3 letras",
667
1193
  "customers.people.detail.deals.deleteConfirm": "¿Eliminar esta oportunidad? Esta acción no se puede deshacer.",
668
1194
  "customers.people.detail.deals.deleteError": "No se pudo eliminar la oportunidad.",
669
1195
  "customers.people.detail.deals.deleteSuccess": "Oportunidad eliminada.",
670
1196
  "customers.people.detail.deals.descriptionTooLong": "La descripción es demasiado larga",
1197
+ "customers.people.detail.deals.edit": "Abrir detalles de la oportunidad",
671
1198
  "customers.people.detail.deals.editTitle": "Editar oportunidad",
672
1199
  "customers.people.detail.deals.error": "No se pudo guardar la oportunidad",
673
1200
  "customers.people.detail.deals.expectedCloseInvalid": "Introduce una fecha de cierre válida",
@@ -684,9 +1211,14 @@
684
1211
  "customers.people.detail.deals.form.associations": "Asociaciones",
685
1212
  "customers.people.detail.deals.form.customFields": "Campos personalizados",
686
1213
  "customers.people.detail.deals.form.details": "Detalles de la oportunidad",
1214
+ "customers.people.detail.deals.linkError": "No se pudo vincular la oportunidad.",
1215
+ "customers.people.detail.deals.linkExisting": "Vincular oportunidad existente",
1216
+ "customers.people.detail.deals.linkSuccess": "Oportunidad vinculada.",
687
1217
  "customers.people.detail.deals.loadError": "No se pudieron cargar las oportunidades.",
688
1218
  "customers.people.detail.deals.loadMore": "Cargar más oportunidades",
689
1219
  "customers.people.detail.deals.loading": "Cargando oportunidades…",
1220
+ "customers.people.detail.deals.markLost": "Mark lost",
1221
+ "customers.people.detail.deals.markLostSuccess": "Deal marked as lost.",
690
1222
  "customers.people.detail.deals.openDeal": "Abrir oportunidad",
691
1223
  "customers.people.detail.deals.pipelineIdInvalid": "Seleccione un pipeline válido.",
692
1224
  "customers.people.detail.deals.pipelineStageIdInvalid": "Seleccione una etapa de pipeline válida.",
@@ -701,12 +1233,22 @@
701
1233
  "customers.people.detail.deals.success": "Oportunidad creada",
702
1234
  "customers.people.detail.deals.titleRequired": "El título es obligatorio",
703
1235
  "customers.people.detail.deals.titleTooLong": "El nombre es demasiado largo",
1236
+ "customers.people.detail.deals.unlinkConfirmCompany": "¿Desvincular esta oportunidad de esta empresa?",
1237
+ "customers.people.detail.deals.unlinkConfirmPerson": "¿Desvincular esta oportunidad de esta persona?",
1238
+ "customers.people.detail.deals.unlinkDescription": "La oportunidad seguirá disponible en su propia página de detalle.",
1239
+ "customers.people.detail.deals.unlinkError": "No se pudo desvincular la oportunidad.",
1240
+ "customers.people.detail.deals.unlinkSuccess": "Oportunidad desvinculada.",
1241
+ "customers.people.detail.deals.unlinking": "Desvinculando…",
704
1242
  "customers.people.detail.deals.update": "Actualizar oportunidad (⌘/Ctrl + Enter)",
1243
+ "customers.people.detail.deals.updateError": "Failed to update deal.",
705
1244
  "customers.people.detail.deals.updateSuccess": "Oportunidad actualizada.",
706
1245
  "customers.people.detail.deals.valueInvalid": "Introduce un importe válido",
1246
+ "customers.people.detail.deleteConfirmDescription": "Esta acción no se puede deshacer.",
1247
+ "customers.people.detail.deleteConfirmTitle": "¿Eliminar persona?",
707
1248
  "customers.people.detail.empty.activities": "Sin actividad",
708
1249
  "customers.people.detail.empty.addresses": "Sin direcciones",
709
1250
  "customers.people.detail.empty.comments": "Sin notas",
1251
+ "customers.people.detail.empty.companies": "No company linked to this person.",
710
1252
  "customers.people.detail.empty.deals": "Sin oportunidades",
711
1253
  "customers.people.detail.empty.tags": "Sin etiquetas",
712
1254
  "customers.people.detail.empty.todos": "Sin tareas vinculadas",
@@ -732,6 +1274,12 @@
732
1274
  "customers.people.detail.fields.source": "Origen",
733
1275
  "customers.people.detail.fields.timezone": "Zona horaria",
734
1276
  "customers.people.detail.fields.twitter": "Twitter",
1277
+ "customers.people.detail.files.subtitle": "Upload and manage files linked to this person.",
1278
+ "customers.people.detail.header.at": "at",
1279
+ "customers.people.detail.header.companies": "Companies",
1280
+ "customers.people.detail.header.linkCompany": "Link company",
1281
+ "customers.people.detail.header.more": "more",
1282
+ "customers.people.detail.header.primary": "PRINCIPAL",
735
1283
  "customers.people.detail.highlights.company": "Empresa",
736
1284
  "customers.people.detail.highlights.nextInteraction": "Próxima interacción",
737
1285
  "customers.people.detail.highlights.nextInteractionHint": "Muestra la próxima interacción planificada. Crea una tarea con fecha de vencimiento para verla aquí.",
@@ -831,9 +1379,13 @@
831
1379
  "customers.people.detail.sections.todos": "Tareas",
832
1380
  "customers.people.detail.tabs.activities": "Actividades",
833
1381
  "customers.people.detail.tabs.addresses": "Direcciones",
1382
+ "customers.people.detail.tabs.changelog": "Registro de cambios",
1383
+ "customers.people.detail.tabs.companies": "Companies",
834
1384
  "customers.people.detail.tabs.deals": "Oportunidades",
1385
+ "customers.people.detail.tabs.files": "Files",
835
1386
  "customers.people.detail.tabs.label": "Secciones de detalles de la persona",
836
1387
  "customers.people.detail.tabs.notes": "Notas",
1388
+ "customers.people.detail.tabs.personalData": "Personal data",
837
1389
  "customers.people.detail.tabs.tasks": "Tareas",
838
1390
  "customers.people.detail.tags.assignError": "No se pudo asignar la etiqueta.",
839
1391
  "customers.people.detail.tags.autoSaveHint": "Las etiquetas se guardan automáticamente después de cada cambio.",
@@ -899,6 +1451,9 @@
899
1451
  "customers.people.detail.tasks.updateSuccess": "Tarea actualizada",
900
1452
  "customers.people.detail.tasks.viewAll": "Ver todas las tareas",
901
1453
  "customers.people.detail.title": "Detalles de la persona",
1454
+ "customers.people.detail.untitled": "Untitled",
1455
+ "customers.people.detail.zones.collapse": "Contraer panel",
1456
+ "customers.people.detail.zones.expand": "Expandir panel",
902
1457
  "customers.people.form.activityType.placeholder": "Selecciona un tipo de actividad",
903
1458
  "customers.people.form.addressType.placeholder": "Seleccionar tipo de dirección",
904
1459
  "customers.people.form.company": "Empresa",
@@ -960,9 +1515,13 @@
960
1515
  "customers.people.form.error.create": "No se pudo crear la persona",
961
1516
  "customers.people.form.firstName": "Nombre",
962
1517
  "customers.people.form.groups.addresses": "Direcciones",
1518
+ "customers.people.form.groups.companyRole": "Company & role",
963
1519
  "customers.people.form.groups.custom": "Campos personalizados",
1520
+ "customers.people.form.groups.customAttributes": "Custom attributes",
964
1521
  "customers.people.form.groups.details": "Detalles",
965
1522
  "customers.people.form.groups.notes": "Notas",
1523
+ "customers.people.form.groups.personalData": "Personal data",
1524
+ "customers.people.form.groups.roles": "My roles",
966
1525
  "customers.people.form.groups.social": "Social y enlaces",
967
1526
  "customers.people.form.jobTitle": "Cargo",
968
1527
  "customers.people.form.jobTitle.placeholder": "Selecciona un cargo",
@@ -1000,6 +1559,8 @@
1000
1559
  "customers.people.list.booleanYes": "Sí",
1001
1560
  "customers.people.list.bulkDelete.action": "Delete selected",
1002
1561
  "customers.people.list.bulkDelete.description": "This action cannot be undone.",
1562
+ "customers.people.list.bulkDelete.failed": "No se pudieron eliminar {count} personas",
1563
+ "customers.people.list.bulkDelete.partial": "{deleted} de {total} personas eliminadas; {failed} fallaron",
1003
1564
  "customers.people.list.bulkDelete.success": "{count} people deleted",
1004
1565
  "customers.people.list.bulkDelete.title": "Delete {count} people?",
1005
1566
  "customers.people.list.columns.email": "Correo electrónico",
@@ -1028,6 +1589,44 @@
1028
1589
  "customers.people.list.noValue": "Sin datos",
1029
1590
  "customers.people.list.searchPlaceholder": "Buscar personas",
1030
1591
  "customers.people.list.title": "Personas",
1592
+ "customers.people.mobile.zoneSwitcher.activity": "Actividad",
1593
+ "customers.people.mobile.zoneSwitcher.ariaLabel": "Selector de zona",
1594
+ "customers.people.mobile.zoneSwitcher.details": "Detalles",
1595
+ "customers.personTags.activeCount": "{{count}} selected",
1596
+ "customers.personTags.cancel": "Cancel",
1597
+ "customers.personTags.category.activity-types": "Activity",
1598
+ "customers.personTags.category.deal-statuses": "Deal status",
1599
+ "customers.personTags.category.industries": "Industry",
1600
+ "customers.personTags.category.job-titles": "Cargo",
1601
+ "customers.personTags.category.labels": "Labels",
1602
+ "customers.personTags.category.lifecycle-stages": "Lifecycle",
1603
+ "customers.personTags.category.person-company-roles": "Roles",
1604
+ "customers.personTags.category.renewal-quarters": "Trimestre de renovación",
1605
+ "customers.personTags.category.sources": "Source",
1606
+ "customers.personTags.category.statuses": "Status",
1607
+ "customers.personTags.category.tags": "Etiquetas",
1608
+ "customers.personTags.category.temperature": "Temperatura",
1609
+ "customers.personTags.createLabelError": "Failed to create label",
1610
+ "customers.personTags.description.customCategory": "Categoría CRM personalizada: {{name}}.",
1611
+ "customers.personTags.description.industries": "La industria usada para clasificar esta empresa.",
1612
+ "customers.personTags.description.jobTitles": "El cargo o rol usado para esta persona.",
1613
+ "customers.personTags.description.labels": "Etiquetas rapidas que puedes crear directamente para este registro.",
1614
+ "customers.personTags.description.tags": "Etiquetas compartidas de CRM que pueden asignarse a muchos registros.",
1615
+ "customers.personTags.emptyCategory": "Todavia no se han agregado elementos a esta categoria.",
1616
+ "customers.personTags.emptyDictionaryCategory": "Todavia no hay opciones configuradas para esta categoria.",
1617
+ "customers.personTags.emptySearchResults": "Ninguna opcion coincide con la busqueda actual.",
1618
+ "customers.personTags.labels": "Labels",
1619
+ "customers.personTags.loading": "Loading...",
1620
+ "customers.personTags.newLabel": "New label",
1621
+ "customers.personTags.newLabelPlaceholder": "Label name...",
1622
+ "customers.personTags.newTag": "Nueva etiqueta",
1623
+ "customers.personTags.save": "Save",
1624
+ "customers.personTags.saveError": "Failed to save tags",
1625
+ "customers.personTags.saveSuccess": "Tags updated.",
1626
+ "customers.personTags.saving": "Saving...",
1627
+ "customers.personTags.searchPlaceholder": "Buscar en {{category}}...",
1628
+ "customers.personTags.settingsButton": "Configuración de etiquetas",
1629
+ "customers.personTags.title": "Editar etiquetas",
1031
1630
  "customers.pipelines.actions.create": "Add pipeline",
1032
1631
  "customers.pipelines.actions.delete": "Delete",
1033
1632
  "customers.pipelines.actions.edit": "Edit",
@@ -1090,7 +1689,247 @@
1090
1689
  "customers.pipelines.stages.moveUp": "Move up",
1091
1690
  "customers.pipelines.stages.title": "Stages",
1092
1691
  "customers.pipelines.title": "Sales Pipelines",
1692
+ "customers.roles.addRole": "Add role",
1693
+ "customers.roles.assign": "Assign",
1694
+ "customers.roles.assignError": "Failed to assign role",
1695
+ "customers.roles.assignPlaceholder": "Search staff...",
1696
+ "customers.roles.assigned": "Role assigned",
1697
+ "customers.roles.assignedDaysAgo": "Assigned {{count}} days ago",
1698
+ "customers.roles.assignedToday": "Assigned today",
1699
+ "customers.roles.assignedYesterday": "Assigned yesterday",
1700
+ "customers.roles.assigning": "Assigning...",
1701
+ "customers.roles.call": "Call",
1702
+ "customers.roles.cancelAdd": "Cancel",
1703
+ "customers.roles.changeUser": "Change user",
1704
+ "customers.roles.choosePerson": "Elegir persona",
1705
+ "customers.roles.configureRoleTypes": "Configurar tipos de rol",
1706
+ "customers.roles.dialog.assign": "Assign role",
1707
+ "customers.roles.dialog.change": "Change",
1708
+ "customers.roles.dialog.conflict": "Conflict: {{roles}}",
1709
+ "customers.roles.dialog.constraint": "One person per role. The assignment can be changed at any time.",
1710
+ "customers.roles.dialog.defaultEntity.company": "this company",
1711
+ "customers.roles.dialog.defaultEntity.person": "this person",
1712
+ "customers.roles.dialog.footerNote": "One person per role · can be changed at any time",
1713
+ "customers.roles.dialog.loadMore": "Cargar más",
1714
+ "customers.roles.dialog.loadingMore": "Cargando más...",
1715
+ "customers.roles.dialog.next": "Next",
1716
+ "customers.roles.dialog.noAvailableRoles": "All available role types are already assigned.",
1717
+ "customers.roles.dialog.noResults": "No matching team members found.",
1718
+ "customers.roles.dialog.preview": "Assignment preview",
1719
+ "customers.roles.dialog.roleTypeLabel": "Role type",
1720
+ "customers.roles.dialog.searchPlaceholder": "Search by name, e-mail or team...",
1721
+ "customers.roles.dialog.sourceBadge.dictionary": "Diccionario",
1722
+ "customers.roles.dialog.step1": "Role type",
1723
+ "customers.roles.dialog.step2": "Select person",
1724
+ "customers.roles.dialog.step3": "Confirm",
1725
+ "customers.roles.dialog.subtitle": "Multi-role assignment for {{name}}",
1726
+ "customers.roles.dialog.team.all": "All",
1727
+ "customers.roles.dialog.team.unassigned": "No team",
1728
+ "customers.roles.dialog.teamLabel": "Select a team member",
1729
+ "customers.roles.dialog.title": "Assign role",
1730
+ "customers.roles.email": "Send email",
1731
+ "customers.roles.emailUnavailable": "Email unavailable",
1732
+ "customers.roles.emptySlot": "Not assigned",
1733
+ "customers.roles.emptyState": "Todavía no hay roles asignados. Haz clic abajo para asignar una persona.",
1734
+ "customers.roles.groupTitle": "Roles",
1735
+ "customers.roles.loadFailed": "No se pudieron cargar las asignaciones de rol.",
1736
+ "customers.roles.loading": "Loading roles...",
1737
+ "customers.roles.moreActions": "More actions",
1738
+ "customers.roles.noRoleTypesDescription": "Crea primero tipos de rol en la configuración de clientes antes de asignar responsables aquí.",
1739
+ "customers.roles.noRoleTypesTitle": "No hay tipos de rol configurados",
1740
+ "customers.roles.phoneUnavailable": "Phone unavailable",
1741
+ "customers.roles.remove": "Remove role",
1742
+ "customers.roles.removeConfirm": "Remove this role assignment?",
1743
+ "customers.roles.removeFailed": "No se pudo eliminar la asignación de rol.",
1744
+ "customers.roles.roleTypeLabel": "Role type",
1745
+ "customers.roles.searchPlaceholder": "Search team member...",
1746
+ "customers.roles.searchUser": "Search staff...",
1747
+ "customers.roles.selectRoleType": "Select role type...",
1748
+ "customers.roles.subtitle": "Who is responsible for this relationship on your side",
1749
+ "customers.roles.subtitle.company": "Who is responsible for this company on your side",
1750
+ "customers.roles.subtitle.person": "Who owns the relationship on your side",
1751
+ "customers.roles.updateFailed": "No se pudo actualizar la asignación de rol.",
1752
+ "customers.roles.userLabel": "Assign to",
1753
+ "customers.schedule.addLink": "Add link",
1754
+ "customers.schedule.addParticipant": "Add participant",
1755
+ "customers.schedule.addVisibleLinks": "Agregar todos los visibles",
1756
+ "customers.schedule.addVisibleParticipants": "Agregar todos los visibles",
1757
+ "customers.schedule.allDay": "All day",
1758
+ "customers.schedule.body": "Contenido",
1759
+ "customers.schedule.cancel": "Cancel",
1760
+ "customers.schedule.conflict.description": "Overlaps with: {{items}}",
1761
+ "customers.schedule.conflict.title": "Calendar conflict",
1762
+ "customers.schedule.context": "On timeline: {{name}}",
1763
+ "customers.schedule.date": "Date",
1764
+ "customers.schedule.description": "Description",
1765
+ "customers.schedule.descriptionPlaceholder": "Add details...",
1766
+ "customers.schedule.discardConfirm.cancel": "Seguir editando",
1767
+ "customers.schedule.discardConfirm.confirm": "Descartar",
1768
+ "customers.schedule.discardConfirm.description": "Tienes cambios sin guardar en esta actividad. Guárdalos primero o continúa para descartarlos.",
1769
+ "customers.schedule.discardConfirm.title": "¿Descartar cambios sin guardar?",
1770
+ "customers.schedule.dueDate": "Fecha límite",
1771
+ "customers.schedule.duration": "Duration",
1772
+ "customers.schedule.editTitle": "Editar actividad",
1773
+ "customers.schedule.error": "Failed to schedule activity",
1774
+ "customers.schedule.guestPerm.invite": "Invite others",
1775
+ "customers.schedule.guestPerm.modify": "Modify",
1776
+ "customers.schedule.guestPerm.seeList": "See list",
1777
+ "customers.schedule.guestPermissions": "Guest permissions:",
1778
+ "customers.schedule.linkType.company": "Company",
1779
+ "customers.schedule.linkType.deal": "Deal",
1780
+ "customers.schedule.linkType.offer": "Oferta",
1781
+ "customers.schedule.linkedEntities": "Linked entities",
1782
+ "customers.schedule.loadMore": "Load more",
1783
+ "customers.schedule.location": "Location",
1784
+ "customers.schedule.locationPlaceholder": "Add location or meeting link...",
1785
+ "customers.schedule.noResults": "No results",
1786
+ "customers.schedule.participants": "Participants",
1787
+ "customers.schedule.recurrence.active": "Repeats",
1788
+ "customers.schedule.recurrence.afterCount": "After {{count}} occurrences",
1789
+ "customers.schedule.recurrence.edit": "Editar",
1790
+ "customers.schedule.recurrence.ends": "Ends",
1791
+ "customers.schedule.recurrence.never": "Never",
1792
+ "customers.schedule.recurrence.none": "No repeat",
1793
+ "customers.schedule.recurrence.onDate": "On date",
1794
+ "customers.schedule.recurrence.title": "Recurrence",
1795
+ "customers.schedule.reminder": "Reminder",
1796
+ "customers.schedule.reminder.none": "None",
1797
+ "customers.schedule.removeLink": "Eliminar enlace",
1798
+ "customers.schedule.removeParticipant": "Eliminar participante",
1799
+ "customers.schedule.rsvp.accepted": "accepted",
1800
+ "customers.schedule.rsvp.declined": "declined",
1801
+ "customers.schedule.rsvp.label": "Responses:",
1802
+ "customers.schedule.rsvp.pending": "pending",
1803
+ "customers.schedule.save": "Save activity",
1804
+ "customers.schedule.saved": "Activity scheduled",
1805
+ "customers.schedule.saving": "Saving...",
1806
+ "customers.schedule.searchEntity": "Search...",
1807
+ "customers.schedule.searchParticipant": "Search team members...",
1808
+ "customers.schedule.searching": "Searching...",
1809
+ "customers.schedule.start": "Start",
1810
+ "customers.schedule.subject": "Asunto",
1811
+ "customers.schedule.title": "Schedule activity",
1812
+ "customers.schedule.titleLabel": "Title",
1813
+ "customers.schedule.titlePlaceholder": "Activity title...",
1814
+ "customers.schedule.types.call": "Call",
1815
+ "customers.schedule.types.email": "Email",
1816
+ "customers.schedule.types.meeting": "Meeting",
1817
+ "customers.schedule.types.task": "Task",
1818
+ "customers.schedule.update": "Actualizar actividad",
1819
+ "customers.schedule.visibility": "Visibility",
1820
+ "customers.schedule.visibility.public": "Public",
1821
+ "customers.schedule.visibility.team": "Team only",
1093
1822
  "customers.storage.nav.group": "Almacenamiento",
1823
+ "customers.tags.manage.addCategory": "Nueva categoría",
1824
+ "customers.tags.manage.addCategoryPlaceholder": "Nombre de la categoría...",
1825
+ "customers.tags.manage.addCategoryRequired": "Primero introduce un nombre de categoría.",
1826
+ "customers.tags.manage.addValue": "Add new value",
1827
+ "customers.tags.manage.badge.required": "REQUIRED",
1828
+ "customers.tags.manage.badge.system": "SYSTEM",
1829
+ "customers.tags.manage.categoryMode.multi": "Múltiple",
1830
+ "customers.tags.manage.categoryMode.single": "Única",
1831
+ "customers.tags.manage.close": "Close",
1832
+ "customers.tags.manage.closeDialog": "Close",
1833
+ "customers.tags.manage.columns.color": "Color",
1834
+ "customers.tags.manage.columns.icon": "Icon",
1835
+ "customers.tags.manage.columns.label": "Label",
1836
+ "customers.tags.manage.columns.slug": "Slug",
1837
+ "customers.tags.manage.createCategory": "Crear categoría",
1838
+ "customers.tags.manage.createCategoryError": "No se pudo crear la categoría.",
1839
+ "customers.tags.manage.createCategorySuccess": "Categoría creada.",
1840
+ "customers.tags.manage.creatingCategory": "Creando...",
1841
+ "customers.tags.manage.customCategoryDescription": "Categoría CRM personalizada: {{name}}.",
1842
+ "customers.tags.manage.customCategoryNoteDescription": "Usa esta categoría para agrupar y gestionar valores adicionales de CRM para tu equipo.",
1843
+ "customers.tags.manage.customCategoryNoteTitle": "Categoría personalizada",
1844
+ "customers.tags.manage.defaultEntry": "default when creating new records",
1845
+ "customers.tags.manage.delete": "Delete",
1846
+ "customers.tags.manage.description.customers.custom_tags": "Optional tenant-specific tags for people, companies, and linked deals.",
1847
+ "customers.tags.manage.description.customers.lifecycle_stage": "Pipeline-aligned lifecycle values shared across CRM detail pages.",
1848
+ "customers.tags.manage.description.customers.renewal_quarter": "Quarter-based renewal helpers displayed in CRM detail cards and pipeline summaries.",
1849
+ "customers.tags.manage.description.customers.source": "Acquisition source labels used in Zone 1 forms and CRM summary badges.",
1850
+ "customers.tags.manage.description.customers.status": "Single-select values visible on the hero area of person, company, and deal cards.",
1851
+ "customers.tags.manage.description.customers.temperature": "Hot, warm, and cold style indicators used in the person and company header badges.",
1852
+ "customers.tags.manage.dragHandle": "Arrastra para reordenar",
1853
+ "customers.tags.manage.entryNew": "New dictionary value",
1854
+ "customers.tags.manage.entrySaved": "Existing dictionary value",
1855
+ "customers.tags.manage.icon.none": "No icon",
1856
+ "customers.tags.manage.loadError": "Failed to load tag dictionaries.",
1857
+ "customers.tags.manage.loading": "Loading...",
1858
+ "customers.tags.manage.moveDown": "Mover abajo",
1859
+ "customers.tags.manage.moveUp": "Mover arriba",
1860
+ "customers.tags.manage.noDictionaries": "No tag categories found. Configure dictionaries in Settings.",
1861
+ "customers.tags.manage.noMatches": "No entries match the current search.",
1862
+ "customers.tags.manage.noteDescription.customers.custom_tags": "Add lightweight CRM-specific labels here when the built-in status dictionaries are not enough.",
1863
+ "customers.tags.manage.noteDescription.customers.lifecycle_stage": "Use lifecycle stages to keep person and company headers visually consistent across CRM detail views.",
1864
+ "customers.tags.manage.noteDescription.customers.renewal_quarter": "Keep quarter naming consistent so renewal filters remain readable across the CRM.",
1865
+ "customers.tags.manage.noteDescription.customers.source": "These values are reused by customer forms and reporting filters.",
1866
+ "customers.tags.manage.noteDescription.customers.status": "Status is required on customer cards. Existing rows can be edited, but this category should remain available tenant-wide.",
1867
+ "customers.tags.manage.noteDescription.customers.temperature": "Temperature values affect the visual emphasis of CRM header badges and deal context chips.",
1868
+ "customers.tags.manage.noteTitle.customers.custom_tags": "Custom tags",
1869
+ "customers.tags.manage.noteTitle.customers.lifecycle_stage": "Shared lifecycle values",
1870
+ "customers.tags.manage.noteTitle.customers.renewal_quarter": "Renewal planning",
1871
+ "customers.tags.manage.noteTitle.customers.source": "Source dictionary",
1872
+ "customers.tags.manage.noteTitle.customers.status": "System category",
1873
+ "customers.tags.manage.noteTitle.customers.temperature": "Sales temperature",
1874
+ "customers.tags.manage.openFull": "Manage tag dictionaries...",
1875
+ "customers.tags.manage.save": "Save changes",
1876
+ "customers.tags.manage.saveError": "Failed to save tag dictionaries.",
1877
+ "customers.tags.manage.saveSuccess": "Tag dictionaries updated.",
1878
+ "customers.tags.manage.saving": "Saving...",
1879
+ "customers.tags.manage.scrollLeft": "Desplazar categorías a la izquierda",
1880
+ "customers.tags.manage.scrollRight": "Desplazar categorías a la derecha",
1881
+ "customers.tags.manage.search": "Search values...",
1882
+ "customers.tags.manage.selectCategory": "Select a category",
1883
+ "customers.tags.manage.subtitle": "Tag dictionaries for the entire tenant",
1884
+ "customers.tags.manage.tenantNotice": "Changes apply to the entire tenant and are visible immediately.",
1885
+ "customers.tags.manage.title": "Manage tags",
1886
+ "customers.tags.manage.validation.required": "Each entry must have both a label and a slug before saving.",
1887
+ "customers.tasks.filters.all": "All",
1888
+ "customers.tasks.filters.mine": "Mine",
1889
+ "customers.tasks.filters.overdue": "Overdue",
1890
+ "customers.temperature.cold": "At Risk",
1891
+ "customers.temperature.cool": "Low Activity",
1892
+ "customers.temperature.high": "High Interest",
1893
+ "customers.temperature.hot": "Hot Client",
1894
+ "customers.temperature.low": "Low Activity",
1895
+ "customers.temperature.medium": "Engaged",
1896
+ "customers.temperature.neutral": "Engaged",
1897
+ "customers.temperature.warm": "High Interest",
1898
+ "customers.timeline.author": "by {{name}}",
1899
+ "customers.timeline.date.today": "today",
1900
+ "customers.timeline.date.yesterday": "yesterday",
1901
+ "customers.timeline.edit": "Edit",
1902
+ "customers.timeline.empty": "No activities match the current filters.",
1903
+ "customers.timeline.filter.all": "All",
1904
+ "customers.timeline.filter.call": "Call",
1905
+ "customers.timeline.filter.email": "Email",
1906
+ "customers.timeline.filter.from": "From date",
1907
+ "customers.timeline.filter.meeting": "Meeting",
1908
+ "customers.timeline.filter.note": "Note",
1909
+ "customers.timeline.filter.to": "To date",
1910
+ "customers.timeline.history.filtered": "filtered: {{types}} · {{count}} results",
1911
+ "customers.timeline.history.seeAll": "See all {{count}} activities",
1912
+ "customers.timeline.history.title": "Interaction history with {{name}}",
1913
+ "customers.timeline.history.titleGeneric": "Interaction history",
1914
+ "customers.timeline.more": "More",
1915
+ "customers.timeline.pin": "Pin",
1916
+ "customers.timeline.pinned": "Pinned",
1917
+ "customers.timeline.planned.cancel": "Cancel",
1918
+ "customers.timeline.planned.cancelError": "No se pudo cancelar la actividad",
1919
+ "customers.timeline.planned.canceled": "Actividad cancelada",
1920
+ "customers.timeline.planned.completed": "Activity completed",
1921
+ "customers.timeline.planned.error": "Failed to complete activity",
1922
+ "customers.timeline.planned.markDone": "Mark done",
1923
+ "customers.timeline.planned.overdue": "Overdue",
1924
+ "customers.timeline.planned.overdueCount": "overdue",
1925
+ "customers.timeline.planned.overdueDays": "overdue {{days}} days",
1926
+ "customers.timeline.planned.overdueSince": "since yesterday",
1927
+ "customers.timeline.planned.overdueToday": "due today",
1928
+ "customers.timeline.planned.reschedule": "Reschedule",
1929
+ "customers.timeline.planned.schedule": "Schedule",
1930
+ "customers.timeline.planned.title": "Planned activities",
1931
+ "customers.timeline.planned.upcoming": "Upcoming",
1932
+ "customers.timeline.unpin": "Unpin",
1094
1933
  "customers.widgets.common.unknown": "Desconocido",
1095
1934
  "customers.widgets.common.unknownDate": "Fecha no disponible",
1096
1935
  "customers.widgets.common.viewRecord": "Ver registro",