@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
@@ -0,0 +1,30 @@
1
+ import { PaginationDTO } from '@hed-hog/api-pagination';
2
+ import { Transform } from 'class-transformer';
3
+ import { IsInt, IsOptional, IsString } from 'class-validator';
4
+
5
+ export class ListCollaboratorsDto extends PaginationDTO {
6
+ @IsOptional()
7
+ @IsString()
8
+ status?: string;
9
+
10
+ @IsOptional()
11
+ @Transform(({ value }) =>
12
+ value === '' || value === undefined || value === null ? undefined : Number(value)
13
+ )
14
+ @IsInt()
15
+ collaboratorTypeId?: number;
16
+
17
+ @IsOptional()
18
+ @Transform(({ value }) =>
19
+ value === '' || value === undefined || value === null ? undefined : Number(value)
20
+ )
21
+ @IsInt()
22
+ departmentId?: number;
23
+
24
+ @IsOptional()
25
+ @Transform(({ value }) =>
26
+ value === '' || value === undefined || value === null ? undefined : Number(value)
27
+ )
28
+ @IsInt()
29
+ jobTitleId?: number;
30
+ }
@@ -0,0 +1,3 @@
1
+ import { PaginationDTO } from '@hed-hog/api-pagination';
2
+
3
+ export class ListOperationsProjectOptionsDto extends PaginationDTO {}
@@ -0,0 +1,25 @@
1
+ import { PaginationDTO } from '@hed-hog/api-pagination';
2
+ import { Transform } from 'class-transformer';
3
+ import { IsIn, IsInt, IsOptional } from 'class-validator';
4
+
5
+ export class ListOperationsTasksDto extends PaginationDTO {
6
+ @IsOptional()
7
+ @Transform(({ value }) =>
8
+ value === '' || value === undefined || value === null ? undefined : Number(value)
9
+ )
10
+ @IsInt({ message: 'projectId must be an integer' })
11
+ projectId?: number;
12
+
13
+ @IsOptional()
14
+ @Transform(({ value }) =>
15
+ value === '' || value === undefined || value === null ? undefined : Number(value)
16
+ )
17
+ @IsInt({ message: 'projectAssignmentId must be an integer' })
18
+ projectAssignmentId?: number;
19
+
20
+ @IsOptional()
21
+ @IsIn(['active', 'completed', 'archived'], {
22
+ message: 'status must be active, completed, or archived',
23
+ })
24
+ status?: 'active' | 'completed' | 'archived';
25
+ }
@@ -0,0 +1,40 @@
1
+ import { PaginationDTO } from '@hed-hog/api-pagination';
2
+ import { Transform } from 'class-transformer';
3
+ import { IsDateString, IsIn, IsInt, IsOptional } from 'class-validator';
4
+
5
+ export class ListTimesheetEntriesDto extends PaginationDTO {
6
+ @IsOptional()
7
+ @Transform(({ value }) =>
8
+ value === '' || value === undefined || value === null ? undefined : Number(value)
9
+ )
10
+ @IsInt({ message: 'projectId must be an integer' })
11
+ projectId?: number;
12
+
13
+ @IsOptional()
14
+ @Transform(({ value }) =>
15
+ value === '' || value === undefined || value === null ? undefined : Number(value)
16
+ )
17
+ @IsInt({ message: 'projectAssignmentId must be an integer' })
18
+ projectAssignmentId?: number;
19
+
20
+ @IsOptional()
21
+ @Transform(({ value }) =>
22
+ value === '' || value === undefined || value === null ? undefined : Number(value)
23
+ )
24
+ @IsInt({ message: 'taskId must be an integer' })
25
+ taskId?: number;
26
+
27
+ @IsOptional()
28
+ @IsIn(['draft', 'submitted', 'approved', 'rejected'], {
29
+ message: 'status must be draft, submitted, approved, or rejected',
30
+ })
31
+ status?: 'draft' | 'submitted' | 'approved' | 'rejected';
32
+
33
+ @IsOptional()
34
+ @IsDateString({}, { message: 'fromDate must be a valid ISO date string' })
35
+ fromDate?: string;
36
+
37
+ @IsOptional()
38
+ @IsDateString({}, { message: 'toDate must be a valid ISO date string' })
39
+ toDate?: string;
40
+ }
@@ -0,0 +1,3 @@
1
+ import { CreateCollaboratorTypeDto } from './create-collaborator-type.dto';
2
+
3
+ export class UpdateCollaboratorTypeDto extends CreateCollaboratorTypeDto {}
@@ -0,0 +1,3 @@
1
+ import { CreateCollaboratorDto } from './create-collaborator.dto';
2
+
3
+ export class UpdateCollaboratorDto extends CreateCollaboratorDto {}
@@ -0,0 +1,36 @@
1
+ import { Transform } from 'class-transformer';
2
+ import { IsIn, IsInt, IsOptional, IsString, MaxLength } from 'class-validator';
3
+
4
+ export class UpdateOperationsTaskDto {
5
+ @IsOptional()
6
+ @Transform(({ value }) =>
7
+ value === '' || value === undefined || value === null ? undefined : Number(value)
8
+ )
9
+ @IsInt({ message: 'projectId must be an integer' })
10
+ projectId?: number;
11
+
12
+ @IsOptional()
13
+ @Transform(({ value }) =>
14
+ value === '' || value === undefined || value === null ? undefined : Number(value)
15
+ )
16
+ @IsInt({ message: 'projectAssignmentId must be an integer' })
17
+ projectAssignmentId?: number;
18
+
19
+ @IsOptional()
20
+ @IsString({ message: 'name must be a string' })
21
+ @MaxLength(180, { message: 'name must have at most 180 characters' })
22
+ name?: string;
23
+
24
+ @IsOptional()
25
+ @IsString({ message: 'description must be a string' })
26
+ @MaxLength(500, {
27
+ message: 'description must have at most 500 characters',
28
+ })
29
+ description?: string;
30
+
31
+ @IsOptional()
32
+ @IsIn(['active', 'completed', 'archived'], {
33
+ message: 'status must be active, completed, or archived',
34
+ })
35
+ status?: 'active' | 'completed' | 'archived';
36
+ }
@@ -1,14 +1,5 @@
1
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';
2
+ import { Body, Controller, Get, Post } from '@nestjs/common';
12
3
  import { OperationsService } from './operations.service';
13
4
 
14
5
  @Role()
@@ -21,274 +12,6 @@ export class OperationsController {
21
12
  return this.operationsService.getDashboard(Number(user?.id || 0));
22
13
  }
23
14
 
24
- @Get('collaborators')
25
- listCollaborators(@User() user) {
26
- return this.operationsService.listCollaborators(Number(user?.id || 0));
27
- }
28
-
29
- @Get('collaborators/me')
30
- getMyCollaborator(@User() user) {
31
- return this.operationsService.getMyCollaborator(Number(user?.id || 0));
32
- }
33
-
34
- @Get('collaborators/:id')
35
- getCollaborator(@User() user, @Param('id', ParseIntPipe) id: number) {
36
- return this.operationsService.getCollaboratorByIdForUser(
37
- Number(user?.id || 0),
38
- id
39
- );
40
- }
41
-
42
- @Get('collaborators/team')
43
- getTeam(@User() user) {
44
- return this.operationsService.getTeam(Number(user?.id || 0));
45
- }
46
-
47
- @Post('collaborators')
48
- createCollaborator(@User() user, @Body() data) {
49
- return this.operationsService.createCollaborator(Number(user?.id || 0), data);
50
- }
51
-
52
- @Patch('collaborators/:id')
53
- updateCollaborator(
54
- @User() user,
55
- @Param('id', ParseIntPipe) id: number,
56
- @Body() data
57
- ) {
58
- return this.operationsService.updateCollaborator(
59
- Number(user?.id || 0),
60
- id,
61
- data
62
- );
63
- }
64
-
65
- @Get('departments')
66
- listDepartments(@User() user) {
67
- return this.operationsService.listDepartments(Number(user?.id || 0));
68
- }
69
-
70
- @Post('departments')
71
- createDepartment(@User() user, @Body() data) {
72
- return this.operationsService.createDepartment(Number(user?.id || 0), data);
73
- }
74
-
75
- @Patch('departments/:id')
76
- updateDepartment(
77
- @User() user,
78
- @Param('id', ParseIntPipe) id: number,
79
- @Body() data
80
- ) {
81
- return this.operationsService.updateDepartment(Number(user?.id || 0), id, data);
82
- }
83
-
84
- @Get('projects')
85
- listProjects(@User() user) {
86
- return this.operationsService.listProjects(Number(user?.id || 0));
87
- }
88
-
89
- @Get('projects/:id')
90
- getProject(@User() user, @Param('id', ParseIntPipe) id: number) {
91
- return this.operationsService.getProjectById(Number(user?.id || 0), id);
92
- }
93
-
94
- @Post('projects')
95
- createProject(@User() user, @Body() data) {
96
- return this.operationsService.createProject(Number(user?.id || 0), data);
97
- }
98
-
99
- @Patch('projects/:id')
100
- updateProject(@User() user, @Param('id', ParseIntPipe) id: number, @Body() data) {
101
- return this.operationsService.updateProject(Number(user?.id || 0), id, data);
102
- }
103
-
104
- @Get('contract-templates')
105
- listContractTemplates(@User() user) {
106
- return this.operationsService.listContractTemplates(Number(user?.id || 0));
107
- }
108
-
109
- @Get('contract-templates/:id')
110
- getContractTemplate(@User() user, @Param('id', ParseIntPipe) id: number) {
111
- return this.operationsService.getContractTemplateById(
112
- Number(user?.id || 0),
113
- id
114
- );
115
- }
116
-
117
- @Post('contract-templates')
118
- createContractTemplate(@User() user, @Body() data) {
119
- return this.operationsService.createContractTemplate(
120
- Number(user?.id || 0),
121
- data
122
- );
123
- }
124
-
125
- @Patch('contract-templates/:id')
126
- updateContractTemplate(
127
- @User() user,
128
- @Param('id', ParseIntPipe) id: number,
129
- @Body() data
130
- ) {
131
- return this.operationsService.updateContractTemplate(
132
- Number(user?.id || 0),
133
- id,
134
- data
135
- );
136
- }
137
-
138
- @Get('contracts')
139
- listContracts(@User() user) {
140
- return this.operationsService.listContracts(Number(user?.id || 0));
141
- }
142
-
143
- @Get('contracts/:id')
144
- getContract(@User() user, @Param('id', ParseIntPipe) id: number) {
145
- return this.operationsService.getContractById(Number(user?.id || 0), id);
146
- }
147
-
148
- @Post('contracts/drafts')
149
- createContractDraft(@User() user, @Body() data) {
150
- return this.operationsService.createContractDraft(Number(user?.id || 0), data);
151
- }
152
-
153
- @Post('contracts')
154
- createContract(@User() user, @Body() data) {
155
- return this.operationsService.createContract(Number(user?.id || 0), data);
156
- }
157
-
158
- @Post('contracts/extract-draft')
159
- extractContractDraft(@User() user, @Body() data) {
160
- return this.operationsService.extractContractDraft(
161
- Number(user?.id || 0),
162
- data
163
- );
164
- }
165
-
166
- @Post('contracts/:id/extract-source')
167
- extractContractSource(
168
- @User() user,
169
- @Param('id', ParseIntPipe) id: number,
170
- @Body() data
171
- ) {
172
- return this.operationsService.extractContractSource(
173
- Number(user?.id || 0),
174
- id,
175
- data
176
- );
177
- }
178
-
179
- @Post('contracts/:id/generate-content')
180
- generateContractContent(
181
- @User() user,
182
- @Param('id', ParseIntPipe) id: number,
183
- @Body() data
184
- ) {
185
- return this.operationsService.generateContractContent(
186
- Number(user?.id || 0),
187
- id,
188
- data
189
- );
190
- }
191
-
192
- @Post('contracts/:id/legal-review')
193
- reviewContractLegally(
194
- @User() user,
195
- @Param('id', ParseIntPipe) id: number,
196
- @Body() data
197
- ) {
198
- return this.operationsService.reviewContractLegally(
199
- Number(user?.id || 0),
200
- id,
201
- data
202
- );
203
- }
204
-
205
- @Patch('contracts/:id')
206
- updateContract(
207
- @User() user,
208
- @Param('id', ParseIntPipe) id: number,
209
- @Body() data
210
- ) {
211
- return this.operationsService.updateContract(Number(user?.id || 0), id, data);
212
- }
213
-
214
- @Delete('contracts/:id')
215
- removeContract(@User() user, @Param('id', ParseIntPipe) id: number) {
216
- return this.operationsService.removeContract(Number(user?.id || 0), id);
217
- }
218
-
219
- @Post('contracts/:id/generate-pdf')
220
- generateContractPdf(
221
- @User() user,
222
- @Param('id', ParseIntPipe) id: number
223
- ) {
224
- return this.operationsService.generateContractPdf(
225
- Number(user?.id || 0),
226
- id
227
- );
228
- }
229
-
230
- @Get('timesheets')
231
- listTimesheets(@User() user) {
232
- return this.operationsService.listTimesheets(Number(user?.id || 0));
233
- }
234
-
235
- @Post('timesheets')
236
- createTimesheet(@User() user, @Body() data) {
237
- return this.operationsService.createTimesheet(Number(user?.id || 0), data);
238
- }
239
-
240
- @Patch('timesheets/:id')
241
- updateTimesheet(
242
- @User() user,
243
- @Param('id', ParseIntPipe) id: number,
244
- @Body() data
245
- ) {
246
- return this.operationsService.updateTimesheet(Number(user?.id || 0), id, data);
247
- }
248
-
249
- @Post('timesheets/:id/submit')
250
- submitTimesheet(@User() user, @Param('id', ParseIntPipe) id: number) {
251
- return this.operationsService.submitTimesheet(Number(user?.id || 0), id);
252
- }
253
-
254
- @Get('time-off')
255
- listTimeOffRequests(@User() user) {
256
- return this.operationsService.listTimeOffRequests(Number(user?.id || 0));
257
- }
258
-
259
- @Post('time-off')
260
- createTimeOffRequest(@User() user, @Body() data) {
261
- return this.operationsService.createTimeOffRequest(Number(user?.id || 0), data);
262
- }
263
-
264
- @Get('schedule-adjustments')
265
- listScheduleAdjustments(@User() user) {
266
- return this.operationsService.listScheduleAdjustments(Number(user?.id || 0));
267
- }
268
-
269
- @Post('schedule-adjustments')
270
- createScheduleAdjustmentRequest(@User() user, @Body() data) {
271
- return this.operationsService.createScheduleAdjustmentRequest(
272
- Number(user?.id || 0),
273
- data
274
- );
275
- }
276
-
277
- @Get('approvals')
278
- listApprovals(@User() user) {
279
- return this.operationsService.listApprovals(Number(user?.id || 0));
280
- }
281
-
282
- @Post('approvals/:id/approve')
283
- approve(@User() user, @Param('id', ParseIntPipe) id: number, @Body() data) {
284
- return this.operationsService.approve(Number(user?.id || 0), id, data);
285
- }
286
-
287
- @Post('approvals/:id/reject')
288
- reject(@User() user, @Param('id', ParseIntPipe) id: number, @Body() data) {
289
- return this.operationsService.reject(Number(user?.id || 0), id, data);
290
- }
291
-
292
15
  @Post('integration/examples/accounts-payable')
293
16
  publishAccountsPayableReference(@User() user, @Body() data) {
294
17
  return this.operationsService.publishAccountsPayableReference(
@@ -4,9 +4,17 @@ import { PrismaModule } from '@hed-hog/api-prisma';
4
4
  import { AiModule, FileModule, IntegrationModule, SettingModule } from '@hed-hog/core';
5
5
  import { forwardRef, Module } from '@nestjs/common';
6
6
  import { ConfigModule } from '@nestjs/config';
7
+ import { OperationsApprovalsController } from './controllers/operations-approvals.controller';
8
+ import { OperationsCollaboratorsController } from './controllers/operations-collaborators.controller';
9
+ import { OperationsContractsController } from './controllers/operations-contracts.controller';
10
+ import { OperationsOrgStructureController } from './controllers/operations-org-structure.controller';
11
+ import { OperationsProjectsController } from './controllers/operations-projects.controller';
12
+ import { OperationsTasksController } from './controllers/operations-tasks.controller';
13
+ import { OperationsTimesheetsController } from './controllers/operations-timesheets.controller';
7
14
  import { OperationsController } from './operations.controller';
8
15
  import { OperationsProposalSubscriber } from './operations.proposal.subscriber';
9
16
  import { OperationsService } from './operations.service';
17
+ import { OperationsAccessService } from './services/shared/operations-access.service';
10
18
 
11
19
  @Module({
12
20
  imports: [
@@ -19,8 +27,21 @@ import { OperationsService } from './operations.service';
19
27
  forwardRef(() => IntegrationModule),
20
28
  forwardRef(() => SettingModule),
21
29
  ],
22
- controllers: [OperationsController],
23
- providers: [OperationsService, OperationsProposalSubscriber],
30
+ controllers: [
31
+ OperationsController,
32
+ OperationsCollaboratorsController,
33
+ OperationsOrgStructureController,
34
+ OperationsProjectsController,
35
+ OperationsTasksController,
36
+ OperationsContractsController,
37
+ OperationsTimesheetsController,
38
+ OperationsApprovalsController,
39
+ ],
40
+ providers: [
41
+ OperationsService,
42
+ OperationsAccessService,
43
+ OperationsProposalSubscriber,
44
+ ],
24
45
  exports: [OperationsService],
25
46
  })
26
47
  export class OperationsModule {}