@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,61 @@
1
+ columns:
2
+ - type: pk
3
+ - name: calibration_session_id
4
+ type: fk
5
+ references:
6
+ table: operations_calibration_session
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: employee_id
11
+ type: fk
12
+ references:
13
+ table: operations_employee
14
+ column: id
15
+ onDelete: CASCADE
16
+ onUpdate: CASCADE
17
+ - name: employee_profile_id
18
+ type: fk
19
+ isNullable: true
20
+ references:
21
+ table: operations_employee_profile
22
+ column: id
23
+ onDelete: SET NULL
24
+ onUpdate: CASCADE
25
+ - name: current_level_id
26
+ type: fk
27
+ isNullable: true
28
+ references:
29
+ table: operations_career_level
30
+ column: id
31
+ onDelete: SET NULL
32
+ onUpdate: CASCADE
33
+ - name: proposed_level_id
34
+ type: fk
35
+ isNullable: true
36
+ references:
37
+ table: operations_career_level
38
+ column: id
39
+ onDelete: SET NULL
40
+ onUpdate: CASCADE
41
+ - name: manager_recommendation
42
+ type: text
43
+ isNullable: true
44
+ - name: final_decision
45
+ type: text
46
+ isNullable: true
47
+ - name: justification
48
+ type: text
49
+ isNullable: true
50
+ - name: impact_summary
51
+ type: text
52
+ isNullable: true
53
+ - type: created_at
54
+ - type: updated_at
55
+
56
+ indices:
57
+ - columns: [calibration_session_id]
58
+ - columns: [employee_id]
59
+ - columns: [employee_profile_id]
60
+ - columns: [current_level_id]
61
+ - columns: [proposed_level_id]
@@ -0,0 +1,25 @@
1
+ columns:
2
+ - type: pk
3
+ - name: name
4
+ type: varchar
5
+ length: 180
6
+ - name: cycle_id
7
+ type: fk
8
+ references:
9
+ table: operations_evaluation_cycle
10
+ column: id
11
+ onDelete: CASCADE
12
+ onUpdate: CASCADE
13
+ - name: date
14
+ type: date
15
+ - name: status
16
+ type: enum
17
+ values: [draft, active, completed, canceled]
18
+ default: draft
19
+ - type: created_at
20
+ - type: updated_at
21
+
22
+ indices:
23
+ - columns: [cycle_id]
24
+ - columns: [date]
25
+ - columns: [status]
@@ -0,0 +1,75 @@
1
+ columns:
2
+ - type: pk
3
+ - name: career_track_id
4
+ type: fk
5
+ references:
6
+ table: operations_career_track
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: slug
11
+ type: varchar
12
+ length: 80
13
+ - name: name
14
+ type: varchar
15
+ length: 180
16
+ - name: code
17
+ type: varchar
18
+ length: 50
19
+ - name: level_code
20
+ type: varchar
21
+ length: 50
22
+ isNullable: true
23
+ - name: level_order
24
+ type: int
25
+ - name: order_index
26
+ type: int
27
+ isNullable: true
28
+ - name: min_score
29
+ type: decimal
30
+ precision: 10
31
+ scale: 2
32
+ isNullable: true
33
+ - name: max_score
34
+ type: decimal
35
+ precision: 10
36
+ scale: 2
37
+ isNullable: true
38
+ - name: salary_min
39
+ type: decimal
40
+ precision: 12
41
+ scale: 2
42
+ isNullable: true
43
+ - name: salary_max
44
+ type: decimal
45
+ precision: 12
46
+ scale: 2
47
+ isNullable: true
48
+ - name: description
49
+ type: text
50
+ isNullable: true
51
+ - name: summary_criteria
52
+ type: text
53
+ isNullable: true
54
+ - name: expectations_summary
55
+ type: text
56
+ isNullable: true
57
+ - name: is_active
58
+ type: boolean
59
+ default: true
60
+ - type: created_at
61
+ - type: updated_at
62
+
63
+ indices:
64
+ - columns: [slug]
65
+ isUnique: true
66
+ - columns: [career_track_id]
67
+ - columns: [career_track_id, code]
68
+ isUnique: true
69
+ - columns: [career_track_id, level_code]
70
+ isUnique: true
71
+ - columns: [career_track_id, level_order]
72
+ isUnique: true
73
+ - columns: [career_track_id, order_index]
74
+ isUnique: true
75
+ - columns: [is_active]
@@ -0,0 +1,21 @@
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: is_active
13
+ type: boolean
14
+ default: true
15
+ - type: created_at
16
+ - type: updated_at
17
+
18
+ indices:
19
+ - columns: [slug]
20
+ isUnique: true
21
+ - columns: [is_active]
@@ -0,0 +1,48 @@
1
+ columns:
2
+ - type: pk
3
+ - name: slug
4
+ type: varchar
5
+ length: 80
6
+ - name: name
7
+ type: varchar
8
+ length: 180
9
+ - name: provider
10
+ type: varchar
11
+ length: 180
12
+ isNullable: true
13
+ - name: category
14
+ type: varchar
15
+ length: 120
16
+ isNullable: true
17
+ - name: default_score
18
+ type: decimal
19
+ precision: 10
20
+ scale: 2
21
+ isNullable: true
22
+ - name: required_level_id
23
+ type: fk
24
+ isNullable: true
25
+ references:
26
+ table: operations_career_level
27
+ column: id
28
+ onDelete: SET NULL
29
+ onUpdate: CASCADE
30
+ - name: description
31
+ type: text
32
+ isNullable: true
33
+ - name: is_supporting_evidence
34
+ type: boolean
35
+ default: true
36
+ - name: is_active
37
+ type: boolean
38
+ default: true
39
+ - type: created_at
40
+ - type: updated_at
41
+
42
+ indices:
43
+ - columns: [slug]
44
+ isUnique: true
45
+ - columns: [category]
46
+ - columns: [required_level_id]
47
+ - columns: [is_supporting_evidence]
48
+ - columns: [is_active]
@@ -0,0 +1,57 @@
1
+ columns:
2
+ - type: pk
3
+ - name: code
4
+ type: varchar
5
+ length: 40
6
+ - name: name
7
+ type: varchar
8
+ length: 180
9
+ - name: client_name
10
+ type: varchar
11
+ length: 180
12
+ - name: contract_type
13
+ type: enum
14
+ values: [tm, monthly, fixed]
15
+ default: tm
16
+ - name: start_date
17
+ type: date
18
+ - name: end_date
19
+ type: date
20
+ isNullable: true
21
+ - name: hourly_rate
22
+ type: decimal
23
+ precision: 12
24
+ scale: 2
25
+ isNullable: true
26
+ - name: hour_limit
27
+ type: int
28
+ isNullable: true
29
+ - name: status
30
+ type: enum
31
+ values: [draft, active, expired, renewal]
32
+ default: draft
33
+ - name: billing_rules
34
+ type: text
35
+ isNullable: true
36
+ - name: sla_summary
37
+ type: text
38
+ isNullable: true
39
+ - name: created_by_user_id
40
+ type: int
41
+ isNullable: true
42
+ - name: updated_by_user_id
43
+ type: int
44
+ isNullable: true
45
+ - name: deleted_at
46
+ type: datetime
47
+ isNullable: true
48
+ - type: created_at
49
+ - type: updated_at
50
+
51
+ indices:
52
+ - columns: [code]
53
+ isUnique: true
54
+ - columns: [status]
55
+ - columns: [start_date]
56
+ - columns: [end_date]
57
+ - columns: [deleted_at]
@@ -0,0 +1,64 @@
1
+ columns:
2
+ - type: pk
3
+ - name: user_id
4
+ type: int
5
+ - name: contract_id
6
+ type: fk
7
+ isNullable: true
8
+ references:
9
+ table: operations_contract
10
+ column: id
11
+ onDelete: SET NULL
12
+ onUpdate: CASCADE
13
+ - name: manager_employee_id
14
+ type: fk
15
+ isNullable: true
16
+ references:
17
+ table: operations_employee
18
+ column: id
19
+ onDelete: SET NULL
20
+ onUpdate: CASCADE
21
+ - name: employee_code
22
+ type: varchar
23
+ length: 32
24
+ - name: display_name
25
+ type: varchar
26
+ length: 180
27
+ - name: department
28
+ type: varchar
29
+ length: 120
30
+ isNullable: true
31
+ - name: current_role_title
32
+ type: varchar
33
+ length: 120
34
+ isNullable: true
35
+ - name: current_level_label
36
+ type: varchar
37
+ length: 120
38
+ isNullable: true
39
+ - name: hire_date
40
+ type: date
41
+ isNullable: true
42
+ - name: status
43
+ type: enum
44
+ values: [active, on_leave, inactive]
45
+ default: active
46
+ - name: notes
47
+ type: text
48
+ isNullable: true
49
+ - name: deleted_at
50
+ type: datetime
51
+ isNullable: true
52
+ - type: created_at
53
+ - type: updated_at
54
+
55
+ indices:
56
+ - columns: [user_id]
57
+ isUnique: true
58
+ - columns: [employee_code]
59
+ isUnique: true
60
+ - columns: [contract_id]
61
+ - columns: [manager_employee_id]
62
+ - columns: [department]
63
+ - columns: [status]
64
+ - columns: [deleted_at]
@@ -0,0 +1,43 @@
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: certification_id
11
+ type: fk
12
+ references:
13
+ table: operations_certification
14
+ column: id
15
+ onDelete: CASCADE
16
+ onUpdate: CASCADE
17
+ - name: obtained_at
18
+ type: date
19
+ isNullable: true
20
+ - name: valid_until
21
+ type: date
22
+ isNullable: true
23
+ - name: granted_score
24
+ type: decimal
25
+ precision: 10
26
+ scale: 2
27
+ isNullable: true
28
+ - name: proof_url
29
+ type: varchar
30
+ length: 500
31
+ isNullable: true
32
+ - name: status
33
+ type: enum
34
+ values: [planned, in_progress, achieved, expired]
35
+ default: planned
36
+ - type: created_at
37
+ - type: updated_at
38
+
39
+ indices:
40
+ - columns: [employee_id]
41
+ - columns: [certification_id]
42
+ - columns: [status]
43
+ - columns: [valid_until]
@@ -0,0 +1,61 @@
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: manager_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_id
19
+ type: fk
20
+ isNullable: true
21
+ references:
22
+ table: operations_evaluation_cycle
23
+ column: id
24
+ onDelete: SET NULL
25
+ onUpdate: CASCADE
26
+ - name: project_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: operations_project
31
+ column: id
32
+ onDelete: SET NULL
33
+ onUpdate: CASCADE
34
+ - name: date
35
+ type: date
36
+ - name: summary
37
+ type: text
38
+ isNullable: true
39
+ - name: strengths
40
+ type: text
41
+ isNullable: true
42
+ - name: growth_areas
43
+ type: text
44
+ isNullable: true
45
+ - name: commitments
46
+ type: text
47
+ isNullable: true
48
+ - name: visibility
49
+ type: enum
50
+ values: [private, team, public]
51
+ default: private
52
+ - type: created_at
53
+ - type: updated_at
54
+
55
+ indices:
56
+ - columns: [employee_id]
57
+ - columns: [manager_id]
58
+ - columns: [cycle_id]
59
+ - columns: [project_id]
60
+ - columns: [date]
61
+ - columns: [visibility]
@@ -0,0 +1,113 @@
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: evaluator_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: task_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: operations_task
31
+ column: id
32
+ onDelete: SET NULL
33
+ onUpdate: CASCADE
34
+ - name: timesheet_entry_id
35
+ type: fk
36
+ isNullable: true
37
+ references:
38
+ table: operations_timesheet_entry
39
+ column: id
40
+ onDelete: SET NULL
41
+ onUpdate: CASCADE
42
+ - name: evaluation_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: cycle_id
51
+ type: fk
52
+ isNullable: true
53
+ references:
54
+ table: operations_evaluation_cycle
55
+ column: id
56
+ onDelete: SET NULL
57
+ onUpdate: CASCADE
58
+ - name: evaluation_date
59
+ type: date
60
+ - name: evaluation_type
61
+ type: enum
62
+ values: [cycle, ad_hoc]
63
+ default: cycle
64
+ - name: total_score
65
+ type: decimal
66
+ precision: 10
67
+ scale: 2
68
+ isNullable: true
69
+ - name: generated_score
70
+ type: decimal
71
+ precision: 10
72
+ scale: 2
73
+ isNullable: true
74
+ - name: impact_individual
75
+ type: text
76
+ isNullable: true
77
+ - name: impact_team
78
+ type: text
79
+ isNullable: true
80
+ - name: impact_org
81
+ type: text
82
+ isNullable: true
83
+ - name: evidence_summary
84
+ type: text
85
+ isNullable: true
86
+ - name: public_comment
87
+ type: text
88
+ isNullable: true
89
+ - name: private_comment
90
+ type: text
91
+ isNullable: true
92
+ - name: status
93
+ type: enum
94
+ values: [draft, submitted, acknowledged, finalized]
95
+ default: draft
96
+ - name: deleted_at
97
+ type: datetime
98
+ isNullable: true
99
+ - type: created_at
100
+ - type: updated_at
101
+
102
+ indices:
103
+ - columns: [employee_id]
104
+ - columns: [evaluator_employee_id]
105
+ - columns: [project_id]
106
+ - columns: [task_id]
107
+ - columns: [timesheet_entry_id]
108
+ - columns: [evaluation_cycle_id]
109
+ - columns: [cycle_id]
110
+ - columns: [evaluation_date]
111
+ - columns: [evaluation_type]
112
+ - columns: [status]
113
+ - columns: [deleted_at]
@@ -0,0 +1,39 @@
1
+ columns:
2
+ - type: pk
3
+ - name: employee_evaluation_id
4
+ type: fk
5
+ references:
6
+ table: operations_employee_evaluation
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: performance_criterion_id
11
+ type: fk
12
+ references:
13
+ table: operations_performance_criterion
14
+ column: id
15
+ onDelete: CASCADE
16
+ onUpdate: CASCADE
17
+ - name: rating
18
+ type: decimal
19
+ precision: 5
20
+ scale: 2
21
+ - name: applied_weight
22
+ type: decimal
23
+ precision: 5
24
+ scale: 2
25
+ - name: generated_score
26
+ type: decimal
27
+ precision: 10
28
+ scale: 2
29
+ - name: notes
30
+ type: text
31
+ isNullable: true
32
+ - type: created_at
33
+ - type: updated_at
34
+
35
+ indices:
36
+ - columns: [employee_evaluation_id]
37
+ - columns: [performance_criterion_id]
38
+ - columns: [employee_evaluation_id, performance_criterion_id]
39
+ isUnique: true
@@ -0,0 +1,80 @@
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: career_track_id
11
+ type: fk
12
+ isNullable: true
13
+ references:
14
+ table: operations_career_track
15
+ column: id
16
+ onDelete: SET NULL
17
+ onUpdate: CASCADE
18
+ - name: current_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: target_level_id
27
+ type: fk
28
+ isNullable: true
29
+ references:
30
+ table: operations_career_level
31
+ column: id
32
+ onDelete: SET NULL
33
+ onUpdate: CASCADE
34
+ - name: admission_date
35
+ type: date
36
+ isNullable: true
37
+ - name: current_role_title
38
+ type: varchar
39
+ length: 120
40
+ isNullable: true
41
+ - name: impact_summary
42
+ type: text
43
+ isNullable: true
44
+ - name: consolidated_score
45
+ type: decimal
46
+ precision: 10
47
+ scale: 2
48
+ isNullable: true
49
+ - name: readiness_status
50
+ type: enum
51
+ values: [not_ready, progressing, ready, exceeding]
52
+ default: progressing
53
+ - name: operating_next_level_since
54
+ type: date
55
+ isNullable: true
56
+ - name: promotion_eligibility_status
57
+ type: enum
58
+ values: [not_ready, developing, eligible, recommended, promoted]
59
+ default: developing
60
+ - name: last_score_event_at
61
+ type: datetime
62
+ isNullable: true
63
+ - name: notes
64
+ type: text
65
+ isNullable: true
66
+ - name: deleted_at
67
+ type: datetime
68
+ isNullable: true
69
+ - type: created_at
70
+ - type: updated_at
71
+
72
+ indices:
73
+ - columns: [employee_id]
74
+ isUnique: true
75
+ - columns: [career_track_id]
76
+ - columns: [current_level_id]
77
+ - columns: [target_level_id]
78
+ - columns: [readiness_status]
79
+ - columns: [promotion_eligibility_status]
80
+ - columns: [deleted_at]