@hed-hog/operations 0.0.3 → 0.0.286
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.
- package/README.md +122 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/operations-data.controller.d.ts +139 -0
- package/dist/operations-data.controller.d.ts.map +1 -0
- package/dist/operations-data.controller.js +113 -0
- package/dist/operations-data.controller.js.map +1 -0
- package/dist/operations-growth.controller.d.ts +48 -0
- package/dist/operations-growth.controller.d.ts.map +1 -0
- package/dist/operations-growth.controller.js +90 -0
- package/dist/operations-growth.controller.js.map +1 -0
- package/dist/operations.module.d.ts.map +1 -1
- package/dist/operations.module.js +10 -4
- package/dist/operations.module.js.map +1 -1
- package/dist/operations.service.d.ts +178 -0
- package/dist/operations.service.d.ts.map +1 -0
- package/dist/operations.service.js +134 -0
- package/dist/operations.service.js.map +1 -0
- package/hedhog/data/menu.yaml +251 -132
- package/hedhog/data/operations_career_level.yaml +102 -0
- package/hedhog/data/operations_career_track.yaml +8 -0
- package/hedhog/data/operations_certification.yaml +38 -0
- package/hedhog/data/operations_evaluation_cycle.yaml +18 -0
- package/hedhog/data/operations_performance_criterion.yaml +48 -0
- package/hedhog/data/role.yaml +14 -7
- package/hedhog/data/route.yaml +143 -80
- package/hedhog/frontend/app/_components/allocation-calendar.tsx.ejs +56 -56
- package/hedhog/frontend/app/_components/kanban-board.tsx.ejs +626 -83
- package/hedhog/frontend/app/_components/operations-header.tsx.ejs +29 -29
- package/hedhog/frontend/app/_components/section-card.tsx.ejs +32 -32
- package/hedhog/frontend/app/_components/status-badge.tsx.ejs +15 -15
- package/hedhog/frontend/app/_components/timesheet-entry-dialog.tsx.ejs +142 -142
- package/hedhog/frontend/app/_lib/hooks/use-operations-data.ts.ejs +41 -41
- package/hedhog/frontend/app/_lib/hooks/use-operations-growth-data.ts.ejs +63 -0
- package/hedhog/frontend/app/_lib/mocks/allocations.mock.ts.ejs +74 -74
- package/hedhog/frontend/app/_lib/mocks/contracts.mock.ts.ejs +74 -74
- package/hedhog/frontend/app/_lib/mocks/operations-growth.mock.ts.ejs +824 -0
- package/hedhog/frontend/app/_lib/mocks/projects.mock.ts.ejs +455 -60
- package/hedhog/frontend/app/_lib/mocks/tasks.mock.ts.ejs +117 -88
- package/hedhog/frontend/app/_lib/mocks/timesheets.mock.ts.ejs +84 -84
- package/hedhog/frontend/app/_lib/mocks/users.mock.ts.ejs +67 -67
- package/hedhog/frontend/app/_lib/services/contracts.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/services/operations-growth.service.ts.ejs +31 -0
- package/hedhog/frontend/app/_lib/services/projects.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/services/tasks.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/services/timesheets.service.ts.ejs +10 -10
- package/hedhog/frontend/app/_lib/types/operations-growth.ts.ejs +209 -0
- package/hedhog/frontend/app/_lib/types/operations.ts.ejs +156 -95
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +25 -25
- package/hedhog/frontend/app/_lib/utils/growth.ts.ejs +62 -0
- package/hedhog/frontend/app/_lib/utils/metrics.ts.ejs +103 -103
- package/hedhog/frontend/app/_lib/utils/status.ts.ejs +80 -80
- package/hedhog/frontend/app/allocations/page.tsx.ejs +155 -99
- package/hedhog/frontend/app/approvals/page.tsx.ejs +147 -147
- package/hedhog/frontend/app/career/page.tsx.ejs +143 -0
- package/hedhog/frontend/app/certifications/page.tsx.ejs +202 -0
- package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +108 -108
- package/hedhog/frontend/app/contracts/page.tsx.ejs +181 -124
- package/hedhog/frontend/app/evaluations/page.tsx.ejs +278 -0
- package/hedhog/frontend/app/goals/page.tsx.ejs +171 -0
- package/hedhog/frontend/app/growth/page.tsx.ejs +288 -0
- package/hedhog/frontend/app/layout.tsx.ejs +9 -9
- package/hedhog/frontend/app/manager/page.tsx.ejs +175 -0
- package/hedhog/frontend/app/page.tsx.ejs +177 -177
- package/hedhog/frontend/app/projects/[id]/page.tsx.ejs +936 -186
- package/hedhog/frontend/app/projects/page.tsx.ejs +1074 -111
- package/hedhog/frontend/app/rewards/page.tsx.ejs +196 -0
- package/hedhog/frontend/app/tasks/page.tsx.ejs +999 -47
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +126 -126
- package/hedhog/frontend/messages/en.json +454 -142
- package/hedhog/frontend/messages/pt.json +454 -142
- package/hedhog/table/operations_allocation.yaml +52 -0
- package/hedhog/table/operations_calibration_item.yaml +61 -0
- package/hedhog/table/operations_calibration_session.yaml +25 -0
- package/hedhog/table/operations_career_level.yaml +75 -0
- package/hedhog/table/operations_career_track.yaml +21 -0
- package/hedhog/table/operations_certification.yaml +48 -0
- package/hedhog/table/operations_contract.yaml +57 -0
- package/hedhog/table/operations_employee.yaml +64 -0
- package/hedhog/table/operations_employee_certification.yaml +43 -0
- package/hedhog/table/operations_employee_connect.yaml +61 -0
- package/hedhog/table/operations_employee_evaluation.yaml +113 -0
- package/hedhog/table/operations_employee_evaluation_item.yaml +39 -0
- package/hedhog/table/operations_employee_profile.yaml +80 -0
- package/hedhog/table/operations_employee_skill_matrix.yaml +30 -0
- package/hedhog/table/operations_evaluation_cycle.yaml +31 -0
- package/hedhog/table/operations_goal.yaml +67 -0
- package/hedhog/table/operations_goal_progress.yaml +31 -0
- package/hedhog/table/operations_performance_criterion.yaml +29 -0
- package/hedhog/table/operations_project.yaml +66 -0
- package/hedhog/table/operations_promotion_readiness.yaml +49 -0
- package/hedhog/table/operations_promotion_recommendation.yaml +63 -0
- package/hedhog/table/operations_public_recognition.yaml +46 -0
- package/hedhog/table/operations_reward.yaml +100 -0
- package/hedhog/table/operations_score_event.yaml +81 -0
- package/hedhog/table/operations_task.yaml +60 -0
- package/hedhog/table/operations_timesheet.yaml +49 -0
- package/hedhog/table/operations_timesheet_entry.yaml +51 -0
- package/package.json +4 -4
- package/src/index.ts +2 -1
- package/src/language/en.json +8 -8
- package/src/language/pt.json +8 -8
- package/src/operations-data.controller.ts +54 -0
- package/src/operations-growth.controller.ts +44 -0
- package/src/operations.module.ts +21 -15
- package/src/operations.service.ts +137 -0
|
@@ -1,88 +1,117 @@
|
|
|
1
|
-
import type { Task } from '../types/operations';
|
|
2
|
-
|
|
3
|
-
export const tasksMock: Task[] = [
|
|
4
|
-
{
|
|
5
|
-
id: 'tsk-101',
|
|
6
|
-
title: 'Finalize checkout journey QA',
|
|
7
|
-
projectId: 'prj-orion-web',
|
|
8
|
-
projectName: 'Orion Commerce Revamp',
|
|
9
|
-
status: 'review',
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
description: '
|
|
87
|
-
},
|
|
88
|
-
|
|
1
|
+
import type { Task } from '../types/operations';
|
|
2
|
+
|
|
3
|
+
export const tasksMock: Task[] = [
|
|
4
|
+
{
|
|
5
|
+
id: 'tsk-101',
|
|
6
|
+
title: 'Finalize checkout journey QA',
|
|
7
|
+
projectId: 'prj-orion-web',
|
|
8
|
+
projectName: 'Orion Commerce Revamp',
|
|
9
|
+
status: 'review',
|
|
10
|
+
priority: 'high',
|
|
11
|
+
labels: ['QA', 'E-commerce'],
|
|
12
|
+
assignedUserId: 'usr-fabio',
|
|
13
|
+
dueDate: '2026-03-18',
|
|
14
|
+
estimatedHours: 10,
|
|
15
|
+
order: 1,
|
|
16
|
+
description: 'Regression pass for payment and address validation flows.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 'tsk-102',
|
|
20
|
+
title: 'Implement pricing API fallback',
|
|
21
|
+
projectId: 'prj-orion-web',
|
|
22
|
+
projectName: 'Orion Commerce Revamp',
|
|
23
|
+
status: 'in-progress',
|
|
24
|
+
priority: 'critical',
|
|
25
|
+
labels: ['Backend', 'API'],
|
|
26
|
+
assignedUserId: 'usr-diego',
|
|
27
|
+
dueDate: '2026-03-20',
|
|
28
|
+
estimatedHours: 16,
|
|
29
|
+
order: 1,
|
|
30
|
+
description: 'Fallback logic for inventory and pricing sync gaps.',
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'tsk-103',
|
|
34
|
+
title: 'Refine mobile PDP layouts',
|
|
35
|
+
projectId: 'prj-orion-web',
|
|
36
|
+
projectName: 'Orion Commerce Revamp',
|
|
37
|
+
status: 'todo',
|
|
38
|
+
priority: 'medium',
|
|
39
|
+
labels: ['UX', 'Frontend'],
|
|
40
|
+
assignedUserId: 'usr-elisa',
|
|
41
|
+
dueDate: '2026-03-21',
|
|
42
|
+
estimatedHours: 14,
|
|
43
|
+
order: 1,
|
|
44
|
+
description: 'Polish responsive product detail page spacing and hierarchy.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'tsk-104',
|
|
48
|
+
title: 'Map KPI ownership by squad',
|
|
49
|
+
projectId: 'prj-orion-data',
|
|
50
|
+
projectName: 'Orion Data Foundation',
|
|
51
|
+
status: 'backlog',
|
|
52
|
+
priority: 'low',
|
|
53
|
+
labels: ['Discovery'],
|
|
54
|
+
assignedUserId: 'usr-carla',
|
|
55
|
+
dueDate: '2026-03-24',
|
|
56
|
+
estimatedHours: 8,
|
|
57
|
+
order: 1,
|
|
58
|
+
description: 'Confirm ownership and cadence for operational KPIs.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: 'tsk-105',
|
|
62
|
+
title: 'Finish warehouse latency dashboard',
|
|
63
|
+
projectId: 'prj-orion-data',
|
|
64
|
+
projectName: 'Orion Data Foundation',
|
|
65
|
+
status: 'in-progress',
|
|
66
|
+
priority: 'high',
|
|
67
|
+
labels: ['BI', 'Ops'],
|
|
68
|
+
assignedUserId: 'usr-gabi',
|
|
69
|
+
dueDate: '2026-03-22',
|
|
70
|
+
estimatedHours: 18,
|
|
71
|
+
order: 1,
|
|
72
|
+
description: 'Visualize shipping delay drivers and same-day SLA misses.',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'tsk-106',
|
|
76
|
+
title: 'Automate alert routing for critical incidents',
|
|
77
|
+
projectId: 'prj-zenith-cloud',
|
|
78
|
+
projectName: 'Zenith Cloud Stabilization',
|
|
79
|
+
status: 'done',
|
|
80
|
+
priority: 'medium',
|
|
81
|
+
labels: ['Automation', 'Cloud'],
|
|
82
|
+
assignedUserId: 'usr-bruno',
|
|
83
|
+
dueDate: '2026-03-15',
|
|
84
|
+
estimatedHours: 12,
|
|
85
|
+
order: 1,
|
|
86
|
+
description: 'Connect PagerDuty routing rules to service ownership matrix.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
id: 'tsk-107',
|
|
90
|
+
title: 'Prepare CRM rollout dependency board',
|
|
91
|
+
projectId: 'prj-atlas-crm',
|
|
92
|
+
projectName: 'Atlas CRM Implementation',
|
|
93
|
+
status: 'todo',
|
|
94
|
+
priority: 'medium',
|
|
95
|
+
labels: ['PMO'],
|
|
96
|
+
assignedUserId: 'usr-carla',
|
|
97
|
+
dueDate: '2026-03-26',
|
|
98
|
+
estimatedHours: 9,
|
|
99
|
+
order: 2,
|
|
100
|
+
description: 'Track implementation dependencies before build phase starts.',
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
id: 'tsk-108',
|
|
104
|
+
title: 'Write escalation playbook for incident command',
|
|
105
|
+
projectId: 'prj-zenith-cloud',
|
|
106
|
+
projectName: 'Zenith Cloud Stabilization',
|
|
107
|
+
status: 'backlog',
|
|
108
|
+
priority: 'high',
|
|
109
|
+
labels: ['Ops', 'Runbook'],
|
|
110
|
+
assignedUserId: '',
|
|
111
|
+
dueDate: '2026-03-28',
|
|
112
|
+
estimatedHours: 6,
|
|
113
|
+
order: 2,
|
|
114
|
+
description:
|
|
115
|
+
'Define owner rotation and escalation trees for sev-1 incidents.',
|
|
116
|
+
},
|
|
117
|
+
];
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import type { TimesheetEntry } from '../types/operations';
|
|
2
|
-
|
|
3
|
-
export const timesheetsMock: TimesheetEntry[] = [
|
|
4
|
-
{
|
|
5
|
-
id: 'time-001',
|
|
6
|
-
date: '2026-03-10',
|
|
7
|
-
userId: 'usr-elisa',
|
|
8
|
-
projectId: 'prj-orion-web',
|
|
9
|
-
taskId: 'tsk-103',
|
|
10
|
-
hours: 6,
|
|
11
|
-
description: 'Mobile PDP refinements and component spacing updates.',
|
|
12
|
-
status: 'approved',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
id: 'time-002',
|
|
16
|
-
date: '2026-03-10',
|
|
17
|
-
userId: 'usr-diego',
|
|
18
|
-
projectId: 'prj-orion-web',
|
|
19
|
-
taskId: 'tsk-102',
|
|
20
|
-
hours: 7.5,
|
|
21
|
-
description: 'Pricing API fallback implementation and test coverage.',
|
|
22
|
-
status: 'pending',
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: 'time-003',
|
|
26
|
-
date: '2026-03-11',
|
|
27
|
-
userId: 'usr-fabio',
|
|
28
|
-
projectId: 'prj-orion-web',
|
|
29
|
-
taskId: 'tsk-101',
|
|
30
|
-
hours: 5,
|
|
31
|
-
description: 'Regression testing for checkout and payment flows.',
|
|
32
|
-
status: 'approved',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
id: 'time-004',
|
|
36
|
-
date: '2026-03-11',
|
|
37
|
-
userId: 'usr-gabi',
|
|
38
|
-
projectId: 'prj-orion-data',
|
|
39
|
-
taskId: 'tsk-105',
|
|
40
|
-
hours: 6.5,
|
|
41
|
-
description: 'Dashboard wireframe iteration with supply chain metrics.',
|
|
42
|
-
status: 'pending',
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
id: 'time-005',
|
|
46
|
-
date: '2026-03-12',
|
|
47
|
-
userId: 'usr-ana',
|
|
48
|
-
projectId: 'prj-zenith-cloud',
|
|
49
|
-
taskId: 'tsk-106',
|
|
50
|
-
hours: 4,
|
|
51
|
-
description: 'Incident review and action plan with client leadership.',
|
|
52
|
-
status: 'approved',
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
id: 'time-006',
|
|
56
|
-
date: '2026-03-12',
|
|
57
|
-
userId: 'usr-carla',
|
|
58
|
-
projectId: 'prj-atlas-crm',
|
|
59
|
-
taskId: 'tsk-107',
|
|
60
|
-
hours: 7,
|
|
61
|
-
description: 'Rollout planning workshop and dependency review.',
|
|
62
|
-
status: 'rejected',
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
id: 'time-007',
|
|
66
|
-
date: '2026-03-13',
|
|
67
|
-
userId: 'usr-diego',
|
|
68
|
-
projectId: 'prj-zenith-cloud',
|
|
69
|
-
taskId: 'tsk-106',
|
|
70
|
-
hours: 8,
|
|
71
|
-
description: 'Alert routing automation hardening and validation.',
|
|
72
|
-
status: 'approved',
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
id: 'time-008',
|
|
76
|
-
date: '2026-03-14',
|
|
77
|
-
userId: 'usr-carla',
|
|
78
|
-
projectId: 'prj-orion-data',
|
|
79
|
-
taskId: 'tsk-104',
|
|
80
|
-
hours: 3.5,
|
|
81
|
-
description: 'KPI ownership mapping workshop prep.',
|
|
82
|
-
status: 'pending',
|
|
83
|
-
},
|
|
84
|
-
];
|
|
1
|
+
import type { TimesheetEntry } from '../types/operations';
|
|
2
|
+
|
|
3
|
+
export const timesheetsMock: TimesheetEntry[] = [
|
|
4
|
+
{
|
|
5
|
+
id: 'time-001',
|
|
6
|
+
date: '2026-03-10',
|
|
7
|
+
userId: 'usr-elisa',
|
|
8
|
+
projectId: 'prj-orion-web',
|
|
9
|
+
taskId: 'tsk-103',
|
|
10
|
+
hours: 6,
|
|
11
|
+
description: 'Mobile PDP refinements and component spacing updates.',
|
|
12
|
+
status: 'approved',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: 'time-002',
|
|
16
|
+
date: '2026-03-10',
|
|
17
|
+
userId: 'usr-diego',
|
|
18
|
+
projectId: 'prj-orion-web',
|
|
19
|
+
taskId: 'tsk-102',
|
|
20
|
+
hours: 7.5,
|
|
21
|
+
description: 'Pricing API fallback implementation and test coverage.',
|
|
22
|
+
status: 'pending',
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: 'time-003',
|
|
26
|
+
date: '2026-03-11',
|
|
27
|
+
userId: 'usr-fabio',
|
|
28
|
+
projectId: 'prj-orion-web',
|
|
29
|
+
taskId: 'tsk-101',
|
|
30
|
+
hours: 5,
|
|
31
|
+
description: 'Regression testing for checkout and payment flows.',
|
|
32
|
+
status: 'approved',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
id: 'time-004',
|
|
36
|
+
date: '2026-03-11',
|
|
37
|
+
userId: 'usr-gabi',
|
|
38
|
+
projectId: 'prj-orion-data',
|
|
39
|
+
taskId: 'tsk-105',
|
|
40
|
+
hours: 6.5,
|
|
41
|
+
description: 'Dashboard wireframe iteration with supply chain metrics.',
|
|
42
|
+
status: 'pending',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: 'time-005',
|
|
46
|
+
date: '2026-03-12',
|
|
47
|
+
userId: 'usr-ana',
|
|
48
|
+
projectId: 'prj-zenith-cloud',
|
|
49
|
+
taskId: 'tsk-106',
|
|
50
|
+
hours: 4,
|
|
51
|
+
description: 'Incident review and action plan with client leadership.',
|
|
52
|
+
status: 'approved',
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: 'time-006',
|
|
56
|
+
date: '2026-03-12',
|
|
57
|
+
userId: 'usr-carla',
|
|
58
|
+
projectId: 'prj-atlas-crm',
|
|
59
|
+
taskId: 'tsk-107',
|
|
60
|
+
hours: 7,
|
|
61
|
+
description: 'Rollout planning workshop and dependency review.',
|
|
62
|
+
status: 'rejected',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: 'time-007',
|
|
66
|
+
date: '2026-03-13',
|
|
67
|
+
userId: 'usr-diego',
|
|
68
|
+
projectId: 'prj-zenith-cloud',
|
|
69
|
+
taskId: 'tsk-106',
|
|
70
|
+
hours: 8,
|
|
71
|
+
description: 'Alert routing automation hardening and validation.',
|
|
72
|
+
status: 'approved',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: 'time-008',
|
|
76
|
+
date: '2026-03-14',
|
|
77
|
+
userId: 'usr-carla',
|
|
78
|
+
projectId: 'prj-orion-data',
|
|
79
|
+
taskId: 'tsk-104',
|
|
80
|
+
hours: 3.5,
|
|
81
|
+
description: 'KPI ownership mapping workshop prep.',
|
|
82
|
+
status: 'pending',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
import type { OperationsUser } from '../types/operations';
|
|
2
|
-
|
|
3
|
-
export const operationsUsersMock: OperationsUser[] = [
|
|
4
|
-
{
|
|
5
|
-
id: 'usr-ana',
|
|
6
|
-
name: 'Ana Silva',
|
|
7
|
-
role: 'Delivery Manager',
|
|
8
|
-
seniority: 'Lead',
|
|
9
|
-
department: 'Operations',
|
|
10
|
-
hourlyRate: 220,
|
|
11
|
-
utilizationTarget: 78,
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
id: 'usr-bruno',
|
|
15
|
-
name: 'Bruno Costa',
|
|
16
|
-
role: 'Technical Lead',
|
|
17
|
-
seniority: 'Senior',
|
|
18
|
-
department: 'Engineering',
|
|
19
|
-
hourlyRate: 210,
|
|
20
|
-
utilizationTarget: 82,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
id: 'usr-carla',
|
|
24
|
-
name: 'Carla Mendes',
|
|
25
|
-
role: 'Project Manager',
|
|
26
|
-
seniority: 'Senior',
|
|
27
|
-
department: 'PMO',
|
|
28
|
-
hourlyRate: 180,
|
|
29
|
-
utilizationTarget: 80,
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
id: 'usr-diego',
|
|
33
|
-
name: 'Diego Alves',
|
|
34
|
-
role: 'Backend Engineer',
|
|
35
|
-
seniority: 'Mid-level',
|
|
36
|
-
department: 'Engineering',
|
|
37
|
-
hourlyRate: 145,
|
|
38
|
-
utilizationTarget: 85,
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: 'usr-elisa',
|
|
42
|
-
name: 'Elisa Rocha',
|
|
43
|
-
role: 'Frontend Engineer',
|
|
44
|
-
seniority: 'Mid-level',
|
|
45
|
-
department: 'Engineering',
|
|
46
|
-
hourlyRate: 140,
|
|
47
|
-
utilizationTarget: 84,
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
id: 'usr-fabio',
|
|
51
|
-
name: 'Fabio Lima',
|
|
52
|
-
role: 'QA Analyst',
|
|
53
|
-
seniority: 'Mid-level',
|
|
54
|
-
department: 'Quality',
|
|
55
|
-
hourlyRate: 110,
|
|
56
|
-
utilizationTarget: 76,
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: 'usr-gabi',
|
|
60
|
-
name: 'Gabriela Torres',
|
|
61
|
-
role: 'UX Designer',
|
|
62
|
-
seniority: 'Senior',
|
|
63
|
-
department: 'Design',
|
|
64
|
-
hourlyRate: 150,
|
|
65
|
-
utilizationTarget: 72,
|
|
66
|
-
},
|
|
67
|
-
];
|
|
1
|
+
import type { OperationsUser } from '../types/operations';
|
|
2
|
+
|
|
3
|
+
export const operationsUsersMock: OperationsUser[] = [
|
|
4
|
+
{
|
|
5
|
+
id: 'usr-ana',
|
|
6
|
+
name: 'Ana Silva',
|
|
7
|
+
role: 'Delivery Manager',
|
|
8
|
+
seniority: 'Lead',
|
|
9
|
+
department: 'Operations',
|
|
10
|
+
hourlyRate: 220,
|
|
11
|
+
utilizationTarget: 78,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
id: 'usr-bruno',
|
|
15
|
+
name: 'Bruno Costa',
|
|
16
|
+
role: 'Technical Lead',
|
|
17
|
+
seniority: 'Senior',
|
|
18
|
+
department: 'Engineering',
|
|
19
|
+
hourlyRate: 210,
|
|
20
|
+
utilizationTarget: 82,
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: 'usr-carla',
|
|
24
|
+
name: 'Carla Mendes',
|
|
25
|
+
role: 'Project Manager',
|
|
26
|
+
seniority: 'Senior',
|
|
27
|
+
department: 'PMO',
|
|
28
|
+
hourlyRate: 180,
|
|
29
|
+
utilizationTarget: 80,
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'usr-diego',
|
|
33
|
+
name: 'Diego Alves',
|
|
34
|
+
role: 'Backend Engineer',
|
|
35
|
+
seniority: 'Mid-level',
|
|
36
|
+
department: 'Engineering',
|
|
37
|
+
hourlyRate: 145,
|
|
38
|
+
utilizationTarget: 85,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: 'usr-elisa',
|
|
42
|
+
name: 'Elisa Rocha',
|
|
43
|
+
role: 'Frontend Engineer',
|
|
44
|
+
seniority: 'Mid-level',
|
|
45
|
+
department: 'Engineering',
|
|
46
|
+
hourlyRate: 140,
|
|
47
|
+
utilizationTarget: 84,
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
id: 'usr-fabio',
|
|
51
|
+
name: 'Fabio Lima',
|
|
52
|
+
role: 'QA Analyst',
|
|
53
|
+
seniority: 'Mid-level',
|
|
54
|
+
department: 'Quality',
|
|
55
|
+
hourlyRate: 110,
|
|
56
|
+
utilizationTarget: 76,
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
id: 'usr-gabi',
|
|
60
|
+
name: 'Gabriela Torres',
|
|
61
|
+
role: 'UX Designer',
|
|
62
|
+
seniority: 'Senior',
|
|
63
|
+
department: 'Design',
|
|
64
|
+
hourlyRate: 150,
|
|
65
|
+
utilizationTarget: 72,
|
|
66
|
+
},
|
|
67
|
+
];
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { contractsMock } from '../mocks/contracts.mock';
|
|
2
|
-
|
|
3
|
-
export const contractsService = {
|
|
4
|
-
list() {
|
|
5
|
-
return contractsMock;
|
|
6
|
-
},
|
|
7
|
-
getById(id: string) {
|
|
8
|
-
return contractsMock.find((contract) => contract.id === id) ?? null;
|
|
9
|
-
},
|
|
10
|
-
};
|
|
1
|
+
import { contractsMock } from '../mocks/contracts.mock';
|
|
2
|
+
|
|
3
|
+
export const contractsService = {
|
|
4
|
+
list() {
|
|
5
|
+
return contractsMock;
|
|
6
|
+
},
|
|
7
|
+
getById(id: string) {
|
|
8
|
+
return contractsMock.find((contract) => contract.id === id) ?? null;
|
|
9
|
+
},
|
|
10
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import {
|
|
2
|
+
careerLevelsMock,
|
|
3
|
+
careerTracksMock,
|
|
4
|
+
certificationsCatalogMock,
|
|
5
|
+
employeeCertificationsMock,
|
|
6
|
+
employeeEvaluationsMock,
|
|
7
|
+
employeeGrowthProfilesMock,
|
|
8
|
+
evaluationCyclesMock,
|
|
9
|
+
goalsMock,
|
|
10
|
+
performanceCriteriaMock,
|
|
11
|
+
promotionRecommendationsMock,
|
|
12
|
+
recognitionsMock,
|
|
13
|
+
rewardsMock,
|
|
14
|
+
scoreEventsMock,
|
|
15
|
+
} from '../mocks/operations-growth.mock';
|
|
16
|
+
|
|
17
|
+
export const operationsGrowthService = {
|
|
18
|
+
listCareerTracks: () => careerTracksMock,
|
|
19
|
+
listCareerLevels: () => careerLevelsMock,
|
|
20
|
+
listProfiles: () => employeeGrowthProfilesMock,
|
|
21
|
+
listEvaluationCycles: () => evaluationCyclesMock,
|
|
22
|
+
listPerformanceCriteria: () => performanceCriteriaMock,
|
|
23
|
+
listEvaluations: () => employeeEvaluationsMock,
|
|
24
|
+
listGoals: () => goalsMock,
|
|
25
|
+
listCertificationCatalog: () => certificationsCatalogMock,
|
|
26
|
+
listEmployeeCertifications: () => employeeCertificationsMock,
|
|
27
|
+
listRewards: () => rewardsMock,
|
|
28
|
+
listRecognitions: () => recognitionsMock,
|
|
29
|
+
listScoreEvents: () => scoreEventsMock,
|
|
30
|
+
listPromotionRecommendations: () => promotionRecommendationsMock,
|
|
31
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { projectsMock } from '../mocks/projects.mock';
|
|
2
|
-
|
|
3
|
-
export const projectsService = {
|
|
4
|
-
list() {
|
|
5
|
-
return projectsMock;
|
|
6
|
-
},
|
|
7
|
-
getById(id: string) {
|
|
8
|
-
return projectsMock.find((project) => project.id === id) ?? null;
|
|
9
|
-
},
|
|
10
|
-
};
|
|
1
|
+
import { projectsMock } from '../mocks/projects.mock';
|
|
2
|
+
|
|
3
|
+
export const projectsService = {
|
|
4
|
+
list() {
|
|
5
|
+
return projectsMock;
|
|
6
|
+
},
|
|
7
|
+
getById(id: string) {
|
|
8
|
+
return projectsMock.find((project) => project.id === id) ?? null;
|
|
9
|
+
},
|
|
10
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { tasksMock } from '../mocks/tasks.mock';
|
|
2
|
-
|
|
3
|
-
export const tasksService = {
|
|
4
|
-
list() {
|
|
5
|
-
return tasksMock;
|
|
6
|
-
},
|
|
7
|
-
byProject(projectId: string) {
|
|
8
|
-
return tasksMock.filter((task) => task.projectId === projectId);
|
|
9
|
-
},
|
|
10
|
-
};
|
|
1
|
+
import { tasksMock } from '../mocks/tasks.mock';
|
|
2
|
+
|
|
3
|
+
export const tasksService = {
|
|
4
|
+
list() {
|
|
5
|
+
return tasksMock;
|
|
6
|
+
},
|
|
7
|
+
byProject(projectId: string) {
|
|
8
|
+
return tasksMock.filter((task) => task.projectId === projectId);
|
|
9
|
+
},
|
|
10
|
+
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { timesheetsMock } from '../mocks/timesheets.mock';
|
|
2
|
-
|
|
3
|
-
export const timesheetsService = {
|
|
4
|
-
list() {
|
|
5
|
-
return timesheetsMock;
|
|
6
|
-
},
|
|
7
|
-
byProject(projectId: string) {
|
|
8
|
-
return timesheetsMock.filter((entry) => entry.projectId === projectId);
|
|
9
|
-
},
|
|
10
|
-
};
|
|
1
|
+
import { timesheetsMock } from '../mocks/timesheets.mock';
|
|
2
|
+
|
|
3
|
+
export const timesheetsService = {
|
|
4
|
+
list() {
|
|
5
|
+
return timesheetsMock;
|
|
6
|
+
},
|
|
7
|
+
byProject(projectId: string) {
|
|
8
|
+
return timesheetsMock.filter((entry) => entry.projectId === projectId);
|
|
9
|
+
},
|
|
10
|
+
};
|