@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.
Files changed (108) hide show
  1. package/README.md +122 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/operations-data.controller.d.ts +139 -0
  7. package/dist/operations-data.controller.d.ts.map +1 -0
  8. package/dist/operations-data.controller.js +113 -0
  9. package/dist/operations-data.controller.js.map +1 -0
  10. package/dist/operations-growth.controller.d.ts +48 -0
  11. package/dist/operations-growth.controller.d.ts.map +1 -0
  12. package/dist/operations-growth.controller.js +90 -0
  13. package/dist/operations-growth.controller.js.map +1 -0
  14. package/dist/operations.module.d.ts.map +1 -1
  15. package/dist/operations.module.js +10 -4
  16. package/dist/operations.module.js.map +1 -1
  17. package/dist/operations.service.d.ts +178 -0
  18. package/dist/operations.service.d.ts.map +1 -0
  19. package/dist/operations.service.js +134 -0
  20. package/dist/operations.service.js.map +1 -0
  21. package/hedhog/data/menu.yaml +251 -132
  22. package/hedhog/data/operations_career_level.yaml +102 -0
  23. package/hedhog/data/operations_career_track.yaml +8 -0
  24. package/hedhog/data/operations_certification.yaml +38 -0
  25. package/hedhog/data/operations_evaluation_cycle.yaml +18 -0
  26. package/hedhog/data/operations_performance_criterion.yaml +48 -0
  27. package/hedhog/data/role.yaml +14 -7
  28. package/hedhog/data/route.yaml +143 -80
  29. package/hedhog/frontend/app/_components/allocation-calendar.tsx.ejs +56 -56
  30. package/hedhog/frontend/app/_components/kanban-board.tsx.ejs +626 -83
  31. package/hedhog/frontend/app/_components/operations-header.tsx.ejs +29 -29
  32. package/hedhog/frontend/app/_components/section-card.tsx.ejs +32 -32
  33. package/hedhog/frontend/app/_components/status-badge.tsx.ejs +15 -15
  34. package/hedhog/frontend/app/_components/timesheet-entry-dialog.tsx.ejs +142 -142
  35. package/hedhog/frontend/app/_lib/hooks/use-operations-data.ts.ejs +41 -41
  36. package/hedhog/frontend/app/_lib/hooks/use-operations-growth-data.ts.ejs +63 -0
  37. package/hedhog/frontend/app/_lib/mocks/allocations.mock.ts.ejs +74 -74
  38. package/hedhog/frontend/app/_lib/mocks/contracts.mock.ts.ejs +74 -74
  39. package/hedhog/frontend/app/_lib/mocks/operations-growth.mock.ts.ejs +824 -0
  40. package/hedhog/frontend/app/_lib/mocks/projects.mock.ts.ejs +455 -60
  41. package/hedhog/frontend/app/_lib/mocks/tasks.mock.ts.ejs +117 -88
  42. package/hedhog/frontend/app/_lib/mocks/timesheets.mock.ts.ejs +84 -84
  43. package/hedhog/frontend/app/_lib/mocks/users.mock.ts.ejs +67 -67
  44. package/hedhog/frontend/app/_lib/services/contracts.service.ts.ejs +10 -10
  45. package/hedhog/frontend/app/_lib/services/operations-growth.service.ts.ejs +31 -0
  46. package/hedhog/frontend/app/_lib/services/projects.service.ts.ejs +10 -10
  47. package/hedhog/frontend/app/_lib/services/tasks.service.ts.ejs +10 -10
  48. package/hedhog/frontend/app/_lib/services/timesheets.service.ts.ejs +10 -10
  49. package/hedhog/frontend/app/_lib/types/operations-growth.ts.ejs +209 -0
  50. package/hedhog/frontend/app/_lib/types/operations.ts.ejs +156 -95
  51. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +25 -25
  52. package/hedhog/frontend/app/_lib/utils/growth.ts.ejs +62 -0
  53. package/hedhog/frontend/app/_lib/utils/metrics.ts.ejs +103 -103
  54. package/hedhog/frontend/app/_lib/utils/status.ts.ejs +80 -80
  55. package/hedhog/frontend/app/allocations/page.tsx.ejs +155 -99
  56. package/hedhog/frontend/app/approvals/page.tsx.ejs +147 -147
  57. package/hedhog/frontend/app/career/page.tsx.ejs +143 -0
  58. package/hedhog/frontend/app/certifications/page.tsx.ejs +202 -0
  59. package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +108 -108
  60. package/hedhog/frontend/app/contracts/page.tsx.ejs +181 -124
  61. package/hedhog/frontend/app/evaluations/page.tsx.ejs +278 -0
  62. package/hedhog/frontend/app/goals/page.tsx.ejs +171 -0
  63. package/hedhog/frontend/app/growth/page.tsx.ejs +288 -0
  64. package/hedhog/frontend/app/layout.tsx.ejs +9 -9
  65. package/hedhog/frontend/app/manager/page.tsx.ejs +175 -0
  66. package/hedhog/frontend/app/page.tsx.ejs +177 -177
  67. package/hedhog/frontend/app/projects/[id]/page.tsx.ejs +936 -186
  68. package/hedhog/frontend/app/projects/page.tsx.ejs +1074 -111
  69. package/hedhog/frontend/app/rewards/page.tsx.ejs +196 -0
  70. package/hedhog/frontend/app/tasks/page.tsx.ejs +999 -47
  71. package/hedhog/frontend/app/timesheets/page.tsx.ejs +126 -126
  72. package/hedhog/frontend/messages/en.json +454 -142
  73. package/hedhog/frontend/messages/pt.json +454 -142
  74. package/hedhog/table/operations_allocation.yaml +52 -0
  75. package/hedhog/table/operations_calibration_item.yaml +61 -0
  76. package/hedhog/table/operations_calibration_session.yaml +25 -0
  77. package/hedhog/table/operations_career_level.yaml +75 -0
  78. package/hedhog/table/operations_career_track.yaml +21 -0
  79. package/hedhog/table/operations_certification.yaml +48 -0
  80. package/hedhog/table/operations_contract.yaml +57 -0
  81. package/hedhog/table/operations_employee.yaml +64 -0
  82. package/hedhog/table/operations_employee_certification.yaml +43 -0
  83. package/hedhog/table/operations_employee_connect.yaml +61 -0
  84. package/hedhog/table/operations_employee_evaluation.yaml +113 -0
  85. package/hedhog/table/operations_employee_evaluation_item.yaml +39 -0
  86. package/hedhog/table/operations_employee_profile.yaml +80 -0
  87. package/hedhog/table/operations_employee_skill_matrix.yaml +30 -0
  88. package/hedhog/table/operations_evaluation_cycle.yaml +31 -0
  89. package/hedhog/table/operations_goal.yaml +67 -0
  90. package/hedhog/table/operations_goal_progress.yaml +31 -0
  91. package/hedhog/table/operations_performance_criterion.yaml +29 -0
  92. package/hedhog/table/operations_project.yaml +66 -0
  93. package/hedhog/table/operations_promotion_readiness.yaml +49 -0
  94. package/hedhog/table/operations_promotion_recommendation.yaml +63 -0
  95. package/hedhog/table/operations_public_recognition.yaml +46 -0
  96. package/hedhog/table/operations_reward.yaml +100 -0
  97. package/hedhog/table/operations_score_event.yaml +81 -0
  98. package/hedhog/table/operations_task.yaml +60 -0
  99. package/hedhog/table/operations_timesheet.yaml +49 -0
  100. package/hedhog/table/operations_timesheet_entry.yaml +51 -0
  101. package/package.json +4 -4
  102. package/src/index.ts +2 -1
  103. package/src/language/en.json +8 -8
  104. package/src/language/pt.json +8 -8
  105. package/src/operations-data.controller.ts +54 -0
  106. package/src/operations-growth.controller.ts +44 -0
  107. package/src/operations.module.ts +21 -15
  108. package/src/operations.service.ts +137 -0
@@ -0,0 +1,30 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: skill_name
11
+ type: varchar
12
+ length: 180
13
+ - name: current_level_label
14
+ type: varchar
15
+ length: 120
16
+ isNullable: true
17
+ - name: expected_level_label
18
+ type: varchar
19
+ length: 120
20
+ isNullable: true
21
+ - name: notes
22
+ type: text
23
+ isNullable: true
24
+ - type: created_at
25
+ - type: updated_at
26
+
27
+ indices:
28
+ - columns: [employee_id]
29
+ - columns: [employee_id, skill_name]
30
+ isUnique: true
@@ -0,0 +1,31 @@
1
+ columns:
2
+ - type: pk
3
+ - name: name
4
+ type: varchar
5
+ length: 180
6
+ - name: cycle_type
7
+ type: enum
8
+ values: [monthly, quarterly, semiannual, annual, custom]
9
+ - name: start_date
10
+ type: date
11
+ - name: end_date
12
+ type: date
13
+ - name: status
14
+ type: enum
15
+ values: [draft, active, closed, archived]
16
+ default: draft
17
+ - name: description
18
+ type: text
19
+ isNullable: true
20
+ - name: deleted_at
21
+ type: datetime
22
+ isNullable: true
23
+ - type: created_at
24
+ - type: updated_at
25
+
26
+ indices:
27
+ - columns: [cycle_type]
28
+ - columns: [status]
29
+ - columns: [start_date]
30
+ - columns: [end_date]
31
+ - columns: [deleted_at]
@@ -0,0 +1,67 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: operations_employee
8
+ column: id
9
+ onDelete: SET NULL
10
+ onUpdate: CASCADE
11
+ - name: project_id
12
+ type: fk
13
+ isNullable: true
14
+ references:
15
+ table: operations_project
16
+ column: id
17
+ onDelete: SET NULL
18
+ onUpdate: CASCADE
19
+ - name: title
20
+ type: varchar
21
+ length: 180
22
+ - name: description
23
+ type: text
24
+ isNullable: true
25
+ - name: goal_type
26
+ type: enum
27
+ values: [individual, team, cycle, project]
28
+ default: individual
29
+ - name: team_name
30
+ type: varchar
31
+ length: 120
32
+ isNullable: true
33
+ - name: period_type
34
+ type: enum
35
+ values: [monthly, quarterly, semiannual, annual, custom]
36
+ default: custom
37
+ - name: period_start
38
+ type: date
39
+ - name: period_end
40
+ type: date
41
+ - name: target_score
42
+ type: decimal
43
+ precision: 10
44
+ scale: 2
45
+ isNullable: true
46
+ - name: completion_rule
47
+ type: text
48
+ isNullable: true
49
+ - name: status
50
+ type: enum
51
+ values: [draft, active, at_risk, completed, canceled]
52
+ default: draft
53
+ - name: deleted_at
54
+ type: datetime
55
+ isNullable: true
56
+ - type: created_at
57
+ - type: updated_at
58
+
59
+ indices:
60
+ - columns: [employee_id]
61
+ - columns: [project_id]
62
+ - columns: [goal_type]
63
+ - columns: [period_type]
64
+ - columns: [period_start]
65
+ - columns: [period_end]
66
+ - columns: [status]
67
+ - columns: [deleted_at]
@@ -0,0 +1,31 @@
1
+ columns:
2
+ - type: pk
3
+ - name: goal_id
4
+ type: fk
5
+ references:
6
+ table: operations_goal
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: reference_date
11
+ type: date
12
+ - name: progress_percent
13
+ type: decimal
14
+ precision: 5
15
+ scale: 2
16
+ - name: accumulated_score
17
+ type: decimal
18
+ precision: 10
19
+ scale: 2
20
+ isNullable: true
21
+ - name: notes
22
+ type: text
23
+ isNullable: true
24
+ - type: created_at
25
+ - type: updated_at
26
+
27
+ indices:
28
+ - columns: [goal_id]
29
+ - columns: [reference_date]
30
+ - columns: [goal_id, reference_date]
31
+ isUnique: true
@@ -0,0 +1,29 @@
1
+ columns:
2
+ - type: pk
3
+ - name: slug
4
+ type: varchar
5
+ length: 60
6
+ - name: name
7
+ type: varchar
8
+ length: 180
9
+ - name: description
10
+ type: text
11
+ isNullable: true
12
+ - name: weight
13
+ type: decimal
14
+ precision: 5
15
+ scale: 2
16
+ - name: score_type
17
+ type: enum
18
+ values: [points, percentage, rating]
19
+ default: points
20
+ - name: is_active
21
+ type: boolean
22
+ default: true
23
+ - type: created_at
24
+ - type: updated_at
25
+
26
+ indices:
27
+ - columns: [slug]
28
+ isUnique: true
29
+ - columns: [is_active]
@@ -0,0 +1,66 @@
1
+ columns:
2
+ - type: pk
3
+ - name: contract_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: operations_contract
8
+ column: id
9
+ onDelete: SET NULL
10
+ onUpdate: CASCADE
11
+ - name: owner_employee_id
12
+ type: fk
13
+ isNullable: true
14
+ references:
15
+ table: operations_employee
16
+ column: id
17
+ onDelete: SET NULL
18
+ onUpdate: CASCADE
19
+ - name: code
20
+ type: varchar
21
+ length: 40
22
+ - name: name
23
+ type: varchar
24
+ length: 180
25
+ - name: client_name
26
+ type: varchar
27
+ length: 180
28
+ isNullable: true
29
+ - name: description
30
+ type: text
31
+ isNullable: true
32
+ - name: status
33
+ type: enum
34
+ values: [planning, active, at_risk, paused, completed, archived]
35
+ default: planning
36
+ - name: progress_percent
37
+ type: decimal
38
+ precision: 5
39
+ scale: 2
40
+ isNullable: true
41
+ - name: budget
42
+ type: decimal
43
+ precision: 12
44
+ scale: 2
45
+ isNullable: true
46
+ - name: start_date
47
+ type: date
48
+ isNullable: true
49
+ - name: end_date
50
+ type: date
51
+ isNullable: true
52
+ - name: deleted_at
53
+ type: datetime
54
+ isNullable: true
55
+ - type: created_at
56
+ - type: updated_at
57
+
58
+ indices:
59
+ - columns: [code]
60
+ isUnique: true
61
+ - columns: [contract_id]
62
+ - columns: [owner_employee_id]
63
+ - columns: [status]
64
+ - columns: [start_date]
65
+ - columns: [end_date]
66
+ - columns: [deleted_at]
@@ -0,0 +1,49 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: current_level_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_career_level
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: target_level_id
19
+ type: fk
20
+ isNullable: true
21
+ references:
22
+ table: operations_career_level
23
+ column: id
24
+ onDelete: SET NULL
25
+ onUpdate: CASCADE
26
+ - name: readiness_status
27
+ type: enum
28
+ values: [not_ready, progressing, ready, exceeding]
29
+ default: progressing
30
+ - name: operating_since
31
+ type: date
32
+ isNullable: true
33
+ - name: evidence_summary
34
+ type: text
35
+ isNullable: true
36
+ - name: manager_recommendation
37
+ type: text
38
+ isNullable: true
39
+ - name: calibration_result
40
+ type: text
41
+ isNullable: true
42
+ - type: created_at
43
+ - type: updated_at
44
+
45
+ indices:
46
+ - columns: [employee_id]
47
+ - columns: [current_level_id]
48
+ - columns: [target_level_id]
49
+ - columns: [readiness_status]
@@ -0,0 +1,63 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: current_level_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_career_level
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: suggested_level_id
19
+ type: fk
20
+ isNullable: true
21
+ references:
22
+ table: operations_career_level
23
+ column: id
24
+ onDelete: SET NULL
25
+ onUpdate: CASCADE
26
+ - name: evaluation_cycle_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: operations_evaluation_cycle
31
+ column: id
32
+ onDelete: SET NULL
33
+ onUpdate: CASCADE
34
+ - name: current_score
35
+ type: decimal
36
+ precision: 10
37
+ scale: 2
38
+ isNullable: true
39
+ - name: required_score
40
+ type: decimal
41
+ precision: 10
42
+ scale: 2
43
+ isNullable: true
44
+ - name: is_eligible
45
+ type: boolean
46
+ default: false
47
+ - name: justification
48
+ type: text
49
+ isNullable: true
50
+ - name: status
51
+ type: enum
52
+ values: [draft, under_review, approved, rejected, promoted]
53
+ default: draft
54
+ - type: created_at
55
+ - type: updated_at
56
+
57
+ indices:
58
+ - columns: [employee_id]
59
+ - columns: [current_level_id]
60
+ - columns: [suggested_level_id]
61
+ - columns: [evaluation_cycle_id]
62
+ - columns: [is_eligible]
63
+ - columns: [status]
@@ -0,0 +1,46 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: author_employee_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_employee
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: project_id
19
+ type: fk
20
+ isNullable: true
21
+ references:
22
+ table: operations_project
23
+ column: id
24
+ onDelete: SET NULL
25
+ onUpdate: CASCADE
26
+ - name: message
27
+ type: text
28
+ - name: related_score
29
+ type: decimal
30
+ precision: 10
31
+ scale: 2
32
+ isNullable: true
33
+ - name: recognition_date
34
+ type: date
35
+ - name: is_visible
36
+ type: boolean
37
+ default: true
38
+ - type: created_at
39
+ - type: updated_at
40
+
41
+ indices:
42
+ - columns: [employee_id]
43
+ - columns: [author_employee_id]
44
+ - columns: [project_id]
45
+ - columns: [recognition_date]
46
+ - columns: [is_visible]
@@ -0,0 +1,100 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: project_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_project
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: evaluation_id
19
+ type: fk
20
+ isNullable: true
21
+ references:
22
+ table: operations_employee_evaluation
23
+ column: id
24
+ onDelete: SET NULL
25
+ onUpdate: CASCADE
26
+ - name: goal_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: operations_goal
31
+ column: id
32
+ onDelete: SET NULL
33
+ onUpdate: CASCADE
34
+ - name: certification_id
35
+ type: fk
36
+ isNullable: true
37
+ references:
38
+ table: operations_certification
39
+ column: id
40
+ onDelete: SET NULL
41
+ onUpdate: CASCADE
42
+ - name: cycle_id
43
+ type: fk
44
+ isNullable: true
45
+ references:
46
+ table: operations_evaluation_cycle
47
+ column: id
48
+ onDelete: SET NULL
49
+ onUpdate: CASCADE
50
+ - name: reward_type
51
+ type: enum
52
+ values: [financial, bonus, recognition, badge, gift, other, merit_increase, equity]
53
+ default: recognition
54
+ - name: origin_type
55
+ type: enum
56
+ values: [goal, evaluation, certification, spot, manual, project]
57
+ default: manual
58
+ - name: impact_reference_id
59
+ type: int
60
+ isNullable: true
61
+ - name: amount
62
+ type: decimal
63
+ precision: 12
64
+ scale: 2
65
+ isNullable: true
66
+ - name: currency
67
+ type: varchar
68
+ length: 3
69
+ isNullable: true
70
+ - name: related_score
71
+ type: decimal
72
+ precision: 10
73
+ scale: 2
74
+ isNullable: true
75
+ - name: description
76
+ type: text
77
+ - name: justification
78
+ type: text
79
+ isNullable: true
80
+ - name: reward_date
81
+ type: date
82
+ - name: status
83
+ type: enum
84
+ values: [planned, granted, canceled]
85
+ default: planned
86
+ - type: created_at
87
+ - type: updated_at
88
+
89
+ indices:
90
+ - columns: [employee_id]
91
+ - columns: [project_id]
92
+ - columns: [evaluation_id]
93
+ - columns: [goal_id]
94
+ - columns: [certification_id]
95
+ - columns: [cycle_id]
96
+ - columns: [reward_type]
97
+ - columns: [origin_type]
98
+ - columns: [impact_reference_id]
99
+ - columns: [status]
100
+ - columns: [reward_date]
@@ -0,0 +1,81 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: project_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_project
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: evaluation_id
19
+ type: fk
20
+ isNullable: true
21
+ references:
22
+ table: operations_employee_evaluation
23
+ column: id
24
+ onDelete: SET NULL
25
+ onUpdate: CASCADE
26
+ - name: goal_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: operations_goal
31
+ column: id
32
+ onDelete: SET NULL
33
+ onUpdate: CASCADE
34
+ - name: certification_id
35
+ type: fk
36
+ isNullable: true
37
+ references:
38
+ table: operations_certification
39
+ column: id
40
+ onDelete: SET NULL
41
+ onUpdate: CASCADE
42
+ - name: recognition_id
43
+ type: fk
44
+ isNullable: true
45
+ references:
46
+ table: operations_public_recognition
47
+ column: id
48
+ onDelete: SET NULL
49
+ onUpdate: CASCADE
50
+ - name: source_type
51
+ type: enum
52
+ values: [evaluation, certification, goal, recognition, manual_adjustment, project]
53
+ default: manual_adjustment
54
+ - name: impact_reference_type
55
+ type: enum
56
+ values: [evaluation, certification, goal, recognition, manual]
57
+ isNullable: true
58
+ - name: source_id
59
+ type: int
60
+ isNullable: true
61
+ - name: score_delta
62
+ type: decimal
63
+ precision: 10
64
+ scale: 2
65
+ - name: description
66
+ type: text
67
+ - name: reference_date
68
+ type: date
69
+ - type: created_at
70
+ - type: updated_at
71
+
72
+ indices:
73
+ - columns: [employee_id]
74
+ - columns: [project_id]
75
+ - columns: [evaluation_id]
76
+ - columns: [goal_id]
77
+ - columns: [certification_id]
78
+ - columns: [recognition_id]
79
+ - columns: [source_type]
80
+ - columns: [impact_reference_type]
81
+ - columns: [reference_date]
@@ -0,0 +1,60 @@
1
+ columns:
2
+ - type: pk
3
+ - name: project_id
4
+ type: fk
5
+ isNullable: true
6
+ references:
7
+ table: operations_project
8
+ column: id
9
+ onDelete: SET NULL
10
+ onUpdate: CASCADE
11
+ - name: assignee_employee_id
12
+ type: fk
13
+ isNullable: true
14
+ references:
15
+ table: operations_employee
16
+ column: id
17
+ onDelete: SET NULL
18
+ onUpdate: CASCADE
19
+ - name: external_reference
20
+ type: varchar
21
+ length: 80
22
+ isNullable: true
23
+ - name: title
24
+ type: varchar
25
+ length: 180
26
+ - name: description
27
+ type: text
28
+ isNullable: true
29
+ - name: status
30
+ type: enum
31
+ values: [backlog, todo, in_progress, review, done, canceled]
32
+ default: backlog
33
+ - name: priority
34
+ type: enum
35
+ values: [low, medium, high, urgent]
36
+ default: medium
37
+ - name: estimated_hours
38
+ type: decimal
39
+ precision: 6
40
+ scale: 2
41
+ isNullable: true
42
+ - name: due_date
43
+ type: date
44
+ isNullable: true
45
+ - name: completed_at
46
+ type: datetime
47
+ isNullable: true
48
+ - name: deleted_at
49
+ type: datetime
50
+ isNullable: true
51
+ - type: created_at
52
+ - type: updated_at
53
+
54
+ indices:
55
+ - columns: [project_id]
56
+ - columns: [assignee_employee_id]
57
+ - columns: [status]
58
+ - columns: [priority]
59
+ - columns: [due_date]
60
+ - columns: [deleted_at]
@@ -0,0 +1,49 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: approver_employee_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_employee
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: cycle_start_date
19
+ type: date
20
+ - name: cycle_end_date
21
+ type: date
22
+ - name: status
23
+ type: enum
24
+ values: [draft, submitted, approved, rejected]
25
+ default: draft
26
+ - name: submitted_at
27
+ type: datetime
28
+ isNullable: true
29
+ - name: reviewed_at
30
+ type: datetime
31
+ isNullable: true
32
+ - name: notes
33
+ type: text
34
+ isNullable: true
35
+ - name: deleted_at
36
+ type: datetime
37
+ isNullable: true
38
+ - type: created_at
39
+ - type: updated_at
40
+
41
+ indices:
42
+ - columns: [employee_id]
43
+ - columns: [approver_employee_id]
44
+ - columns: [status]
45
+ - columns: [cycle_start_date]
46
+ - columns: [cycle_end_date]
47
+ - columns: [employee_id, cycle_start_date, cycle_end_date]
48
+ isUnique: true
49
+ - columns: [deleted_at]