@nextsparkjs/theme-crm 0.1.0-beta.1

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 (140) hide show
  1. package/CRM_PLAN.md +343 -0
  2. package/about.md +122 -0
  3. package/config/app.config.ts +185 -0
  4. package/config/billing.config.ts +187 -0
  5. package/config/dashboard.config.ts +372 -0
  6. package/config/dev.config.ts +55 -0
  7. package/config/features.config.ts +336 -0
  8. package/config/flows.config.ts +511 -0
  9. package/config/permissions.config.ts +297 -0
  10. package/config/theme.config.ts +111 -0
  11. package/entities/activities/activities.config.ts +61 -0
  12. package/entities/activities/activities.fields.ts +362 -0
  13. package/entities/activities/activities.service.ts +503 -0
  14. package/entities/activities/activities.types.ts +117 -0
  15. package/entities/activities/messages/en.json +123 -0
  16. package/entities/activities/messages/es.json +123 -0
  17. package/entities/activities/migrations/020_activities_table.sql +123 -0
  18. package/entities/activities/migrations/021_activities_metas.sql +114 -0
  19. package/entities/activities/migrations/022_activities_sample_data.sql +420 -0
  20. package/entities/campaigns/campaigns.config.ts +61 -0
  21. package/entities/campaigns/campaigns.fields.ts +413 -0
  22. package/entities/campaigns/campaigns.service.ts +426 -0
  23. package/entities/campaigns/campaigns.types.ts +124 -0
  24. package/entities/campaigns/messages/en.json +145 -0
  25. package/entities/campaigns/messages/es.json +145 -0
  26. package/entities/campaigns/migrations/001_campaigns_table.sql +127 -0
  27. package/entities/campaigns/migrations/002_campaigns_metas.sql +114 -0
  28. package/entities/campaigns/migrations/003_campaigns_sample_data.sql +364 -0
  29. package/entities/companies/companies.config.ts +61 -0
  30. package/entities/companies/companies.fields.ts +429 -0
  31. package/entities/companies/companies.service.ts +566 -0
  32. package/entities/companies/companies.types.ts +125 -0
  33. package/entities/companies/messages/en.json +146 -0
  34. package/entities/companies/messages/es.json +146 -0
  35. package/entities/companies/migrations/001_companies_table.sql +150 -0
  36. package/entities/companies/migrations/002_companies_metas.sql +114 -0
  37. package/entities/companies/migrations/003_companies_sample_data.sql +246 -0
  38. package/entities/contacts/contacts.config.ts +61 -0
  39. package/entities/contacts/contacts.fields.ts +359 -0
  40. package/entities/contacts/contacts.service.ts +509 -0
  41. package/entities/contacts/contacts.types.ts +108 -0
  42. package/entities/contacts/messages/en.json +117 -0
  43. package/entities/contacts/messages/es.json +117 -0
  44. package/entities/contacts/migrations/001_contacts_table.sql +134 -0
  45. package/entities/contacts/migrations/002_contacts_metas.sql +114 -0
  46. package/entities/contacts/migrations/003_contacts_sample_data.sql +421 -0
  47. package/entities/leads/leads.config.ts +61 -0
  48. package/entities/leads/leads.fields.ts +336 -0
  49. package/entities/leads/leads.service.ts +496 -0
  50. package/entities/leads/leads.types.ts +114 -0
  51. package/entities/leads/messages/en.json +132 -0
  52. package/entities/leads/messages/es.json +132 -0
  53. package/entities/leads/migrations/001_leads_table.sql +150 -0
  54. package/entities/leads/migrations/002_leads_metas.sql +120 -0
  55. package/entities/leads/migrations/003_leads_sample_data.sql +242 -0
  56. package/entities/notes/messages/en.json +114 -0
  57. package/entities/notes/messages/es.json +114 -0
  58. package/entities/notes/migrations/020_notes_table.sql +118 -0
  59. package/entities/notes/migrations/021_notes_metas.sql +114 -0
  60. package/entities/notes/migrations/022_notes_sample_data.sql +275 -0
  61. package/entities/notes/notes.config.ts +61 -0
  62. package/entities/notes/notes.fields.ts +283 -0
  63. package/entities/notes/notes.service.ts +320 -0
  64. package/entities/notes/notes.types.ts +102 -0
  65. package/entities/opportunities/messages/en.json +107 -0
  66. package/entities/opportunities/messages/es.json +107 -0
  67. package/entities/opportunities/migrations/010_opportunities_table.sql +145 -0
  68. package/entities/opportunities/migrations/011_opportunities_metas.sql +114 -0
  69. package/entities/opportunities/migrations/012_opportunities_sample_data.sql +438 -0
  70. package/entities/opportunities/opportunities.config.ts +61 -0
  71. package/entities/opportunities/opportunities.fields.ts +416 -0
  72. package/entities/opportunities/opportunities.service.ts +525 -0
  73. package/entities/opportunities/opportunities.types.ts +135 -0
  74. package/entities/pipelines/messages/en.json +115 -0
  75. package/entities/pipelines/messages/es.json +115 -0
  76. package/entities/pipelines/migrations/001_pipelines_table.sql +106 -0
  77. package/entities/pipelines/migrations/002_pipelines_metas.sql +114 -0
  78. package/entities/pipelines/migrations/003_pipelines_sample_data.sql +91 -0
  79. package/entities/pipelines/pipelines.config.ts +62 -0
  80. package/entities/pipelines/pipelines.fields.ts +193 -0
  81. package/entities/pipelines/pipelines.service.ts +383 -0
  82. package/entities/pipelines/pipelines.types.ts +78 -0
  83. package/entities/products/messages/en.json +135 -0
  84. package/entities/products/messages/es.json +135 -0
  85. package/entities/products/migrations/001_products_table.sql +117 -0
  86. package/entities/products/migrations/002_products_metas.sql +114 -0
  87. package/entities/products/migrations/003_products_sample_data.sql +247 -0
  88. package/entities/products/products.config.ts +62 -0
  89. package/entities/products/products.fields.ts +361 -0
  90. package/entities/products/products.service.ts +437 -0
  91. package/entities/products/products.types.ts +125 -0
  92. package/lib/crm-constants.ts +77 -0
  93. package/lib/crm-utils.ts +185 -0
  94. package/lib/selectors.ts +333 -0
  95. package/messages/en.json +131 -0
  96. package/messages/es.json +131 -0
  97. package/migrations/999_theme_sample_data.sql +473 -0
  98. package/package.json +18 -0
  99. package/pendings.md +205 -0
  100. package/permissions-matrix.md +216 -0
  101. package/styles/components.css +414 -0
  102. package/styles/crm-theme.css +358 -0
  103. package/styles/globals.css +576 -0
  104. package/styles/variables.css +111 -0
  105. package/templates/dashboard/(main)/activities/components/ActivityCard.tsx +169 -0
  106. package/templates/dashboard/(main)/activities/components/ActivityTimeline.tsx +165 -0
  107. package/templates/dashboard/(main)/activities/page.tsx +297 -0
  108. package/templates/dashboard/(main)/campaigns/page.tsx +373 -0
  109. package/templates/dashboard/(main)/companies/page.tsx +296 -0
  110. package/templates/dashboard/(main)/contacts/page.tsx +347 -0
  111. package/templates/dashboard/(main)/layout.tsx +98 -0
  112. package/templates/dashboard/(main)/leads/page.tsx +335 -0
  113. package/templates/dashboard/(main)/opportunities/[id]/edit/page.tsx +95 -0
  114. package/templates/dashboard/(main)/opportunities/create/page.tsx +94 -0
  115. package/templates/dashboard/(main)/opportunities/page.tsx +350 -0
  116. package/templates/dashboard/(main)/pipelines/[id]/edit/page.tsx +95 -0
  117. package/templates/dashboard/(main)/pipelines/[id]/page.tsx +143 -0
  118. package/templates/dashboard/(main)/pipelines/create/page.tsx +94 -0
  119. package/templates/dashboard/(main)/pipelines/page.tsx +234 -0
  120. package/templates/dashboard/(main)/products/[id]/edit/page.tsx +97 -0
  121. package/templates/dashboard/(main)/products/[id]/page.tsx +509 -0
  122. package/templates/dashboard/(main)/products/create/page.tsx +96 -0
  123. package/templates/dashboard/(main)/products/page.tsx +308 -0
  124. package/templates/shared/ActionButtons.tsx +41 -0
  125. package/templates/shared/CRMDashboard.tsx +519 -0
  126. package/templates/shared/CRMDataTable.tsx +441 -0
  127. package/templates/shared/CRMMetricCard.tsx +76 -0
  128. package/templates/shared/CRMMobileNav.tsx +172 -0
  129. package/templates/shared/CRMSidebar.tsx +346 -0
  130. package/templates/shared/CRMTopBar.tsx +265 -0
  131. package/templates/shared/DealCard.tsx +123 -0
  132. package/templates/shared/EntityCard.tsx +58 -0
  133. package/templates/shared/OpportunityForm.tsx +649 -0
  134. package/templates/shared/PipelineForm.tsx +367 -0
  135. package/templates/shared/PipelineKanban.tsx +194 -0
  136. package/templates/shared/QuickFilters.tsx +47 -0
  137. package/templates/shared/StageColumn.tsx +175 -0
  138. package/templates/shared/StageSelect.tsx +177 -0
  139. package/templates/shared/StagesRepeater.tsx +317 -0
  140. package/templates/shared/index.ts +9 -0
@@ -0,0 +1,420 @@
1
+ -- ============================================================================
2
+ -- Sample data for activities table - CRM Theme
3
+ -- Aligned with schema in 001_activities_table.sql
4
+ -- Uses users from 999_theme_sample_data.sql
5
+ -- References leads, contacts, companies, opportunities from their sample data
6
+ -- ============================================================================
7
+
8
+ -- Clean existing activities data
9
+ DELETE FROM "activities" WHERE "teamId" = 'team-crm-company';
10
+
11
+ INSERT INTO "activities" (
12
+ id,
13
+ type,
14
+ subject,
15
+ description,
16
+ status,
17
+ priority,
18
+ "dueDate",
19
+ "completedAt",
20
+ duration,
21
+ outcome,
22
+ location,
23
+ "contactId",
24
+ "companyId",
25
+ "opportunityId",
26
+ "assignedTo",
27
+ "userId",
28
+ "teamId",
29
+ "createdAt",
30
+ "updatedAt"
31
+ ) VALUES
32
+ -- Call Activities
33
+ (
34
+ 'act-crm-001',
35
+ 'call',
36
+ 'Initial Discovery Call with Amanda Davis',
37
+ 'First contact call to understand CEO needs at TechnoSoft Solutions. Discussed current pain points with their existing system and timeline for new CRM implementation.',
38
+ 'completed',
39
+ 'high',
40
+ NOW() - INTERVAL '3 days',
41
+ NOW() - INTERVAL '3 days',
42
+ 45,
43
+ 'Successful - Very interested in enterprise solution',
44
+ NULL,
45
+ 'contact-crm-001',
46
+ 'company-crm-001',
47
+ NULL,
48
+ 'usr-crm-sales-mgr',
49
+ 'usr-crm-ceo',
50
+ 'team-crm-company',
51
+ NOW() - INTERVAL '5 days',
52
+ NOW() - INTERVAL '3 days'
53
+ ),
54
+ (
55
+ 'act-crm-002',
56
+ 'call',
57
+ 'Technical Requirements Call with Dr. Martinez',
58
+ 'Detailed discussion about HIPAA compliance requirements and data security measures needed for healthcare implementation.',
59
+ 'completed',
60
+ 'high',
61
+ NOW() - INTERVAL '1 day',
62
+ NOW() - INTERVAL '1 day',
63
+ 75,
64
+ 'Successful - Needs security documentation',
65
+ NULL,
66
+ 'contact-crm-006',
67
+ 'company-crm-003',
68
+ NULL,
69
+ 'usr-crm-sales-mgr',
70
+ 'usr-crm-ceo',
71
+ 'team-crm-company',
72
+ NOW() - INTERVAL '3 days',
73
+ NOW() - INTERVAL '1 day'
74
+ ),
75
+ (
76
+ 'act-crm-003',
77
+ 'call',
78
+ 'Startup Package Discussion with StartupTech',
79
+ 'Discuss startup-friendly pricing and phased implementation approach for growing company needs.',
80
+ 'scheduled',
81
+ 'high',
82
+ NOW() + INTERVAL '1 day',
83
+ NULL,
84
+ 45,
85
+ NULL,
86
+ NULL,
87
+ 'contact-crm-014',
88
+ 'company-crm-007',
89
+ NULL,
90
+ 'usr-crm-sales-rep',
91
+ 'usr-crm-sales-rep',
92
+ 'team-crm-company',
93
+ NOW() - INTERVAL '1 day',
94
+ NOW() - INTERVAL '1 day'
95
+ ),
96
+
97
+ -- Email Activities
98
+ (
99
+ 'act-crm-004',
100
+ 'email',
101
+ 'Follow-up Email to John Patterson',
102
+ 'Sent detailed proposal and pricing information for enterprise CRM solution. Included case studies from similar manufacturing companies.',
103
+ 'completed',
104
+ 'high',
105
+ NOW() - INTERVAL '2 days',
106
+ NOW() - INTERVAL '1 day',
107
+ 30,
108
+ 'Successful - Proposal received positively',
109
+ NULL,
110
+ 'contact-crm-004',
111
+ 'company-crm-002',
112
+ 'opp-crm-003',
113
+ 'usr-crm-sales-rep',
114
+ 'usr-crm-sales-mgr',
115
+ 'team-crm-company',
116
+ NOW() - INTERVAL '3 days',
117
+ NOW() - INTERVAL '1 day'
118
+ ),
119
+ (
120
+ 'act-crm-005',
121
+ 'email',
122
+ 'Security Assessment Results to Elizabeth Taylor',
123
+ 'Shared comprehensive security assessment results and compliance documentation required for FinanceFirst implementation.',
124
+ 'completed',
125
+ 'high',
126
+ NOW() - INTERVAL '5 days',
127
+ NOW() - INTERVAL '5 days',
128
+ 45,
129
+ 'Successful - Moved to technical review',
130
+ NULL,
131
+ 'contact-crm-008',
132
+ 'company-crm-004',
133
+ 'opp-crm-007',
134
+ 'usr-crm-sales-rep',
135
+ 'usr-crm-sales-mgr',
136
+ 'team-crm-company',
137
+ NOW() - INTERVAL '8 days',
138
+ NOW() - INTERVAL '5 days'
139
+ ),
140
+
141
+ -- Meeting Activities
142
+ (
143
+ 'act-crm-006',
144
+ 'meeting',
145
+ 'Quarterly Business Review with Amanda Davis',
146
+ 'Regular QBR to discuss CRM performance, new feature requests, and expansion opportunities at TechnoSoft Solutions.',
147
+ 'completed',
148
+ 'medium',
149
+ NOW() - INTERVAL '7 days',
150
+ NOW() - INTERVAL '7 days',
151
+ 90,
152
+ 'Successful - Expansion opportunity identified',
153
+ 'TechnoSoft HQ, San Francisco',
154
+ 'contact-crm-001',
155
+ 'company-crm-001',
156
+ NULL,
157
+ 'usr-crm-sales-mgr',
158
+ 'usr-crm-ceo',
159
+ 'team-crm-company',
160
+ NOW() - INTERVAL '10 days',
161
+ NOW() - INTERVAL '7 days'
162
+ ),
163
+ (
164
+ 'act-crm-007',
165
+ 'meeting',
166
+ 'Implementation Kickoff with Global Manufacturing',
167
+ 'Project kickoff meeting to establish timeline, roles, and data migration plan for enterprise CRM implementation.',
168
+ 'completed',
169
+ 'high',
170
+ NOW() - INTERVAL '10 days',
171
+ NOW() - INTERVAL '10 days',
172
+ 120,
173
+ 'Successful - Project plan approved',
174
+ 'Global Manufacturing HQ, Detroit',
175
+ 'contact-crm-004',
176
+ 'company-crm-002',
177
+ 'opp-crm-003',
178
+ 'usr-crm-sales-rep',
179
+ 'usr-crm-sales-mgr',
180
+ 'team-crm-company',
181
+ NOW() - INTERVAL '15 days',
182
+ NOW() - INTERVAL '10 days'
183
+ ),
184
+ (
185
+ 'act-crm-008',
186
+ 'meeting',
187
+ 'Training Session Planning for FinanceFirst',
188
+ 'Planning session for comprehensive user training program including role-based training modules and certification process.',
189
+ 'scheduled',
190
+ 'medium',
191
+ NOW() + INTERVAL '7 days',
192
+ NULL,
193
+ 120,
194
+ NULL,
195
+ 'FinanceFirst Tower, New York',
196
+ 'contact-crm-008',
197
+ 'company-crm-004',
198
+ 'opp-crm-007',
199
+ 'usr-crm-sales-rep',
200
+ 'usr-crm-sales-mgr',
201
+ 'team-crm-company',
202
+ NOW() - INTERVAL '3 days',
203
+ NOW() - INTERVAL '1 day'
204
+ ),
205
+
206
+ -- Demo Activities
207
+ (
208
+ 'act-crm-009',
209
+ 'demo',
210
+ 'Demo Presentation for Patricia Martinez',
211
+ 'Scheduled product demonstration focusing on healthcare compliance features and integration capabilities with existing systems.',
212
+ 'scheduled',
213
+ 'high',
214
+ NOW() + INTERVAL '2 days',
215
+ NULL,
216
+ 60,
217
+ NULL,
218
+ 'Virtual - Zoom',
219
+ 'contact-crm-006',
220
+ 'company-crm-003',
221
+ 'opp-crm-005',
222
+ 'usr-crm-sales-mgr',
223
+ 'usr-crm-ceo',
224
+ 'team-crm-company',
225
+ NOW() - INTERVAL '1 day',
226
+ NOW() - INTERVAL '1 day'
227
+ ),
228
+ (
229
+ 'act-crm-010',
230
+ 'demo',
231
+ 'Product Demo for Maria Gonzalez',
232
+ 'Customized demo focusing on educational features, student data management, and parent communication tools.',
233
+ 'scheduled',
234
+ 'medium',
235
+ NOW() + INTERVAL '1 day',
236
+ NULL,
237
+ 60,
238
+ NULL,
239
+ 'Virtual - Teams',
240
+ 'contact-crm-010',
241
+ 'company-crm-005',
242
+ 'opp-crm-008',
243
+ 'usr-crm-sales-rep',
244
+ 'usr-crm-sales-mgr',
245
+ 'team-crm-company',
246
+ NOW() - INTERVAL '2 days',
247
+ NOW() - INTERVAL '1 day'
248
+ ),
249
+ (
250
+ 'act-crm-011',
251
+ 'demo',
252
+ 'Educational CRM Demo for EduTech',
253
+ 'Customized demonstration showing student lifecycle management, parent communication, and academic tracking features.',
254
+ 'scheduled',
255
+ 'medium',
256
+ NOW() + INTERVAL '3 days',
257
+ NULL,
258
+ 90,
259
+ NULL,
260
+ 'Virtual - Google Meet',
261
+ 'contact-crm-010',
262
+ 'company-crm-005',
263
+ 'opp-crm-008',
264
+ 'usr-crm-sales-rep',
265
+ 'usr-crm-sales-mgr',
266
+ 'team-crm-company',
267
+ NOW() - INTERVAL '2 days',
268
+ NOW() - INTERVAL '1 day'
269
+ ),
270
+
271
+ -- Task Activities
272
+ (
273
+ 'act-crm-012',
274
+ 'task',
275
+ 'Prepare Custom Proposal for Healthcare Innovations',
276
+ 'Create customized proposal addressing healthcare specific needs including HIPAA compliance and EMR integration.',
277
+ 'in_progress',
278
+ 'high',
279
+ NOW() + INTERVAL '3 days',
280
+ NULL,
281
+ 120,
282
+ NULL,
283
+ NULL,
284
+ NULL,
285
+ 'company-crm-003',
286
+ 'opp-crm-005',
287
+ 'usr-crm-sales-mgr',
288
+ 'usr-crm-ceo',
289
+ 'team-crm-company',
290
+ NOW() - INTERVAL '2 days',
291
+ NOW() - INTERVAL '1 day'
292
+ ),
293
+ (
294
+ 'act-crm-013',
295
+ 'task',
296
+ 'Contract Renewal Preparation for TechnoSoft',
297
+ 'Prepare renewal proposal with additional modules and expansion options based on current usage and growth projections.',
298
+ 'in_progress',
299
+ 'high',
300
+ NOW() + INTERVAL '15 days',
301
+ NULL,
302
+ 180,
303
+ NULL,
304
+ NULL,
305
+ NULL,
306
+ 'company-crm-001',
307
+ 'opp-crm-001',
308
+ 'usr-crm-sales-mgr',
309
+ 'usr-crm-ceo',
310
+ 'team-crm-company',
311
+ NOW() - INTERVAL '5 days',
312
+ NOW() - INTERVAL '2 days'
313
+ ),
314
+ (
315
+ 'act-crm-014',
316
+ 'task',
317
+ 'RetailMax Integration Documentation',
318
+ 'Prepare integration documentation for connecting CRM with existing POS and inventory management systems.',
319
+ 'in_progress',
320
+ 'medium',
321
+ NOW() + INTERVAL '10 days',
322
+ NULL,
323
+ 300,
324
+ NULL,
325
+ NULL,
326
+ 'contact-crm-012',
327
+ 'company-crm-006',
328
+ 'opp-crm-009',
329
+ 'usr-crm-sales-rep',
330
+ 'usr-crm-sales-mgr',
331
+ 'team-crm-company',
332
+ NOW() - INTERVAL '7 days',
333
+ NOW() - INTERVAL '2 days'
334
+ ),
335
+ (
336
+ 'act-crm-015',
337
+ 'task',
338
+ 'Healthcare ROI Analysis Preparation',
339
+ 'Prepare detailed ROI analysis showing cost savings and efficiency gains from CRM implementation in healthcare setting.',
340
+ 'in_progress',
341
+ 'medium',
342
+ NOW() + INTERVAL '5 days',
343
+ NULL,
344
+ 180,
345
+ NULL,
346
+ NULL,
347
+ NULL,
348
+ 'company-crm-003',
349
+ 'opp-crm-005',
350
+ 'usr-crm-sales-mgr',
351
+ 'usr-crm-ceo',
352
+ 'team-crm-company',
353
+ NOW() - INTERVAL '3 days',
354
+ NOW() - INTERVAL '1 day'
355
+ ),
356
+
357
+ -- Follow-up Activities
358
+ (
359
+ 'act-crm-016',
360
+ 'follow_up',
361
+ 'Healthcare Compliance Follow-up',
362
+ 'Follow-up on compliance questions raised during initial presentation. Research additional healthcare-specific features.',
363
+ 'completed',
364
+ 'medium',
365
+ NOW() - INTERVAL '2 days',
366
+ NOW() - INTERVAL '2 days',
367
+ 60,
368
+ 'Partially successful - Additional docs needed',
369
+ NULL,
370
+ 'contact-crm-006',
371
+ 'company-crm-003',
372
+ 'opp-crm-005',
373
+ 'usr-crm-sales-mgr',
374
+ 'usr-crm-ceo',
375
+ 'team-crm-company',
376
+ NOW() - INTERVAL '5 days',
377
+ NOW() - INTERVAL '2 days'
378
+ ),
379
+ (
380
+ 'act-crm-017',
381
+ 'follow_up',
382
+ 'EduTech Implementation Status Check',
383
+ 'Regular check-in to monitor implementation progress and address any technical challenges or user adoption issues.',
384
+ 'scheduled',
385
+ 'medium',
386
+ NOW() + INTERVAL '14 days',
387
+ NULL,
388
+ 45,
389
+ NULL,
390
+ NULL,
391
+ 'contact-crm-010',
392
+ 'company-crm-005',
393
+ 'opp-crm-008',
394
+ 'usr-crm-sales-rep',
395
+ 'usr-crm-sales-mgr',
396
+ 'team-crm-company',
397
+ NOW() - INTERVAL '2 days',
398
+ NOW() - INTERVAL '1 day'
399
+ ),
400
+ (
401
+ 'act-crm-018',
402
+ 'follow_up',
403
+ 'Startup Growth Strategy Call',
404
+ 'Strategic call to discuss how CRM can support rapid growth phase and scaling challenges at StartupTech.',
405
+ 'scheduled',
406
+ 'high',
407
+ NOW() + INTERVAL '4 days',
408
+ NULL,
409
+ 60,
410
+ NULL,
411
+ NULL,
412
+ 'contact-crm-014',
413
+ 'company-crm-007',
414
+ 'opp-crm-010',
415
+ 'usr-crm-sales-rep',
416
+ 'usr-crm-sales-rep',
417
+ 'team-crm-company',
418
+ NOW() - INTERVAL '1 day',
419
+ NOW() - INTERVAL '1 day'
420
+ );
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Campaigns Entity Configuration - CRM
3
+ *
4
+ * Marketing campaigns.
5
+ * Updated with team support and granular permissions.
6
+ */
7
+
8
+ import { Megaphone } from 'lucide-react'
9
+ import type { EntityConfig } from '@nextsparkjs/core/lib/entities/types'
10
+ import { campaignsFields } from './campaigns.fields'
11
+
12
+ export const campaignsEntityConfig: EntityConfig = {
13
+ // ==========================================
14
+ // 1. BASIC IDENTIFICATION
15
+ // ==========================================
16
+ slug: 'campaigns',
17
+ enabled: true,
18
+ names: {
19
+ singular: 'campaign',
20
+ plural: 'Campaigns'
21
+ },
22
+ icon: Megaphone,
23
+
24
+ // ==========================================
25
+ // 2. ACCESS AND SCOPE CONFIGURATION
26
+ // ==========================================
27
+ access: {
28
+ public: false,
29
+ api: true,
30
+ metadata: true,
31
+ shared: true
32
+ },
33
+
34
+ // ==========================================
35
+ // 3. UI/UX FEATURES
36
+ // ==========================================
37
+ ui: {
38
+ dashboard: {
39
+ showInMenu: true,
40
+ showInTopbar: true
41
+ },
42
+ public: {
43
+ hasArchivePage: false,
44
+ hasSinglePage: false
45
+ },
46
+ features: {
47
+ searchable: true,
48
+ sortable: true,
49
+ filterable: true,
50
+ bulkOperations: false,
51
+ importExport: false
52
+ }
53
+ },
54
+
55
+ // ==========================================
56
+ // FIELDS
57
+ // ==========================================
58
+ fields: campaignsFields,
59
+ }
60
+
61
+ export default campaignsEntityConfig