@hed-hog/operations 0.0.303 → 0.0.305

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 (178) hide show
  1. package/README.md +200 -43
  2. package/dist/controllers/operations-approvals.controller.d.ts +9 -0
  3. package/dist/controllers/operations-approvals.controller.d.ts.map +1 -0
  4. package/dist/controllers/operations-approvals.controller.js +64 -0
  5. package/dist/controllers/operations-approvals.controller.js.map +1 -0
  6. package/dist/controllers/operations-collaborators.controller.d.ts +223 -0
  7. package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -0
  8. package/dist/controllers/operations-collaborators.controller.js +96 -0
  9. package/dist/controllers/operations-collaborators.controller.js.map +1 -0
  10. package/dist/controllers/operations-contracts.controller.d.ts +683 -0
  11. package/dist/controllers/operations-contracts.controller.d.ts.map +1 -0
  12. package/dist/controllers/operations-contracts.controller.js +198 -0
  13. package/dist/controllers/operations-contracts.controller.js.map +1 -0
  14. package/dist/controllers/operations-org-structure.controller.d.ts +108 -0
  15. package/dist/controllers/operations-org-structure.controller.d.ts.map +1 -0
  16. package/dist/controllers/operations-org-structure.controller.js +143 -0
  17. package/dist/controllers/operations-org-structure.controller.js.map +1 -0
  18. package/dist/controllers/operations-projects.controller.d.ts +184 -0
  19. package/dist/controllers/operations-projects.controller.d.ts.map +1 -0
  20. package/dist/controllers/operations-projects.controller.js +87 -0
  21. package/dist/controllers/operations-projects.controller.js.map +1 -0
  22. package/dist/controllers/operations-tasks.controller.d.ts +85 -0
  23. package/dist/controllers/operations-tasks.controller.d.ts.map +1 -0
  24. package/dist/controllers/operations-tasks.controller.js +90 -0
  25. package/dist/controllers/operations-tasks.controller.js.map +1 -0
  26. package/dist/controllers/operations-timesheets.controller.d.ts +99 -0
  27. package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -0
  28. package/dist/controllers/operations-timesheets.controller.js +154 -0
  29. package/dist/controllers/operations-timesheets.controller.js.map +1 -0
  30. package/dist/dto/create-collaborator-type.dto.d.ts +10 -0
  31. package/dist/dto/create-collaborator-type.dto.d.ts.map +1 -0
  32. package/dist/dto/create-collaborator-type.dto.js +56 -0
  33. package/dist/dto/create-collaborator-type.dto.js.map +1 -0
  34. package/dist/dto/create-collaborator.dto.d.ts +42 -0
  35. package/dist/dto/create-collaborator.dto.d.ts.map +1 -0
  36. package/dist/dto/create-collaborator.dto.js +228 -0
  37. package/dist/dto/create-collaborator.dto.js.map +1 -0
  38. package/dist/dto/create-schedule-adjustment-request.dto.d.ts +17 -0
  39. package/dist/dto/create-schedule-adjustment-request.dto.d.ts.map +1 -0
  40. package/dist/dto/create-schedule-adjustment-request.dto.js +89 -0
  41. package/dist/dto/create-schedule-adjustment-request.dto.js.map +1 -0
  42. package/dist/dto/create-task.dto.d.ts +14 -0
  43. package/dist/dto/create-task.dto.d.ts.map +1 -0
  44. package/dist/dto/create-task.dto.js +83 -0
  45. package/dist/dto/create-task.dto.js.map +1 -0
  46. package/dist/dto/create-time-off-request.dto.d.ts +9 -0
  47. package/dist/dto/create-time-off-request.dto.d.ts.map +1 -0
  48. package/dist/dto/create-time-off-request.dto.js +54 -0
  49. package/dist/dto/create-time-off-request.dto.js.map +1 -0
  50. package/dist/dto/create-timesheet-entry.dto.d.ts +12 -0
  51. package/dist/dto/create-timesheet-entry.dto.d.ts.map +1 -0
  52. package/dist/dto/create-timesheet-entry.dto.js +75 -0
  53. package/dist/dto/create-timesheet-entry.dto.js.map +1 -0
  54. package/dist/dto/list-collaborator-types.dto.d.ts +4 -0
  55. package/dist/dto/list-collaborator-types.dto.d.ts.map +1 -0
  56. package/dist/dto/list-collaborator-types.dto.js +29 -0
  57. package/dist/dto/list-collaborator-types.dto.js.map +1 -0
  58. package/dist/dto/list-collaborators.dto.d.ts +8 -0
  59. package/dist/dto/list-collaborators.dto.d.ts.map +1 -0
  60. package/dist/dto/list-collaborators.dto.js +42 -0
  61. package/dist/dto/list-collaborators.dto.js.map +1 -0
  62. package/dist/dto/list-project-options.dto.d.ts +4 -0
  63. package/dist/dto/list-project-options.dto.d.ts.map +1 -0
  64. package/dist/dto/list-project-options.dto.js +8 -0
  65. package/dist/dto/list-project-options.dto.js.map +1 -0
  66. package/dist/dto/list-tasks.dto.d.ts +7 -0
  67. package/dist/dto/list-tasks.dto.d.ts.map +1 -0
  68. package/dist/dto/list-tasks.dto.js +38 -0
  69. package/dist/dto/list-tasks.dto.js.map +1 -0
  70. package/dist/dto/list-timesheet-entries.dto.d.ts +10 -0
  71. package/dist/dto/list-timesheet-entries.dto.d.ts.map +1 -0
  72. package/dist/dto/list-timesheet-entries.dto.js +54 -0
  73. package/dist/dto/list-timesheet-entries.dto.js.map +1 -0
  74. package/dist/dto/update-collaborator-type.dto.d.ts +4 -0
  75. package/dist/dto/update-collaborator-type.dto.d.ts.map +1 -0
  76. package/dist/dto/update-collaborator-type.dto.js +8 -0
  77. package/dist/dto/update-collaborator-type.dto.js.map +1 -0
  78. package/dist/dto/update-collaborator.dto.d.ts +4 -0
  79. package/dist/dto/update-collaborator.dto.d.ts.map +1 -0
  80. package/dist/dto/update-collaborator.dto.js +8 -0
  81. package/dist/dto/update-collaborator.dto.js.map +1 -0
  82. package/dist/dto/update-task.dto.d.ts +14 -0
  83. package/dist/dto/update-task.dto.d.ts.map +1 -0
  84. package/dist/dto/update-task.dto.js +84 -0
  85. package/dist/dto/update-task.dto.js.map +1 -0
  86. package/dist/operations.controller.d.ts +0 -1045
  87. package/dist/operations.controller.d.ts.map +1 -1
  88. package/dist/operations.controller.js +0 -429
  89. package/dist/operations.controller.js.map +1 -1
  90. package/dist/operations.module.d.ts.map +1 -1
  91. package/dist/operations.module.js +23 -2
  92. package/dist/operations.module.js.map +1 -1
  93. package/dist/operations.service.d.ts +429 -8
  94. package/dist/operations.service.d.ts.map +1 -1
  95. package/dist/operations.service.js +1931 -165
  96. package/dist/operations.service.js.map +1 -1
  97. package/dist/operations.service.spec.js +315 -1
  98. package/dist/operations.service.spec.js.map +1 -1
  99. package/dist/services/shared/operations-access.service.d.ts +16 -0
  100. package/dist/services/shared/operations-access.service.d.ts.map +1 -0
  101. package/dist/services/shared/operations-access.service.js +48 -0
  102. package/dist/services/shared/operations-access.service.js.map +1 -0
  103. package/hedhog/data/dashboard.yaml +20 -0
  104. package/hedhog/data/dashboard_component.yaml +274 -0
  105. package/hedhog/data/dashboard_component_role.yaml +174 -0
  106. package/hedhog/data/dashboard_item.yaml +299 -0
  107. package/hedhog/data/dashboard_role.yaml +20 -0
  108. package/hedhog/data/menu.yaml +30 -13
  109. package/hedhog/data/operations_collaborator_type.yaml +76 -0
  110. package/hedhog/data/route.yaml +196 -0
  111. package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +231 -0
  112. package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +125 -40
  113. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +740 -106
  114. package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +256 -256
  115. package/hedhog/frontend/app/_components/contract-form-screen.tsx.ejs +7 -7
  116. package/hedhog/frontend/app/_components/contract-template-form-screen.tsx.ejs +306 -306
  117. package/hedhog/frontend/app/_components/contract-template-select-with-create.tsx.ejs +247 -247
  118. package/hedhog/frontend/app/_components/contract-wizard-sheet.tsx.ejs +3520 -3520
  119. package/hedhog/frontend/app/_components/department-select-with-create.tsx.ejs +38 -16
  120. package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +1504 -52
  121. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +1017 -649
  122. package/hedhog/frontend/app/_components/section-card.tsx.ejs +25 -18
  123. package/hedhog/frontend/app/_components/system-user-select-with-create.tsx.ejs +609 -0
  124. package/hedhog/frontend/app/_components/timesheet-task-create-sheet.tsx.ejs +213 -0
  125. package/hedhog/frontend/app/_lib/api.ts.ejs +30 -1
  126. package/hedhog/frontend/app/_lib/types.ts.ejs +147 -39
  127. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +40 -9
  128. package/hedhog/frontend/app/_lib/utils/forms.ts.ejs +48 -1
  129. package/hedhog/frontend/app/approvals/page.tsx.ejs +116 -98
  130. package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +502 -0
  131. package/hedhog/frontend/app/collaborators/page.tsx.ejs +116 -72
  132. package/hedhog/frontend/app/contracts/page.tsx.ejs +938 -938
  133. package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +11 -9
  134. package/hedhog/frontend/app/departments/page.tsx.ejs +1 -1
  135. package/hedhog/frontend/app/projects/[id]/edit/page.tsx.ejs +1 -1
  136. package/hedhog/frontend/app/projects/page.tsx.ejs +364 -133
  137. package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +244 -120
  138. package/hedhog/frontend/app/team/page.tsx.ejs +15 -2
  139. package/hedhog/frontend/app/time-off/page.tsx.ejs +158 -82
  140. package/hedhog/frontend/app/timesheets/page.tsx.ejs +814 -357
  141. package/hedhog/frontend/messages/en.json +268 -53
  142. package/hedhog/frontend/messages/pt.json +484 -271
  143. package/hedhog/table/operations_collaborator.yaml +26 -13
  144. package/hedhog/table/operations_collaborator_equity_participation.yaml +43 -0
  145. package/hedhog/table/operations_collaborator_type.yaml +33 -0
  146. package/hedhog/table/operations_job_title.yaml +24 -0
  147. package/hedhog/table/operations_project.yaml +9 -0
  148. package/hedhog/table/operations_project_assignment.yaml +9 -0
  149. package/hedhog/table/operations_project_role.yaml +39 -0
  150. package/hedhog/table/operations_task.yaml +69 -0
  151. package/hedhog/table/operations_timesheet_entry.yaml +12 -0
  152. package/package.json +6 -6
  153. package/src/controllers/operations-approvals.controller.ts +24 -0
  154. package/src/controllers/operations-collaborators.controller.ts +60 -0
  155. package/src/controllers/operations-contracts.controller.ts +138 -0
  156. package/src/controllers/operations-org-structure.controller.ts +92 -0
  157. package/src/controllers/operations-projects.controller.ts +50 -0
  158. package/src/controllers/operations-tasks.controller.ts +63 -0
  159. package/src/controllers/operations-timesheets.controller.ts +100 -0
  160. package/src/dto/create-collaborator-type.dto.ts +43 -0
  161. package/src/dto/create-collaborator.dto.ts +223 -0
  162. package/src/dto/create-schedule-adjustment-request.dto.ts +91 -0
  163. package/src/dto/create-task.dto.ts +75 -0
  164. package/src/dto/create-time-off-request.dto.ts +53 -0
  165. package/src/dto/create-timesheet-entry.dto.ts +67 -0
  166. package/src/dto/list-collaborator-types.dto.ts +15 -0
  167. package/src/dto/list-collaborators.dto.ts +30 -0
  168. package/src/dto/list-project-options.dto.ts +3 -0
  169. package/src/dto/list-tasks.dto.ts +25 -0
  170. package/src/dto/list-timesheet-entries.dto.ts +40 -0
  171. package/src/dto/update-collaborator-type.dto.ts +3 -0
  172. package/src/dto/update-collaborator.dto.ts +3 -0
  173. package/src/dto/update-task.dto.ts +76 -0
  174. package/src/operations.controller.ts +1 -278
  175. package/src/operations.module.ts +23 -2
  176. package/src/operations.service.spec.ts +450 -0
  177. package/src/operations.service.ts +4507 -1561
  178. package/src/services/shared/operations-access.service.ts +52 -0
@@ -19,16 +19,20 @@ columns:
19
19
  column: id
20
20
  onDelete: SET NULL
21
21
  onUpdate: CASCADE
22
- - name: code
23
- type: varchar
24
- length: 32
25
- - name: collaborator_type
26
- type: enum
27
- values: [clt, pj, freelancer, intern, other]
28
- default: other
29
- - name: display_name
30
- type: varchar
31
- length: 180
22
+ - name: code
23
+ type: varchar
24
+ length: 32
25
+ - name: collaborator_type_id
26
+ type: fk
27
+ isNullable: true
28
+ references:
29
+ table: operations_collaborator_type
30
+ column: id
31
+ onDelete: SET NULL
32
+ onUpdate: CASCADE
33
+ - name: display_name
34
+ type: varchar
35
+ length: 180
32
36
  - name: department
33
37
  type: varchar
34
38
  length: 120
@@ -41,6 +45,14 @@ columns:
41
45
  column: id
42
46
  onDelete: SET NULL
43
47
  onUpdate: CASCADE
48
+ - name: job_title_id
49
+ type: fk
50
+ isNullable: true
51
+ references:
52
+ table: operations_job_title
53
+ column: id
54
+ onDelete: SET NULL
55
+ onUpdate: CASCADE
44
56
  - name: title
45
57
  type: varchar
46
58
  length: 120
@@ -80,8 +92,9 @@ indices:
80
92
  isUnique: true
81
93
  - columns: [code]
82
94
  isUnique: true
83
- - columns: [collaborator_type]
84
- - columns: [supervisor_collaborator_id]
85
- - columns: [department_id]
95
+ - columns: [collaborator_type_id]
96
+ - columns: [supervisor_collaborator_id]
97
+ - columns: [department_id]
98
+ - columns: [job_title_id]
86
99
  - columns: [status]
87
100
  - columns: [deleted_at]
@@ -0,0 +1,43 @@
1
+ columns:
2
+ - type: pk
3
+ - name: collaborator_id
4
+ type: fk
5
+ references:
6
+ table: operations_collaborator
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: participation_type
11
+ type: enum
12
+ values:
13
+ [partner_quota_holder, common_shareholder, preferred_shareholder, administrator, other]
14
+ default: other
15
+ - name: percentage
16
+ type: decimal
17
+ precision: 7
18
+ scale: 4
19
+ isNullable: true
20
+ - name: voting_power
21
+ type: decimal
22
+ precision: 7
23
+ scale: 4
24
+ isNullable: true
25
+ - name: start_date
26
+ type: date
27
+ isNullable: true
28
+ - name: end_date
29
+ type: date
30
+ isNullable: true
31
+ - name: notes
32
+ type: text
33
+ isNullable: true
34
+ - name: deleted_at
35
+ type: datetime
36
+ isNullable: true
37
+ - type: created_at
38
+ - type: updated_at
39
+
40
+ indices:
41
+ - columns: [collaborator_id]
42
+ - columns: [participation_type]
43
+ - columns: [deleted_at]
@@ -0,0 +1,33 @@
1
+ columns:
2
+ - type: pk
3
+ - type: slug
4
+ - name: name
5
+ type: varchar
6
+ length: 120
7
+ - name: description
8
+ type: text
9
+ isNullable: true
10
+ - name: category
11
+ type: varchar
12
+ length: 60
13
+ isNullable: true
14
+ - name: is_active
15
+ type: boolean
16
+ default: true
17
+ - name: sort_order
18
+ type: int
19
+ default: 0
20
+ - name: deleted_at
21
+ type: datetime
22
+ isNullable: true
23
+ - type: created_at
24
+ - type: updated_at
25
+
26
+ indices:
27
+ - columns: [slug]
28
+ isUnique: true
29
+ - columns: [name]
30
+ - columns: [category]
31
+ - columns: [is_active]
32
+ - columns: [sort_order]
33
+ - columns: [deleted_at]
@@ -0,0 +1,24 @@
1
+ columns:
2
+ - type: pk
3
+ - type: slug
4
+ - name: code
5
+ type: varchar
6
+ length: 32
7
+ isNullable: true
8
+ - name: name
9
+ type: varchar
10
+ length: 120
11
+ - name: description
12
+ type: text
13
+ isNullable: true
14
+ - name: deleted_at
15
+ type: datetime
16
+ isNullable: true
17
+ - type: created_at
18
+ - type: updated_at
19
+
20
+ indices:
21
+ - columns: [code]
22
+ isUnique: true
23
+ - columns: [name]
24
+ - columns: [deleted_at]
@@ -16,6 +16,14 @@ columns:
16
16
  column: id
17
17
  onDelete: SET NULL
18
18
  onUpdate: CASCADE
19
+ - name: client_person_id
20
+ type: fk
21
+ isNullable: true
22
+ references:
23
+ table: person
24
+ column: id
25
+ onDelete: SET NULL
26
+ onUpdate: CASCADE
19
27
  - name: code
20
28
  type: varchar
21
29
  length: 40
@@ -64,6 +72,7 @@ indices:
64
72
  isUnique: true
65
73
  - columns: [contract_id]
66
74
  - columns: [manager_collaborator_id]
75
+ - columns: [client_person_id]
67
76
  - columns: [status]
68
77
  - columns: [start_date]
69
78
  - columns: [end_date]
@@ -14,6 +14,14 @@ columns:
14
14
  column: id
15
15
  onDelete: CASCADE
16
16
  onUpdate: CASCADE
17
+ - name: project_role_id
18
+ type: fk
19
+ isNullable: true
20
+ references:
21
+ table: operations_project_role
22
+ column: id
23
+ onDelete: SET NULL
24
+ onUpdate: CASCADE
17
25
  - name: role_label
18
26
  type: varchar
19
27
  length: 120
@@ -49,6 +57,7 @@ columns:
49
57
  indices:
50
58
  - columns: [project_id]
51
59
  - columns: [collaborator_id]
60
+ - columns: [project_role_id]
52
61
  - columns: [status]
53
62
  - columns: [start_date]
54
63
  - columns: [end_date]
@@ -0,0 +1,39 @@
1
+ columns:
2
+ - type: pk
3
+ - type: slug
4
+ - name: code
5
+ type: varchar
6
+ length: 80
7
+ isNullable: true
8
+ - name: name
9
+ type: locale_varchar
10
+ length: 180
11
+ locale:
12
+ pt: Nome
13
+ en: Name
14
+ - name: description
15
+ type: locale_text
16
+ isNullable: true
17
+ locale:
18
+ pt: Descrição
19
+ en: Description
20
+ - name: is_active
21
+ type: boolean
22
+ default: true
23
+ - name: sort_order
24
+ type: int
25
+ default: 0
26
+ - name: deleted_at
27
+ type: datetime
28
+ isNullable: true
29
+ - type: created_at
30
+ - type: updated_at
31
+
32
+ indices:
33
+ - columns: [slug]
34
+ isUnique: true
35
+ - columns: [code]
36
+ isUnique: true
37
+ - columns: [is_active]
38
+ - columns: [sort_order]
39
+ - columns: [deleted_at]
@@ -0,0 +1,69 @@
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: CASCADE
10
+ onUpdate: CASCADE
11
+ - name: project_assignment_id
12
+ type: fk
13
+ isNullable: true
14
+ references:
15
+ table: operations_project_assignment
16
+ column: id
17
+ onDelete: SET NULL
18
+ onUpdate: CASCADE
19
+ - name: assignee_collaborator_id
20
+ type: fk
21
+ isNullable: true
22
+ references:
23
+ table: operations_collaborator
24
+ column: id
25
+ onDelete: SET NULL
26
+ onUpdate: CASCADE
27
+ - name: name
28
+ type: varchar
29
+ length: 180
30
+ - name: description
31
+ type: text
32
+ isNullable: true
33
+ - name: priority
34
+ type: enum
35
+ values: [low, medium, high]
36
+ default: medium
37
+ - name: status
38
+ type: enum
39
+ values: [todo, doing, review, done]
40
+ default: todo
41
+ - name: due_date
42
+ type: date
43
+ isNullable: true
44
+ - name: estimate_hours
45
+ type: decimal
46
+ precision: 6
47
+ scale: 2
48
+ isNullable: true
49
+ - name: position
50
+ type: int
51
+ default: 0
52
+ - name: tags
53
+ type: text
54
+ isNullable: true
55
+ - name: deleted_at
56
+ type: datetime
57
+ isNullable: true
58
+ - type: created_at
59
+ - type: updated_at
60
+
61
+ indices:
62
+ - columns: [project_id]
63
+ - columns: [project_assignment_id]
64
+ - columns: [assignee_collaborator_id]
65
+ - columns: [status]
66
+ - columns: [priority]
67
+ - columns: [due_date]
68
+ - columns: [project_id, status]
69
+ - columns: [deleted_at]
@@ -15,12 +15,23 @@ columns:
15
15
  column: id
16
16
  onDelete: SET NULL
17
17
  onUpdate: CASCADE
18
+ - name: task_id
19
+ type: fk
20
+ isNullable: true
21
+ references:
22
+ table: operations_task
23
+ column: id
24
+ onDelete: SET NULL
25
+ onUpdate: CASCADE
18
26
  - name: work_date
19
27
  type: date
20
28
  - name: activity_label
21
29
  type: varchar
22
30
  length: 255
23
31
  isNullable: true
32
+ - name: duration_minutes
33
+ type: int
34
+ default: 0
24
35
  - name: hours
25
36
  type: decimal
26
37
  precision: 6
@@ -37,5 +48,6 @@ columns:
37
48
  indices:
38
49
  - columns: [timesheet_id]
39
50
  - columns: [project_assignment_id]
51
+ - columns: [task_id]
40
52
  - columns: [work_date]
41
53
  - columns: [deleted_at]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hed-hog/operations",
3
- "version": "0.0.303",
3
+ "version": "0.0.305",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -9,13 +9,13 @@
9
9
  "@nestjs/core": "^11",
10
10
  "@nestjs/jwt": "^11",
11
11
  "@nestjs/mapped-types": "*",
12
- "@hed-hog/api-pagination": "0.0.7",
12
+ "@hed-hog/api": "0.0.6",
13
13
  "@hed-hog/api-prisma": "0.0.6",
14
- "@hed-hog/api-types": "0.0.1",
14
+ "@hed-hog/api-pagination": "0.0.7",
15
15
  "@hed-hog/api-locale": "0.0.14",
16
- "@hed-hog/api": "0.0.6",
17
- "@hed-hog/core": "0.0.303",
18
- "@hed-hog/contact": "0.0.303"
16
+ "@hed-hog/api-types": "0.0.1",
17
+ "@hed-hog/core": "0.0.305",
18
+ "@hed-hog/contact": "0.0.305"
19
19
  },
20
20
  "exports": {
21
21
  ".": {
@@ -0,0 +1,24 @@
1
+ import { Role, User } from '@hed-hog/api';
2
+ import { Body, Controller, Get, Param, ParseIntPipe, Post } from '@nestjs/common';
3
+ import { OperationsService } from '../operations.service';
4
+
5
+ @Role()
6
+ @Controller('operations')
7
+ export class OperationsApprovalsController {
8
+ constructor(private readonly operationsService: OperationsService) {}
9
+
10
+ @Get('approvals')
11
+ listApprovals(@User() user) {
12
+ return this.operationsService.listApprovals(Number(user?.id || 0));
13
+ }
14
+
15
+ @Post('approvals/:id/approve')
16
+ approve(@User() user, @Param('id', ParseIntPipe) id: number, @Body() data) {
17
+ return this.operationsService.approve(Number(user?.id || 0), id, data);
18
+ }
19
+
20
+ @Post('approvals/:id/reject')
21
+ reject(@User() user, @Param('id', ParseIntPipe) id: number, @Body() data) {
22
+ return this.operationsService.reject(Number(user?.id || 0), id, data);
23
+ }
24
+ }
@@ -0,0 +1,60 @@
1
+ import { Role, User } from '@hed-hog/api';
2
+ import {
3
+ Body,
4
+ Controller,
5
+ Get,
6
+ Param,
7
+ ParseIntPipe,
8
+ Patch,
9
+ Post,
10
+ } from '@nestjs/common';
11
+ import { CreateCollaboratorDto } from '../dto/create-collaborator.dto';
12
+ import { UpdateCollaboratorDto } from '../dto/update-collaborator.dto';
13
+ import { OperationsService } from '../operations.service';
14
+
15
+ @Role()
16
+ @Controller('operations')
17
+ export class OperationsCollaboratorsController {
18
+ constructor(private readonly operationsService: OperationsService) {}
19
+
20
+ @Get('collaborators')
21
+ listCollaborators(@User() user) {
22
+ return this.operationsService.listCollaborators(Number(user?.id || 0));
23
+ }
24
+
25
+ @Get('collaborators/me')
26
+ getMyCollaborator(@User() user) {
27
+ return this.operationsService.getMyCollaborator(Number(user?.id || 0));
28
+ }
29
+
30
+ @Get('collaborators/team')
31
+ getTeam(@User() user) {
32
+ return this.operationsService.getTeam(Number(user?.id || 0));
33
+ }
34
+
35
+ @Get('collaborators/:id')
36
+ getCollaborator(@User() user, @Param('id', ParseIntPipe) id: number) {
37
+ return this.operationsService.getCollaboratorByIdForUser(
38
+ Number(user?.id || 0),
39
+ id,
40
+ );
41
+ }
42
+
43
+ @Post('collaborators')
44
+ createCollaborator(@User() user, @Body() data: CreateCollaboratorDto) {
45
+ return this.operationsService.createCollaborator(Number(user?.id || 0), data);
46
+ }
47
+
48
+ @Patch('collaborators/:id')
49
+ updateCollaborator(
50
+ @User() user,
51
+ @Param('id', ParseIntPipe) id: number,
52
+ @Body() data: UpdateCollaboratorDto,
53
+ ) {
54
+ return this.operationsService.updateCollaborator(
55
+ Number(user?.id || 0),
56
+ id,
57
+ data,
58
+ );
59
+ }
60
+ }
@@ -0,0 +1,138 @@
1
+ import { Role, User } from '@hed-hog/api';
2
+ import {
3
+ Body,
4
+ Controller,
5
+ Delete,
6
+ Get,
7
+ Param,
8
+ ParseIntPipe,
9
+ Patch,
10
+ Post,
11
+ } from '@nestjs/common';
12
+ import { OperationsService } from '../operations.service';
13
+
14
+ @Role()
15
+ @Controller('operations')
16
+ export class OperationsContractsController {
17
+ constructor(private readonly operationsService: OperationsService) {}
18
+
19
+ @Get('contract-templates')
20
+ listContractTemplates(@User() user) {
21
+ return this.operationsService.listContractTemplates(Number(user?.id || 0));
22
+ }
23
+
24
+ @Get('contract-templates/:id')
25
+ getContractTemplate(@User() user, @Param('id', ParseIntPipe) id: number) {
26
+ return this.operationsService.getContractTemplateById(
27
+ Number(user?.id || 0),
28
+ id,
29
+ );
30
+ }
31
+
32
+ @Post('contract-templates')
33
+ createContractTemplate(@User() user, @Body() data) {
34
+ return this.operationsService.createContractTemplate(
35
+ Number(user?.id || 0),
36
+ data,
37
+ );
38
+ }
39
+
40
+ @Patch('contract-templates/:id')
41
+ updateContractTemplate(
42
+ @User() user,
43
+ @Param('id', ParseIntPipe) id: number,
44
+ @Body() data,
45
+ ) {
46
+ return this.operationsService.updateContractTemplate(
47
+ Number(user?.id || 0),
48
+ id,
49
+ data,
50
+ );
51
+ }
52
+
53
+ @Get('contracts')
54
+ listContracts(@User() user) {
55
+ return this.operationsService.listContracts(Number(user?.id || 0));
56
+ }
57
+
58
+ @Get('contracts/:id')
59
+ getContract(@User() user, @Param('id', ParseIntPipe) id: number) {
60
+ return this.operationsService.getContractById(Number(user?.id || 0), id);
61
+ }
62
+
63
+ @Post('contracts/drafts')
64
+ createContractDraft(@User() user, @Body() data) {
65
+ return this.operationsService.createContractDraft(Number(user?.id || 0), data);
66
+ }
67
+
68
+ @Post('contracts')
69
+ createContract(@User() user, @Body() data) {
70
+ return this.operationsService.createContract(Number(user?.id || 0), data);
71
+ }
72
+
73
+ @Post('contracts/extract-draft')
74
+ extractContractDraft(@User() user, @Body() data) {
75
+ return this.operationsService.extractContractDraft(
76
+ Number(user?.id || 0),
77
+ data,
78
+ );
79
+ }
80
+
81
+ @Post('contracts/:id/extract-source')
82
+ extractContractSource(
83
+ @User() user,
84
+ @Param('id', ParseIntPipe) id: number,
85
+ @Body() data,
86
+ ) {
87
+ return this.operationsService.extractContractSource(
88
+ Number(user?.id || 0),
89
+ id,
90
+ data,
91
+ );
92
+ }
93
+
94
+ @Post('contracts/:id/generate-content')
95
+ generateContractContent(
96
+ @User() user,
97
+ @Param('id', ParseIntPipe) id: number,
98
+ @Body() data,
99
+ ) {
100
+ return this.operationsService.generateContractContent(
101
+ Number(user?.id || 0),
102
+ id,
103
+ data,
104
+ );
105
+ }
106
+
107
+ @Post('contracts/:id/legal-review')
108
+ reviewContractLegally(
109
+ @User() user,
110
+ @Param('id', ParseIntPipe) id: number,
111
+ @Body() data,
112
+ ) {
113
+ return this.operationsService.reviewContractLegally(
114
+ Number(user?.id || 0),
115
+ id,
116
+ data,
117
+ );
118
+ }
119
+
120
+ @Patch('contracts/:id')
121
+ updateContract(
122
+ @User() user,
123
+ @Param('id', ParseIntPipe) id: number,
124
+ @Body() data,
125
+ ) {
126
+ return this.operationsService.updateContract(Number(user?.id || 0), id, data);
127
+ }
128
+
129
+ @Delete('contracts/:id')
130
+ removeContract(@User() user, @Param('id', ParseIntPipe) id: number) {
131
+ return this.operationsService.removeContract(Number(user?.id || 0), id);
132
+ }
133
+
134
+ @Post('contracts/:id/generate-pdf')
135
+ generateContractPdf(@User() user, @Param('id', ParseIntPipe) id: number) {
136
+ return this.operationsService.generateContractPdf(Number(user?.id || 0), id);
137
+ }
138
+ }
@@ -0,0 +1,92 @@
1
+ import { Role, User } from '@hed-hog/api';
2
+ import { Pagination } from '@hed-hog/api-pagination';
3
+ import {
4
+ Body,
5
+ Controller,
6
+ Get,
7
+ Param,
8
+ ParseIntPipe,
9
+ Patch,
10
+ Post,
11
+ } from '@nestjs/common';
12
+ import { CreateCollaboratorTypeDto } from '../dto/create-collaborator-type.dto';
13
+ import { ListCollaboratorTypesDto } from '../dto/list-collaborator-types.dto';
14
+ import { UpdateCollaboratorTypeDto } from '../dto/update-collaborator-type.dto';
15
+ import { OperationsService } from '../operations.service';
16
+
17
+ @Role()
18
+ @Controller('operations')
19
+ export class OperationsOrgStructureController {
20
+ constructor(private readonly operationsService: OperationsService) {}
21
+
22
+ @Get('collaborator-types')
23
+ listCollaboratorTypes(
24
+ @User() user,
25
+ @Pagination() filters: ListCollaboratorTypesDto,
26
+ ) {
27
+ return this.operationsService.listCollaboratorTypes(
28
+ Number(user?.id || 0),
29
+ filters,
30
+ );
31
+ }
32
+
33
+ @Post('collaborator-types')
34
+ createCollaboratorType(@User() user, @Body() data: CreateCollaboratorTypeDto) {
35
+ return this.operationsService.createCollaboratorType(
36
+ Number(user?.id || 0),
37
+ data,
38
+ );
39
+ }
40
+
41
+ @Patch('collaborator-types/:id')
42
+ updateCollaboratorType(
43
+ @User() user,
44
+ @Param('id', ParseIntPipe) id: number,
45
+ @Body() data: UpdateCollaboratorTypeDto,
46
+ ) {
47
+ return this.operationsService.updateCollaboratorType(
48
+ Number(user?.id || 0),
49
+ id,
50
+ data,
51
+ );
52
+ }
53
+
54
+ @Get('project-roles')
55
+ listProjectRoles(@User() user) {
56
+ return this.operationsService.listProjectRoles(Number(user?.id || 0));
57
+ }
58
+
59
+ @Post('project-roles')
60
+ createProjectRole(@User() user, @Body() data) {
61
+ return this.operationsService.createProjectRole(Number(user?.id || 0), data);
62
+ }
63
+
64
+ @Get('departments')
65
+ listDepartments(@User() user) {
66
+ return this.operationsService.listDepartments(Number(user?.id || 0));
67
+ }
68
+
69
+ @Post('departments')
70
+ createDepartment(@User() user, @Body() data) {
71
+ return this.operationsService.createDepartment(Number(user?.id || 0), data);
72
+ }
73
+
74
+ @Patch('departments/:id')
75
+ updateDepartment(
76
+ @User() user,
77
+ @Param('id', ParseIntPipe) id: number,
78
+ @Body() data,
79
+ ) {
80
+ return this.operationsService.updateDepartment(Number(user?.id || 0), id, data);
81
+ }
82
+
83
+ @Get('job-titles')
84
+ listJobTitles(@User() user) {
85
+ return this.operationsService.listJobTitles(Number(user?.id || 0));
86
+ }
87
+
88
+ @Post('job-titles')
89
+ createJobTitle(@User() user, @Body() data) {
90
+ return this.operationsService.createJobTitle(Number(user?.id || 0), data);
91
+ }
92
+ }