@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.
- package/README.md +200 -43
- package/dist/controllers/operations-approvals.controller.d.ts +9 -0
- package/dist/controllers/operations-approvals.controller.d.ts.map +1 -0
- package/dist/controllers/operations-approvals.controller.js +64 -0
- package/dist/controllers/operations-approvals.controller.js.map +1 -0
- package/dist/controllers/operations-collaborators.controller.d.ts +223 -0
- package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -0
- package/dist/controllers/operations-collaborators.controller.js +96 -0
- package/dist/controllers/operations-collaborators.controller.js.map +1 -0
- package/dist/controllers/operations-contracts.controller.d.ts +683 -0
- package/dist/controllers/operations-contracts.controller.d.ts.map +1 -0
- package/dist/controllers/operations-contracts.controller.js +198 -0
- package/dist/controllers/operations-contracts.controller.js.map +1 -0
- package/dist/controllers/operations-org-structure.controller.d.ts +108 -0
- package/dist/controllers/operations-org-structure.controller.d.ts.map +1 -0
- package/dist/controllers/operations-org-structure.controller.js +143 -0
- package/dist/controllers/operations-org-structure.controller.js.map +1 -0
- package/dist/controllers/operations-projects.controller.d.ts +184 -0
- package/dist/controllers/operations-projects.controller.d.ts.map +1 -0
- package/dist/controllers/operations-projects.controller.js +87 -0
- package/dist/controllers/operations-projects.controller.js.map +1 -0
- package/dist/controllers/operations-tasks.controller.d.ts +85 -0
- package/dist/controllers/operations-tasks.controller.d.ts.map +1 -0
- package/dist/controllers/operations-tasks.controller.js +90 -0
- package/dist/controllers/operations-tasks.controller.js.map +1 -0
- package/dist/controllers/operations-timesheets.controller.d.ts +99 -0
- package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -0
- package/dist/controllers/operations-timesheets.controller.js +154 -0
- package/dist/controllers/operations-timesheets.controller.js.map +1 -0
- package/dist/dto/create-collaborator-type.dto.d.ts +10 -0
- package/dist/dto/create-collaborator-type.dto.d.ts.map +1 -0
- package/dist/dto/create-collaborator-type.dto.js +56 -0
- package/dist/dto/create-collaborator-type.dto.js.map +1 -0
- package/dist/dto/create-collaborator.dto.d.ts +42 -0
- package/dist/dto/create-collaborator.dto.d.ts.map +1 -0
- package/dist/dto/create-collaborator.dto.js +228 -0
- package/dist/dto/create-collaborator.dto.js.map +1 -0
- package/dist/dto/create-schedule-adjustment-request.dto.d.ts +17 -0
- package/dist/dto/create-schedule-adjustment-request.dto.d.ts.map +1 -0
- package/dist/dto/create-schedule-adjustment-request.dto.js +89 -0
- package/dist/dto/create-schedule-adjustment-request.dto.js.map +1 -0
- package/dist/dto/create-task.dto.d.ts +14 -0
- package/dist/dto/create-task.dto.d.ts.map +1 -0
- package/dist/dto/create-task.dto.js +83 -0
- package/dist/dto/create-task.dto.js.map +1 -0
- package/dist/dto/create-time-off-request.dto.d.ts +9 -0
- package/dist/dto/create-time-off-request.dto.d.ts.map +1 -0
- package/dist/dto/create-time-off-request.dto.js +54 -0
- package/dist/dto/create-time-off-request.dto.js.map +1 -0
- package/dist/dto/create-timesheet-entry.dto.d.ts +12 -0
- package/dist/dto/create-timesheet-entry.dto.d.ts.map +1 -0
- package/dist/dto/create-timesheet-entry.dto.js +75 -0
- package/dist/dto/create-timesheet-entry.dto.js.map +1 -0
- package/dist/dto/list-collaborator-types.dto.d.ts +4 -0
- package/dist/dto/list-collaborator-types.dto.d.ts.map +1 -0
- package/dist/dto/list-collaborator-types.dto.js +29 -0
- package/dist/dto/list-collaborator-types.dto.js.map +1 -0
- package/dist/dto/list-collaborators.dto.d.ts +8 -0
- package/dist/dto/list-collaborators.dto.d.ts.map +1 -0
- package/dist/dto/list-collaborators.dto.js +42 -0
- package/dist/dto/list-collaborators.dto.js.map +1 -0
- package/dist/dto/list-project-options.dto.d.ts +4 -0
- package/dist/dto/list-project-options.dto.d.ts.map +1 -0
- package/dist/dto/list-project-options.dto.js +8 -0
- package/dist/dto/list-project-options.dto.js.map +1 -0
- package/dist/dto/list-tasks.dto.d.ts +7 -0
- package/dist/dto/list-tasks.dto.d.ts.map +1 -0
- package/dist/dto/list-tasks.dto.js +38 -0
- package/dist/dto/list-tasks.dto.js.map +1 -0
- package/dist/dto/list-timesheet-entries.dto.d.ts +10 -0
- package/dist/dto/list-timesheet-entries.dto.d.ts.map +1 -0
- package/dist/dto/list-timesheet-entries.dto.js +54 -0
- package/dist/dto/list-timesheet-entries.dto.js.map +1 -0
- package/dist/dto/update-collaborator-type.dto.d.ts +4 -0
- package/dist/dto/update-collaborator-type.dto.d.ts.map +1 -0
- package/dist/dto/update-collaborator-type.dto.js +8 -0
- package/dist/dto/update-collaborator-type.dto.js.map +1 -0
- package/dist/dto/update-collaborator.dto.d.ts +4 -0
- package/dist/dto/update-collaborator.dto.d.ts.map +1 -0
- package/dist/dto/update-collaborator.dto.js +8 -0
- package/dist/dto/update-collaborator.dto.js.map +1 -0
- package/dist/dto/update-task.dto.d.ts +14 -0
- package/dist/dto/update-task.dto.d.ts.map +1 -0
- package/dist/dto/update-task.dto.js +84 -0
- package/dist/dto/update-task.dto.js.map +1 -0
- package/dist/operations.controller.d.ts +0 -1045
- package/dist/operations.controller.d.ts.map +1 -1
- package/dist/operations.controller.js +0 -429
- package/dist/operations.controller.js.map +1 -1
- package/dist/operations.module.d.ts.map +1 -1
- package/dist/operations.module.js +23 -2
- package/dist/operations.module.js.map +1 -1
- package/dist/operations.service.d.ts +429 -8
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +1931 -165
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +315 -1
- package/dist/operations.service.spec.js.map +1 -1
- package/dist/services/shared/operations-access.service.d.ts +16 -0
- package/dist/services/shared/operations-access.service.d.ts.map +1 -0
- package/dist/services/shared/operations-access.service.js +48 -0
- package/dist/services/shared/operations-access.service.js.map +1 -0
- package/hedhog/data/dashboard.yaml +20 -0
- package/hedhog/data/dashboard_component.yaml +274 -0
- package/hedhog/data/dashboard_component_role.yaml +174 -0
- package/hedhog/data/dashboard_item.yaml +299 -0
- package/hedhog/data/dashboard_role.yaml +20 -0
- package/hedhog/data/menu.yaml +30 -13
- package/hedhog/data/operations_collaborator_type.yaml +76 -0
- package/hedhog/data/route.yaml +196 -0
- package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +231 -0
- package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +125 -40
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +740 -106
- package/hedhog/frontend/app/_components/collaborator-select-with-create.tsx.ejs +256 -256
- package/hedhog/frontend/app/_components/contract-form-screen.tsx.ejs +7 -7
- package/hedhog/frontend/app/_components/contract-template-form-screen.tsx.ejs +306 -306
- package/hedhog/frontend/app/_components/contract-template-select-with-create.tsx.ejs +247 -247
- package/hedhog/frontend/app/_components/contract-wizard-sheet.tsx.ejs +3520 -3520
- package/hedhog/frontend/app/_components/department-select-with-create.tsx.ejs +38 -16
- package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +1504 -52
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +1017 -649
- package/hedhog/frontend/app/_components/section-card.tsx.ejs +25 -18
- package/hedhog/frontend/app/_components/system-user-select-with-create.tsx.ejs +609 -0
- package/hedhog/frontend/app/_components/timesheet-task-create-sheet.tsx.ejs +213 -0
- package/hedhog/frontend/app/_lib/api.ts.ejs +30 -1
- package/hedhog/frontend/app/_lib/types.ts.ejs +147 -39
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +40 -9
- package/hedhog/frontend/app/_lib/utils/forms.ts.ejs +48 -1
- package/hedhog/frontend/app/approvals/page.tsx.ejs +116 -98
- package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +502 -0
- package/hedhog/frontend/app/collaborators/page.tsx.ejs +116 -72
- package/hedhog/frontend/app/contracts/page.tsx.ejs +938 -938
- package/hedhog/frontend/app/contracts/templates/page.tsx.ejs +11 -9
- package/hedhog/frontend/app/departments/page.tsx.ejs +1 -1
- package/hedhog/frontend/app/projects/[id]/edit/page.tsx.ejs +1 -1
- package/hedhog/frontend/app/projects/page.tsx.ejs +364 -133
- package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +244 -120
- package/hedhog/frontend/app/team/page.tsx.ejs +15 -2
- package/hedhog/frontend/app/time-off/page.tsx.ejs +158 -82
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +814 -357
- package/hedhog/frontend/messages/en.json +268 -53
- package/hedhog/frontend/messages/pt.json +484 -271
- package/hedhog/table/operations_collaborator.yaml +26 -13
- package/hedhog/table/operations_collaborator_equity_participation.yaml +43 -0
- package/hedhog/table/operations_collaborator_type.yaml +33 -0
- package/hedhog/table/operations_job_title.yaml +24 -0
- package/hedhog/table/operations_project.yaml +9 -0
- package/hedhog/table/operations_project_assignment.yaml +9 -0
- package/hedhog/table/operations_project_role.yaml +39 -0
- package/hedhog/table/operations_task.yaml +69 -0
- package/hedhog/table/operations_timesheet_entry.yaml +12 -0
- package/package.json +6 -6
- package/src/controllers/operations-approvals.controller.ts +24 -0
- package/src/controllers/operations-collaborators.controller.ts +60 -0
- package/src/controllers/operations-contracts.controller.ts +138 -0
- package/src/controllers/operations-org-structure.controller.ts +92 -0
- package/src/controllers/operations-projects.controller.ts +50 -0
- package/src/controllers/operations-tasks.controller.ts +63 -0
- package/src/controllers/operations-timesheets.controller.ts +100 -0
- package/src/dto/create-collaborator-type.dto.ts +43 -0
- package/src/dto/create-collaborator.dto.ts +223 -0
- package/src/dto/create-schedule-adjustment-request.dto.ts +91 -0
- package/src/dto/create-task.dto.ts +75 -0
- package/src/dto/create-time-off-request.dto.ts +53 -0
- package/src/dto/create-timesheet-entry.dto.ts +67 -0
- package/src/dto/list-collaborator-types.dto.ts +15 -0
- package/src/dto/list-collaborators.dto.ts +30 -0
- package/src/dto/list-project-options.dto.ts +3 -0
- package/src/dto/list-tasks.dto.ts +25 -0
- package/src/dto/list-timesheet-entries.dto.ts +40 -0
- package/src/dto/update-collaborator-type.dto.ts +3 -0
- package/src/dto/update-collaborator.dto.ts +3 -0
- package/src/dto/update-task.dto.ts +76 -0
- package/src/operations.controller.ts +1 -278
- package/src/operations.module.ts +23 -2
- package/src/operations.service.spec.ts +450 -0
- package/src/operations.service.ts +4507 -1561
- 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:
|
|
26
|
-
type:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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: [
|
|
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.
|
|
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
|
|
12
|
+
"@hed-hog/api": "0.0.6",
|
|
13
13
|
"@hed-hog/api-prisma": "0.0.6",
|
|
14
|
-
"@hed-hog/api-
|
|
14
|
+
"@hed-hog/api-pagination": "0.0.7",
|
|
15
15
|
"@hed-hog/api-locale": "0.0.14",
|
|
16
|
-
"@hed-hog/api": "0.0.
|
|
17
|
-
"@hed-hog/core": "0.0.
|
|
18
|
-
"@hed-hog/contact": "0.0.
|
|
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
|
+
}
|