@hed-hog/operations 0.0.3 → 0.0.285
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 +83 -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 +60 -60
- package/hedhog/frontend/app/_lib/mocks/tasks.mock.ts.ejs +88 -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 +95 -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 +154 -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 +201 -0
- package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +108 -108
- package/hedhog/frontend/app/contracts/page.tsx.ejs +180 -124
- package/hedhog/frontend/app/evaluations/page.tsx.ejs +277 -0
- package/hedhog/frontend/app/goals/page.tsx.ejs +170 -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 +186 -186
- package/hedhog/frontend/app/projects/page.tsx.ejs +111 -111
- package/hedhog/frontend/app/rewards/page.tsx.ejs +195 -0
- package/hedhog/frontend/app/tasks/page.tsx.ejs +47 -47
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +126 -126
- package/hedhog/frontend/messages/en.json +152 -142
- package/hedhog/frontend/messages/pt.json +152 -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,60 +1,60 @@
|
|
|
1
|
-
import type { Project } from '../types/operations';
|
|
2
|
-
|
|
3
|
-
export const projectsMock: Project[] = [
|
|
4
|
-
{
|
|
5
|
-
id: 'prj-orion-web',
|
|
6
|
-
name: 'Orion Commerce Revamp',
|
|
7
|
-
client: 'Orion Retail Group',
|
|
8
|
-
progress: 72,
|
|
9
|
-
status: 'active',
|
|
10
|
-
teamMemberIds: ['usr-ana', 'usr-bruno', 'usr-elisa', 'usr-fabio'],
|
|
11
|
-
hoursLogged: 386,
|
|
12
|
-
startDate: '2026-01-08',
|
|
13
|
-
endDate: '2026-06-30',
|
|
14
|
-
description: 'Frontend and middleware modernization for the main commerce experience.',
|
|
15
|
-
contractId: 'ctr-orion',
|
|
16
|
-
budget: 128000,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
id: 'prj-orion-data',
|
|
20
|
-
name: 'Orion Data Foundation',
|
|
21
|
-
client: 'Orion Retail Group',
|
|
22
|
-
progress: 48,
|
|
23
|
-
status: 'at-risk',
|
|
24
|
-
teamMemberIds: ['usr-carla', 'usr-diego', 'usr-gabi'],
|
|
25
|
-
hoursLogged: 244,
|
|
26
|
-
startDate: '2026-02-03',
|
|
27
|
-
endDate: '2026-09-15',
|
|
28
|
-
description: 'Data governance and reporting layer for omnichannel operations.',
|
|
29
|
-
contractId: 'ctr-orion',
|
|
30
|
-
budget: 98000,
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
id: 'prj-zenith-cloud',
|
|
34
|
-
name: 'Zenith Cloud Stabilization',
|
|
35
|
-
client: 'Zenith Health',
|
|
36
|
-
progress: 61,
|
|
37
|
-
status: 'active',
|
|
38
|
-
teamMemberIds: ['usr-ana', 'usr-diego', 'usr-fabio'],
|
|
39
|
-
hoursLogged: 322,
|
|
40
|
-
startDate: '2026-01-12',
|
|
41
|
-
endDate: '2026-07-31',
|
|
42
|
-
description: 'Ops stabilization and incident reduction program after migration.',
|
|
43
|
-
contractId: 'ctr-zenith',
|
|
44
|
-
budget: 115000,
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: 'prj-atlas-crm',
|
|
48
|
-
name: 'Atlas CRM Implementation',
|
|
49
|
-
client: 'Atlas Logistics',
|
|
50
|
-
progress: 29,
|
|
51
|
-
status: 'planning',
|
|
52
|
-
teamMemberIds: ['usr-carla', 'usr-elisa', 'usr-gabi'],
|
|
53
|
-
hoursLogged: 104,
|
|
54
|
-
startDate: '2026-03-01',
|
|
55
|
-
endDate: '2026-08-31',
|
|
56
|
-
description: 'Sales and service CRM rollout with operational dashboards.',
|
|
57
|
-
contractId: 'ctr-atlas',
|
|
58
|
-
budget: 89000,
|
|
59
|
-
},
|
|
60
|
-
];
|
|
1
|
+
import type { Project } from '../types/operations';
|
|
2
|
+
|
|
3
|
+
export const projectsMock: Project[] = [
|
|
4
|
+
{
|
|
5
|
+
id: 'prj-orion-web',
|
|
6
|
+
name: 'Orion Commerce Revamp',
|
|
7
|
+
client: 'Orion Retail Group',
|
|
8
|
+
progress: 72,
|
|
9
|
+
status: 'active',
|
|
10
|
+
teamMemberIds: ['usr-ana', 'usr-bruno', 'usr-elisa', 'usr-fabio'],
|
|
11
|
+
hoursLogged: 386,
|
|
12
|
+
startDate: '2026-01-08',
|
|
13
|
+
endDate: '2026-06-30',
|
|
14
|
+
description: 'Frontend and middleware modernization for the main commerce experience.',
|
|
15
|
+
contractId: 'ctr-orion',
|
|
16
|
+
budget: 128000,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 'prj-orion-data',
|
|
20
|
+
name: 'Orion Data Foundation',
|
|
21
|
+
client: 'Orion Retail Group',
|
|
22
|
+
progress: 48,
|
|
23
|
+
status: 'at-risk',
|
|
24
|
+
teamMemberIds: ['usr-carla', 'usr-diego', 'usr-gabi'],
|
|
25
|
+
hoursLogged: 244,
|
|
26
|
+
startDate: '2026-02-03',
|
|
27
|
+
endDate: '2026-09-15',
|
|
28
|
+
description: 'Data governance and reporting layer for omnichannel operations.',
|
|
29
|
+
contractId: 'ctr-orion',
|
|
30
|
+
budget: 98000,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: 'prj-zenith-cloud',
|
|
34
|
+
name: 'Zenith Cloud Stabilization',
|
|
35
|
+
client: 'Zenith Health',
|
|
36
|
+
progress: 61,
|
|
37
|
+
status: 'active',
|
|
38
|
+
teamMemberIds: ['usr-ana', 'usr-diego', 'usr-fabio'],
|
|
39
|
+
hoursLogged: 322,
|
|
40
|
+
startDate: '2026-01-12',
|
|
41
|
+
endDate: '2026-07-31',
|
|
42
|
+
description: 'Ops stabilization and incident reduction program after migration.',
|
|
43
|
+
contractId: 'ctr-zenith',
|
|
44
|
+
budget: 115000,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'prj-atlas-crm',
|
|
48
|
+
name: 'Atlas CRM Implementation',
|
|
49
|
+
client: 'Atlas Logistics',
|
|
50
|
+
progress: 29,
|
|
51
|
+
status: 'planning',
|
|
52
|
+
teamMemberIds: ['usr-carla', 'usr-elisa', 'usr-gabi'],
|
|
53
|
+
hoursLogged: 104,
|
|
54
|
+
startDate: '2026-03-01',
|
|
55
|
+
endDate: '2026-08-31',
|
|
56
|
+
description: 'Sales and service CRM rollout with operational dashboards.',
|
|
57
|
+
contractId: 'ctr-atlas',
|
|
58
|
+
budget: 89000,
|
|
59
|
+
},
|
|
60
|
+
];
|
|
@@ -1,88 +1,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
|
-
labels: ['QA', 'E-commerce'],
|
|
11
|
-
assignedUserId: 'usr-fabio',
|
|
12
|
-
dueDate: '2026-03-18',
|
|
13
|
-
estimatedHours: 10,
|
|
14
|
-
description: 'Regression pass for payment and address validation flows.',
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
id: 'tsk-102',
|
|
18
|
-
title: 'Implement pricing API fallback',
|
|
19
|
-
projectId: 'prj-orion-web',
|
|
20
|
-
projectName: 'Orion Commerce Revamp',
|
|
21
|
-
status: 'in-progress',
|
|
22
|
-
labels: ['Backend', 'API'],
|
|
23
|
-
assignedUserId: 'usr-diego',
|
|
24
|
-
dueDate: '2026-03-20',
|
|
25
|
-
estimatedHours: 16,
|
|
26
|
-
description: 'Fallback logic for inventory and pricing sync gaps.',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
id: 'tsk-103',
|
|
30
|
-
title: 'Refine mobile PDP layouts',
|
|
31
|
-
projectId: 'prj-orion-web',
|
|
32
|
-
projectName: 'Orion Commerce Revamp',
|
|
33
|
-
status: 'todo',
|
|
34
|
-
labels: ['UX', 'Frontend'],
|
|
35
|
-
assignedUserId: 'usr-elisa',
|
|
36
|
-
dueDate: '2026-03-21',
|
|
37
|
-
estimatedHours: 14,
|
|
38
|
-
description: 'Polish responsive product detail page spacing and hierarchy.',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: 'tsk-104',
|
|
42
|
-
title: 'Map KPI ownership by squad',
|
|
43
|
-
projectId: 'prj-orion-data',
|
|
44
|
-
projectName: 'Orion Data Foundation',
|
|
45
|
-
status: 'backlog',
|
|
46
|
-
labels: ['Discovery'],
|
|
47
|
-
assignedUserId: 'usr-carla',
|
|
48
|
-
dueDate: '2026-03-24',
|
|
49
|
-
estimatedHours: 8,
|
|
50
|
-
description: 'Confirm ownership and cadence for operational KPIs.',
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
id: 'tsk-105',
|
|
54
|
-
title: 'Finish warehouse latency dashboard',
|
|
55
|
-
projectId: 'prj-orion-data',
|
|
56
|
-
projectName: 'Orion Data Foundation',
|
|
57
|
-
status: 'in-progress',
|
|
58
|
-
labels: ['BI', 'Ops'],
|
|
59
|
-
assignedUserId: 'usr-gabi',
|
|
60
|
-
dueDate: '2026-03-22',
|
|
61
|
-
estimatedHours: 18,
|
|
62
|
-
description: 'Visualize shipping delay drivers and same-day SLA misses.',
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
id: 'tsk-106',
|
|
66
|
-
title: 'Automate alert routing for critical incidents',
|
|
67
|
-
projectId: 'prj-zenith-cloud',
|
|
68
|
-
projectName: 'Zenith Cloud Stabilization',
|
|
69
|
-
status: 'done',
|
|
70
|
-
labels: ['Automation', 'Cloud'],
|
|
71
|
-
assignedUserId: 'usr-bruno',
|
|
72
|
-
dueDate: '2026-03-15',
|
|
73
|
-
estimatedHours: 12,
|
|
74
|
-
description: 'Connect PagerDuty routing rules to service ownership matrix.',
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
id: 'tsk-107',
|
|
78
|
-
title: 'Prepare CRM rollout dependency board',
|
|
79
|
-
projectId: 'prj-atlas-crm',
|
|
80
|
-
projectName: 'Atlas CRM Implementation',
|
|
81
|
-
status: 'todo',
|
|
82
|
-
labels: ['PMO'],
|
|
83
|
-
assignedUserId: 'usr-carla',
|
|
84
|
-
dueDate: '2026-03-26',
|
|
85
|
-
estimatedHours: 9,
|
|
86
|
-
description: 'Track implementation dependencies before build phase starts.',
|
|
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
|
+
labels: ['QA', 'E-commerce'],
|
|
11
|
+
assignedUserId: 'usr-fabio',
|
|
12
|
+
dueDate: '2026-03-18',
|
|
13
|
+
estimatedHours: 10,
|
|
14
|
+
description: 'Regression pass for payment and address validation flows.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: 'tsk-102',
|
|
18
|
+
title: 'Implement pricing API fallback',
|
|
19
|
+
projectId: 'prj-orion-web',
|
|
20
|
+
projectName: 'Orion Commerce Revamp',
|
|
21
|
+
status: 'in-progress',
|
|
22
|
+
labels: ['Backend', 'API'],
|
|
23
|
+
assignedUserId: 'usr-diego',
|
|
24
|
+
dueDate: '2026-03-20',
|
|
25
|
+
estimatedHours: 16,
|
|
26
|
+
description: 'Fallback logic for inventory and pricing sync gaps.',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
id: 'tsk-103',
|
|
30
|
+
title: 'Refine mobile PDP layouts',
|
|
31
|
+
projectId: 'prj-orion-web',
|
|
32
|
+
projectName: 'Orion Commerce Revamp',
|
|
33
|
+
status: 'todo',
|
|
34
|
+
labels: ['UX', 'Frontend'],
|
|
35
|
+
assignedUserId: 'usr-elisa',
|
|
36
|
+
dueDate: '2026-03-21',
|
|
37
|
+
estimatedHours: 14,
|
|
38
|
+
description: 'Polish responsive product detail page spacing and hierarchy.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
id: 'tsk-104',
|
|
42
|
+
title: 'Map KPI ownership by squad',
|
|
43
|
+
projectId: 'prj-orion-data',
|
|
44
|
+
projectName: 'Orion Data Foundation',
|
|
45
|
+
status: 'backlog',
|
|
46
|
+
labels: ['Discovery'],
|
|
47
|
+
assignedUserId: 'usr-carla',
|
|
48
|
+
dueDate: '2026-03-24',
|
|
49
|
+
estimatedHours: 8,
|
|
50
|
+
description: 'Confirm ownership and cadence for operational KPIs.',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
id: 'tsk-105',
|
|
54
|
+
title: 'Finish warehouse latency dashboard',
|
|
55
|
+
projectId: 'prj-orion-data',
|
|
56
|
+
projectName: 'Orion Data Foundation',
|
|
57
|
+
status: 'in-progress',
|
|
58
|
+
labels: ['BI', 'Ops'],
|
|
59
|
+
assignedUserId: 'usr-gabi',
|
|
60
|
+
dueDate: '2026-03-22',
|
|
61
|
+
estimatedHours: 18,
|
|
62
|
+
description: 'Visualize shipping delay drivers and same-day SLA misses.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
id: 'tsk-106',
|
|
66
|
+
title: 'Automate alert routing for critical incidents',
|
|
67
|
+
projectId: 'prj-zenith-cloud',
|
|
68
|
+
projectName: 'Zenith Cloud Stabilization',
|
|
69
|
+
status: 'done',
|
|
70
|
+
labels: ['Automation', 'Cloud'],
|
|
71
|
+
assignedUserId: 'usr-bruno',
|
|
72
|
+
dueDate: '2026-03-15',
|
|
73
|
+
estimatedHours: 12,
|
|
74
|
+
description: 'Connect PagerDuty routing rules to service ownership matrix.',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: 'tsk-107',
|
|
78
|
+
title: 'Prepare CRM rollout dependency board',
|
|
79
|
+
projectId: 'prj-atlas-crm',
|
|
80
|
+
projectName: 'Atlas CRM Implementation',
|
|
81
|
+
status: 'todo',
|
|
82
|
+
labels: ['PMO'],
|
|
83
|
+
assignedUserId: 'usr-carla',
|
|
84
|
+
dueDate: '2026-03-26',
|
|
85
|
+
estimatedHours: 9,
|
|
86
|
+
description: 'Track implementation dependencies before build phase starts.',
|
|
87
|
+
},
|
|
88
|
+
];
|
|
@@ -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
|
+
};
|