@hed-hog/operations 0.0.303 → 0.0.304

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 (166) 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 +169 -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 +54 -0
  23. package/dist/controllers/operations-tasks.controller.d.ts.map +1 -0
  24. package/dist/controllers/operations-tasks.controller.js +79 -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 +8 -0
  43. package/dist/dto/create-task.dto.d.ts.map +1 -0
  44. package/dist/dto/create-task.dto.js +50 -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 +8 -0
  83. package/dist/dto/update-task.dto.d.ts.map +1 -0
  84. package/dist/dto/update-task.dto.js +51 -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 +373 -8
  94. package/dist/operations.service.d.ts.map +1 -1
  95. package/dist/operations.service.js +1598 -111
  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 +183 -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 +134 -49
  113. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +772 -93
  114. package/hedhog/frontend/app/_components/department-select-with-create.tsx.ejs +38 -16
  115. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +875 -632
  116. package/hedhog/frontend/app/_components/timesheet-task-create-sheet.tsx.ejs +213 -0
  117. package/hedhog/frontend/app/_lib/api.ts.ejs +30 -1
  118. package/hedhog/frontend/app/_lib/types.ts.ejs +142 -39
  119. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +33 -2
  120. package/hedhog/frontend/app/approvals/page.tsx.ejs +116 -98
  121. package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +502 -0
  122. package/hedhog/frontend/app/collaborators/page.tsx.ejs +109 -68
  123. package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +11 -9
  124. package/hedhog/frontend/app/departments/page.tsx.ejs +1 -1
  125. package/hedhog/frontend/app/projects/page.tsx.ejs +5 -1
  126. package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +244 -120
  127. package/hedhog/frontend/app/team/page.tsx.ejs +15 -2
  128. package/hedhog/frontend/app/time-off/page.tsx.ejs +158 -82
  129. package/hedhog/frontend/app/timesheets/page.tsx.ejs +814 -357
  130. package/hedhog/frontend/messages/en.json +243 -51
  131. package/hedhog/frontend/messages/pt.json +458 -268
  132. package/hedhog/table/operations_collaborator.yaml +26 -13
  133. package/hedhog/table/operations_collaborator_equity_participation.yaml +43 -0
  134. package/hedhog/table/operations_collaborator_type.yaml +33 -0
  135. package/hedhog/table/operations_job_title.yaml +24 -0
  136. package/hedhog/table/operations_project_assignment.yaml +9 -0
  137. package/hedhog/table/operations_project_role.yaml +39 -0
  138. package/hedhog/table/operations_task.yaml +30 -0
  139. package/hedhog/table/operations_timesheet_entry.yaml +12 -0
  140. package/package.json +6 -6
  141. package/src/controllers/operations-approvals.controller.ts +24 -0
  142. package/src/controllers/operations-collaborators.controller.ts +60 -0
  143. package/src/controllers/operations-contracts.controller.ts +138 -0
  144. package/src/controllers/operations-org-structure.controller.ts +92 -0
  145. package/src/controllers/operations-projects.controller.ts +50 -0
  146. package/src/controllers/operations-tasks.controller.ts +52 -0
  147. package/src/controllers/operations-timesheets.controller.ts +100 -0
  148. package/src/dto/create-collaborator-type.dto.ts +43 -0
  149. package/src/dto/create-collaborator.dto.ts +223 -0
  150. package/src/dto/create-schedule-adjustment-request.dto.ts +91 -0
  151. package/src/dto/create-task.dto.ts +35 -0
  152. package/src/dto/create-time-off-request.dto.ts +53 -0
  153. package/src/dto/create-timesheet-entry.dto.ts +67 -0
  154. package/src/dto/list-collaborator-types.dto.ts +15 -0
  155. package/src/dto/list-collaborators.dto.ts +30 -0
  156. package/src/dto/list-project-options.dto.ts +3 -0
  157. package/src/dto/list-tasks.dto.ts +25 -0
  158. package/src/dto/list-timesheet-entries.dto.ts +40 -0
  159. package/src/dto/update-collaborator-type.dto.ts +3 -0
  160. package/src/dto/update-collaborator.dto.ts +3 -0
  161. package/src/dto/update-task.dto.ts +36 -0
  162. package/src/operations.controller.ts +1 -278
  163. package/src/operations.module.ts +23 -2
  164. package/src/operations.service.spec.ts +450 -0
  165. package/src/operations.service.ts +4641 -2163
  166. 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]
@@ -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,30 @@
1
+ columns:
2
+ - type: pk
3
+ - name: project_assignment_id
4
+ type: fk
5
+ references:
6
+ table: operations_project_assignment
7
+ column: id
8
+ onDelete: CASCADE
9
+ onUpdate: CASCADE
10
+ - name: name
11
+ type: varchar
12
+ length: 180
13
+ - name: description
14
+ type: text
15
+ isNullable: true
16
+ - name: status
17
+ type: enum
18
+ values: [active, completed, archived]
19
+ default: active
20
+ - name: deleted_at
21
+ type: datetime
22
+ isNullable: true
23
+ - type: created_at
24
+ - type: updated_at
25
+
26
+ indices:
27
+ - columns: [project_assignment_id]
28
+ - columns: [status]
29
+ - columns: [project_assignment_id, status]
30
+ - 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.304",
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",
13
- "@hed-hog/api-prisma": "0.0.6",
14
- "@hed-hog/api-types": "0.0.1",
15
12
  "@hed-hog/api-locale": "0.0.14",
13
+ "@hed-hog/core": "0.0.304",
16
14
  "@hed-hog/api": "0.0.6",
17
- "@hed-hog/core": "0.0.303",
18
- "@hed-hog/contact": "0.0.303"
15
+ "@hed-hog/api-pagination": "0.0.7",
16
+ "@hed-hog/api-types": "0.0.1",
17
+ "@hed-hog/api-prisma": "0.0.6",
18
+ "@hed-hog/contact": "0.0.304"
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
+ }
@@ -0,0 +1,50 @@
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 { ListOperationsProjectOptionsDto } from '../dto/list-project-options.dto';
13
+ import { OperationsService } from '../operations.service';
14
+
15
+ @Role()
16
+ @Controller('operations')
17
+ export class OperationsProjectsController {
18
+ constructor(private readonly operationsService: OperationsService) {}
19
+
20
+ @Get('projects/options')
21
+ listProjectOptions(
22
+ @User() user,
23
+ @Pagination() paginationParams: ListOperationsProjectOptionsDto,
24
+ ) {
25
+ return this.operationsService.listProjectOptions(
26
+ Number(user?.id || 0),
27
+ paginationParams,
28
+ );
29
+ }
30
+
31
+ @Get('projects')
32
+ listProjects(@User() user) {
33
+ return this.operationsService.listProjects(Number(user?.id || 0));
34
+ }
35
+
36
+ @Get('projects/:id')
37
+ getProject(@User() user, @Param('id', ParseIntPipe) id: number) {
38
+ return this.operationsService.getProjectById(Number(user?.id || 0), id);
39
+ }
40
+
41
+ @Post('projects')
42
+ createProject(@User() user, @Body() data) {
43
+ return this.operationsService.createProject(Number(user?.id || 0), data);
44
+ }
45
+
46
+ @Patch('projects/:id')
47
+ updateProject(@User() user, @Param('id', ParseIntPipe) id: number, @Body() data) {
48
+ return this.operationsService.updateProject(Number(user?.id || 0), id, data);
49
+ }
50
+ }