@hed-hog/operations 0.0.304 → 0.0.306
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/dist/controllers/operations-projects.controller.d.ts +15 -0
- package/dist/controllers/operations-projects.controller.d.ts.map +1 -1
- package/dist/controllers/operations-tasks.controller.d.ts +41 -10
- package/dist/controllers/operations-tasks.controller.d.ts.map +1 -1
- package/dist/controllers/operations-tasks.controller.js +11 -0
- package/dist/controllers/operations-tasks.controller.js.map +1 -1
- package/dist/controllers/operations-timesheets.controller.d.ts +21 -0
- package/dist/controllers/operations-timesheets.controller.d.ts.map +1 -1
- package/dist/controllers/operations-timesheets.controller.js +12 -0
- package/dist/controllers/operations-timesheets.controller.js.map +1 -1
- package/dist/dto/create-task.dto.d.ts +7 -1
- package/dist/dto/create-task.dto.d.ts.map +1 -1
- package/dist/dto/create-task.dto.js +38 -5
- package/dist/dto/create-task.dto.js.map +1 -1
- package/dist/dto/list-tasks.dto.d.ts +1 -1
- package/dist/dto/list-tasks.dto.d.ts.map +1 -1
- package/dist/dto/list-tasks.dto.js +2 -2
- package/dist/dto/list-tasks.dto.js.map +1 -1
- package/dist/dto/update-collaborator-type.dto.d.ts +3 -1
- package/dist/dto/update-collaborator-type.dto.d.ts.map +1 -1
- package/dist/dto/update-collaborator-type.dto.js +2 -1
- package/dist/dto/update-collaborator-type.dto.js.map +1 -1
- package/dist/dto/update-task.dto.d.ts +7 -1
- package/dist/dto/update-task.dto.d.ts.map +1 -1
- package/dist/dto/update-task.dto.js +38 -5
- package/dist/dto/update-task.dto.js.map +1 -1
- package/dist/operations.service.d.ts +90 -12
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +560 -148
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +73 -0
- package/dist/operations.service.spec.js.map +1 -1
- package/hedhog/data/menu.yaml +26 -26
- package/hedhog/data/operations_collaborator_type.yaml +76 -76
- package/hedhog/data/route.yaml +26 -0
- package/hedhog/frontend/app/_components/async-options-combobox.tsx.ejs +5 -3
- package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +44 -44
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +168 -213
- 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/project-details-screen.tsx.ejs +1504 -52
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +528 -403
- 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 +1 -0
- package/hedhog/frontend/app/_lib/types.ts.ejs +5 -0
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +7 -7
- package/hedhog/frontend/app/_lib/utils/forms.ts.ejs +48 -1
- package/hedhog/frontend/app/approvals/page.tsx.ejs +2 -2
- package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +513 -502
- package/hedhog/frontend/app/collaborators/page.tsx.ejs +10 -7
- package/hedhog/frontend/app/contracts/page.tsx.ejs +938 -938
- package/hedhog/frontend/app/projects/[id]/edit/page.tsx.ejs +1 -1
- package/hedhog/frontend/app/projects/page.tsx.ejs +360 -133
- package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +235 -72
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +344 -134
- package/hedhog/frontend/messages/en.json +32 -4
- package/hedhog/frontend/messages/pt.json +34 -6
- package/hedhog/table/operations_collaborator.yaml +18 -18
- package/hedhog/table/operations_collaborator_equity_participation.yaml +43 -43
- package/hedhog/table/operations_collaborator_type.yaml +33 -33
- package/hedhog/table/operations_contract_document.yaml +33 -33
- package/hedhog/table/operations_project.yaml +9 -0
- package/hedhog/table/operations_task.yaml +43 -4
- package/package.json +6 -6
- package/src/controllers/operations-tasks.controller.ts +11 -0
- package/src/controllers/operations-timesheets.controller.ts +13 -0
- package/src/dto/create-collaborator-type.dto.ts +43 -43
- package/src/dto/create-collaborator.dto.ts +223 -223
- package/src/dto/create-task.dto.ts +47 -7
- package/src/dto/list-collaborator-types.dto.ts +15 -15
- package/src/dto/list-collaborators.dto.ts +30 -30
- package/src/dto/list-tasks.dto.ts +3 -3
- package/src/dto/update-collaborator-type.dto.ts +4 -3
- package/src/dto/update-collaborator.dto.ts +3 -3
- package/src/dto/update-task.dto.ts +47 -7
- package/src/operations.service.spec.ts +96 -0
- package/src/operations.service.ts +813 -135
|
@@ -41,10 +41,15 @@
|
|
|
41
41
|
"contract": "Contract",
|
|
42
42
|
"contractStatus": "Contract status",
|
|
43
43
|
"contractCategory": "Contract category",
|
|
44
|
+
"contractType": "Contract type",
|
|
45
|
+
"signatureStatus": "Signature status",
|
|
44
46
|
"manager": "Manager",
|
|
45
47
|
"progress": "Progress",
|
|
46
48
|
"timeline": "Timeline",
|
|
47
49
|
"budget": "Budget",
|
|
50
|
+
"code": "Code",
|
|
51
|
+
"deliveryModel": "Delivery model",
|
|
52
|
+
"allocationPercent": "Allocation %",
|
|
48
53
|
"teamSize": "Team size",
|
|
49
54
|
"client": "Client",
|
|
50
55
|
"billingModel": "Billing model",
|
|
@@ -246,6 +251,7 @@
|
|
|
246
251
|
"basicInfoDescription": "Core identity and profile data used across operations.",
|
|
247
252
|
"employmentInfo": "Relationship details",
|
|
248
253
|
"employmentInfoDescription": "Choose the nature of the relationship with the company, lifecycle status, and key dates.",
|
|
254
|
+
"employmentInfoCreateDescription": "Choose the relationship type and initial dates. Weekly capacity and compensation can be adjusted after creation.",
|
|
249
255
|
"equity": "Equity details",
|
|
250
256
|
"equityDescription": "Fill this section only when the selected relationship requires ownership or governance data.",
|
|
251
257
|
"supervisor": "Supervisor assignment",
|
|
@@ -284,7 +290,11 @@
|
|
|
284
290
|
"breakMinutes": "Break (min)",
|
|
285
291
|
"breakMinutesDescription": "The last numeric field defines the daily break in minutes. Example: 60 = a 1-hour lunch break.",
|
|
286
292
|
"autoGenerateContractDraft": "Generate contract draft automatically",
|
|
287
|
-
"autoGenerateContractDraftDescription": "Creates a related draft contract classified from the relationship type and linked to the hiring origin."
|
|
293
|
+
"autoGenerateContractDraftDescription": "Creates a related draft contract classified from the relationship type and linked to the hiring origin.",
|
|
294
|
+
"createUserDescription": "Enter the new system user's credentials. The account will be created immediately and linked to this collaborator.",
|
|
295
|
+
"createUserName": "Full name",
|
|
296
|
+
"createUserEmail": "Email",
|
|
297
|
+
"createUserPassword": "Password"
|
|
288
298
|
},
|
|
289
299
|
"options": {
|
|
290
300
|
"collaboratorTypes": {
|
|
@@ -327,7 +337,13 @@
|
|
|
327
337
|
"equityNotes": "Notes about quotas, shares, term, or powers",
|
|
328
338
|
"levelLabel": "Select a level",
|
|
329
339
|
"supervisor": "Search a collaborator",
|
|
330
|
-
"userIdOptional": "Select a system user"
|
|
340
|
+
"userIdOptional": "Select a system user",
|
|
341
|
+
"createUserName": "Full name",
|
|
342
|
+
"createUserEmail": "user@example.com",
|
|
343
|
+
"createUserPassword": "Strong password"
|
|
344
|
+
},
|
|
345
|
+
"actions": {
|
|
346
|
+
"createUser": "Create system user"
|
|
331
347
|
},
|
|
332
348
|
"states": {
|
|
333
349
|
"loadingCollaboratorTypes": "Loading relationship types..."
|
|
@@ -340,7 +356,9 @@
|
|
|
340
356
|
"createSuccess": "Collaborator created successfully.",
|
|
341
357
|
"createError": "Unable to create the collaborator.",
|
|
342
358
|
"updateSuccess": "Collaborator updated successfully.",
|
|
343
|
-
"updateError": "Unable to update the collaborator."
|
|
359
|
+
"updateError": "Unable to update the collaborator.",
|
|
360
|
+
"createUserSuccess": "User created and linked successfully.",
|
|
361
|
+
"createUserError": "Failed to create the system user."
|
|
344
362
|
}
|
|
345
363
|
},
|
|
346
364
|
"CollaboratorTypesPage": {
|
|
@@ -432,6 +450,9 @@
|
|
|
432
450
|
"upcomingDeliveries": "With deadline",
|
|
433
451
|
"upcomingDeliveriesDescription": "Projects that have an end date defined."
|
|
434
452
|
},
|
|
453
|
+
"viewMode": "View mode",
|
|
454
|
+
"viewModeTable": "Table",
|
|
455
|
+
"viewModeCards": "Cards",
|
|
435
456
|
"actions": {
|
|
436
457
|
"archive": "Archive"
|
|
437
458
|
},
|
|
@@ -526,7 +547,9 @@
|
|
|
526
547
|
"monthlyHourCap": "Monthly hour cap",
|
|
527
548
|
"contractCode": "Used only when creating a draft contract",
|
|
528
549
|
"contractName": "Visible name for the generated draft",
|
|
529
|
-
"contractDescription": "Add commercial notes or delivery clauses"
|
|
550
|
+
"contractDescription": "Add commercial notes or delivery clauses",
|
|
551
|
+
"roleLabel": "Select or type a role...",
|
|
552
|
+
"roleLabelCreate": "New role or responsibility"
|
|
530
553
|
},
|
|
531
554
|
"options": {
|
|
532
555
|
"deliveryModels": {
|
|
@@ -1088,12 +1111,17 @@
|
|
|
1088
1111
|
},
|
|
1089
1112
|
"messages": {
|
|
1090
1113
|
"requiredFields": "Project, task, date, and duration are required.",
|
|
1114
|
+
"collaboratorContextRequired": "Your user must be linked to a collaborator profile to report time.",
|
|
1091
1115
|
"entryValidation": "Enter a valid duration greater than zero.",
|
|
1092
1116
|
"selectProjectRequired": "Select a project assignment first.",
|
|
1093
1117
|
"selectTaskRequired": "Select or create a task first.",
|
|
1094
1118
|
"selectProjectFirst": "Select a project before creating a task.",
|
|
1119
|
+
"projectLoadError": "Unable to load the available projects.",
|
|
1120
|
+
"taskLoadError": "Unable to load the available tasks.",
|
|
1095
1121
|
"saveSuccess": "Entry saved successfully.",
|
|
1096
1122
|
"saveError": "Unable to save the entry.",
|
|
1123
|
+
"updateSuccess": "Entry updated successfully.",
|
|
1124
|
+
"updateError": "Unable to update the entry.",
|
|
1097
1125
|
"deleteSuccess": "Entry deleted successfully.",
|
|
1098
1126
|
"deleteError": "Unable to delete the entry.",
|
|
1099
1127
|
"confirmDeleteTitle": "Delete entry?",
|
|
@@ -41,10 +41,15 @@
|
|
|
41
41
|
"contract": "Contrato",
|
|
42
42
|
"contractStatus": "Status do contrato",
|
|
43
43
|
"contractCategory": "Categoria do contrato",
|
|
44
|
+
"contractType": "Tipo do contrato",
|
|
45
|
+
"signatureStatus": "Status da assinatura",
|
|
44
46
|
"manager": "Gestor",
|
|
45
47
|
"progress": "Progresso",
|
|
46
48
|
"timeline": "Período",
|
|
47
49
|
"budget": "Orçamento",
|
|
50
|
+
"code": "Código",
|
|
51
|
+
"deliveryModel": "Modelo de entrega",
|
|
52
|
+
"allocationPercent": "Alocação %",
|
|
48
53
|
"teamSize": "Tamanho da equipe",
|
|
49
54
|
"client": "Cliente",
|
|
50
55
|
"billingModel": "Modelo de faturamento",
|
|
@@ -244,6 +249,7 @@
|
|
|
244
249
|
"basicInfoDescription": "Dados principais de identificação usados em toda a operação.",
|
|
245
250
|
"employmentInfo": "Informações de contratação",
|
|
246
251
|
"employmentInfoDescription": "Defina o tipo do colaborador, o status do ciclo e as datas principais.",
|
|
252
|
+
"employmentInfoCreateDescription": "Escolha o tipo de vínculo e as datas iniciais. Capacidade semanal e remuneração podem ser ajustadas após a criação.",
|
|
247
253
|
"equity": "Detalhes de participação societária",
|
|
248
254
|
"equityDescription": "Preencha esta seção apenas quando a relação selecionada exigir dados de propriedade ou governança.",
|
|
249
255
|
"supervisor": "Vínculo de supervisor",
|
|
@@ -282,7 +288,11 @@
|
|
|
282
288
|
"breakMinutes": "Intervalo (min)",
|
|
283
289
|
"breakMinutesDescription": "O último campo numérico define o intervalo/pausa diária em minutos. Ex.: 60 = 1 hora de almoço.",
|
|
284
290
|
"autoGenerateContractDraft": "Gerar contrato rascunho automaticamente",
|
|
285
|
-
"autoGenerateContractDraftDescription": "Cria um contrato rascunho relacionado, classificado pelo tipo de colaborador e vinculado à origem de contratação."
|
|
291
|
+
"autoGenerateContractDraftDescription": "Cria um contrato rascunho relacionado, classificado pelo tipo de colaborador e vinculado à origem de contratação.",
|
|
292
|
+
"createUserDescription": "Informe as credenciais do novo usuário do sistema. A conta será criada imediatamente e vinculada a este colaborador.",
|
|
293
|
+
"createUserName": "Nome completo",
|
|
294
|
+
"createUserEmail": "E-mail",
|
|
295
|
+
"createUserPassword": "Senha"
|
|
286
296
|
},
|
|
287
297
|
"options": {
|
|
288
298
|
"collaboratorTypes": {
|
|
@@ -325,7 +335,13 @@
|
|
|
325
335
|
"equityNotes": "Observações sobre cotas, ações, prazo ou poderes",
|
|
326
336
|
"levelLabel": "Selecione um nível",
|
|
327
337
|
"supervisor": "Busque um colaborador",
|
|
328
|
-
"userIdOptional": "Selecione um usuário do sistema"
|
|
338
|
+
"userIdOptional": "Selecione um usuário do sistema",
|
|
339
|
+
"createUserName": "Nome completo",
|
|
340
|
+
"createUserEmail": "usuario@exemplo.com",
|
|
341
|
+
"createUserPassword": "Senha forte"
|
|
342
|
+
},
|
|
343
|
+
"actions": {
|
|
344
|
+
"createUser": "Criar usuário do sistema"
|
|
329
345
|
},
|
|
330
346
|
"states": {
|
|
331
347
|
"loadingCollaboratorTypes": "Carregando tipos de colaborador..."
|
|
@@ -338,7 +354,9 @@
|
|
|
338
354
|
"createSuccess": "Colaborador criado com sucesso.",
|
|
339
355
|
"createError": "Não foi possível criar o colaborador.",
|
|
340
356
|
"updateSuccess": "Colaborador atualizado com sucesso.",
|
|
341
|
-
"updateError": "Não foi possível atualizar o colaborador."
|
|
357
|
+
"updateError": "Não foi possível atualizar o colaborador.",
|
|
358
|
+
"createUserSuccess": "Usuário criado e vinculado com sucesso.",
|
|
359
|
+
"createUserError": "Não foi possível criar o usuário do sistema."
|
|
342
360
|
}
|
|
343
361
|
},
|
|
344
362
|
"CollaboratorTypesPage": {
|
|
@@ -430,6 +448,9 @@
|
|
|
430
448
|
"upcomingDeliveries": "Com prazo",
|
|
431
449
|
"upcomingDeliveriesDescription": "Projetos com data de entrega definida."
|
|
432
450
|
},
|
|
451
|
+
"viewMode": "Visualização",
|
|
452
|
+
"viewModeTable": "Tabela",
|
|
453
|
+
"viewModeCards": "Cards",
|
|
433
454
|
"actions": {
|
|
434
455
|
"archive": "Arquivar"
|
|
435
456
|
},
|
|
@@ -524,7 +545,9 @@
|
|
|
524
545
|
"monthlyHourCap": "Limite mensal de horas",
|
|
525
546
|
"contractCode": "Usado apenas ao criar contrato rascunho",
|
|
526
547
|
"contractName": "Nome visivel do contrato gerado",
|
|
527
|
-
"contractDescription": "Adicione observacoes comerciais ou clausulas da entrega"
|
|
548
|
+
"contractDescription": "Adicione observacoes comerciais ou clausulas da entrega",
|
|
549
|
+
"roleLabel": "Selecione ou informe o papel...",
|
|
550
|
+
"roleLabelCreate": "Novo papel ou responsabilidade"
|
|
528
551
|
},
|
|
529
552
|
"options": {
|
|
530
553
|
"deliveryModels": {
|
|
@@ -1086,14 +1109,19 @@
|
|
|
1086
1109
|
},
|
|
1087
1110
|
"messages": {
|
|
1088
1111
|
"requiredFields": "Projeto, tarefa, data e duração são obrigatórios.",
|
|
1112
|
+
"collaboratorContextRequired": "Seu usuário precisa estar vinculado a um colaborador para lançar horas.",
|
|
1089
1113
|
"entryValidation": "Informe uma duração válida maior que zero.",
|
|
1090
1114
|
"selectProjectRequired": "Selecione primeiro uma alocação de projeto.",
|
|
1091
1115
|
"selectTaskRequired": "Selecione ou crie uma tarefa primeiro.",
|
|
1092
1116
|
"selectProjectFirst": "Selecione um projeto antes de criar uma tarefa.",
|
|
1117
|
+
"projectLoadError": "Não foi possível carregar os projetos disponíveis.",
|
|
1118
|
+
"taskLoadError": "Não foi possível carregar as tarefas disponíveis.",
|
|
1093
1119
|
"saveSuccess": "Lançamento salvo com sucesso.",
|
|
1094
|
-
"saveError": "
|
|
1120
|
+
"saveError": "Não foi possível salvar o lançamento.",
|
|
1121
|
+
"updateSuccess": "Lançamento atualizado com sucesso.",
|
|
1122
|
+
"updateError": "Não foi possível atualizar o lançamento.",
|
|
1095
1123
|
"deleteSuccess": "Lançamento excluído com sucesso.",
|
|
1096
|
-
"deleteError": "
|
|
1124
|
+
"deleteError": "Não foi possível excluir o lançamento.",
|
|
1097
1125
|
"confirmDeleteTitle": "Excluir lançamento?",
|
|
1098
1126
|
"confirmDeleteDescription": "Isso removerá o lançamento de \"{name}\" do rascunho semanal atual.",
|
|
1099
1127
|
"submitSuccess": "Timesheet enviada com sucesso.",
|
|
@@ -19,20 +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_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
|
|
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
|
|
36
36
|
- name: department
|
|
37
37
|
type: varchar
|
|
38
38
|
length: 120
|
|
@@ -92,9 +92,9 @@ indices:
|
|
|
92
92
|
isUnique: true
|
|
93
93
|
- columns: [code]
|
|
94
94
|
isUnique: true
|
|
95
|
-
- columns: [collaborator_type_id]
|
|
96
|
-
- columns: [supervisor_collaborator_id]
|
|
97
|
-
- columns: [department_id]
|
|
98
|
-
- columns: [job_title_id]
|
|
95
|
+
- columns: [collaborator_type_id]
|
|
96
|
+
- columns: [supervisor_collaborator_id]
|
|
97
|
+
- columns: [department_id]
|
|
98
|
+
- columns: [job_title_id]
|
|
99
99
|
- columns: [status]
|
|
100
100
|
- columns: [deleted_at]
|
|
@@ -1,43 +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]
|
|
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]
|
|
@@ -1,33 +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]
|
|
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]
|
|
@@ -7,40 +7,40 @@ columns:
|
|
|
7
7
|
column: id
|
|
8
8
|
onDelete: CASCADE
|
|
9
9
|
onUpdate: CASCADE
|
|
10
|
-
- name: document_type
|
|
11
|
-
type: enum
|
|
12
|
-
values: [source_upload, generated_pdf, attachment, other]
|
|
13
|
-
default: attachment
|
|
14
|
-
- name: file_id
|
|
15
|
-
type: fk
|
|
16
|
-
isNullable: true
|
|
17
|
-
references:
|
|
18
|
-
table: file
|
|
19
|
-
column: id
|
|
20
|
-
onDelete: SET NULL
|
|
21
|
-
onUpdate: CASCADE
|
|
22
|
-
- name: file_name
|
|
23
|
-
type: varchar
|
|
24
|
-
length: 200
|
|
10
|
+
- name: document_type
|
|
11
|
+
type: enum
|
|
12
|
+
values: [source_upload, generated_pdf, attachment, other]
|
|
13
|
+
default: attachment
|
|
14
|
+
- name: file_id
|
|
15
|
+
type: fk
|
|
16
|
+
isNullable: true
|
|
17
|
+
references:
|
|
18
|
+
table: file
|
|
19
|
+
column: id
|
|
20
|
+
onDelete: SET NULL
|
|
21
|
+
onUpdate: CASCADE
|
|
22
|
+
- name: file_name
|
|
23
|
+
type: varchar
|
|
24
|
+
length: 200
|
|
25
25
|
- name: mime_type
|
|
26
26
|
type: varchar
|
|
27
27
|
length: 120
|
|
28
28
|
- name: file_content_base64
|
|
29
29
|
type: text
|
|
30
30
|
isNullable: true
|
|
31
|
-
- name: is_current
|
|
32
|
-
type: boolean
|
|
33
|
-
default: true
|
|
34
|
-
- name: extraction_status
|
|
35
|
-
type: enum
|
|
36
|
-
values: [pending, processing, completed, failed, skipped]
|
|
37
|
-
default: skipped
|
|
38
|
-
- name: extraction_summary
|
|
39
|
-
type: text
|
|
40
|
-
isNullable: true
|
|
41
|
-
- name: notes
|
|
42
|
-
type: text
|
|
43
|
-
isNullable: true
|
|
31
|
+
- name: is_current
|
|
32
|
+
type: boolean
|
|
33
|
+
default: true
|
|
34
|
+
- name: extraction_status
|
|
35
|
+
type: enum
|
|
36
|
+
values: [pending, processing, completed, failed, skipped]
|
|
37
|
+
default: skipped
|
|
38
|
+
- name: extraction_summary
|
|
39
|
+
type: text
|
|
40
|
+
isNullable: true
|
|
41
|
+
- name: notes
|
|
42
|
+
type: text
|
|
43
|
+
isNullable: true
|
|
44
44
|
- name: deleted_at
|
|
45
45
|
type: datetime
|
|
46
46
|
isNullable: true
|
|
@@ -49,8 +49,8 @@ columns:
|
|
|
49
49
|
|
|
50
50
|
indices:
|
|
51
51
|
- columns: [contract_id]
|
|
52
|
-
- columns: [document_type]
|
|
53
|
-
- columns: [file_id]
|
|
54
|
-
- columns: [is_current]
|
|
55
|
-
- columns: [extraction_status]
|
|
56
|
-
- columns: [deleted_at]
|
|
52
|
+
- columns: [document_type]
|
|
53
|
+
- columns: [file_id]
|
|
54
|
+
- columns: [is_current]
|
|
55
|
+
- columns: [extraction_status]
|
|
56
|
+
- 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]
|
|
@@ -1,11 +1,28 @@
|
|
|
1
1
|
columns:
|
|
2
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
|
|
3
11
|
- name: project_assignment_id
|
|
4
12
|
type: fk
|
|
13
|
+
isNullable: true
|
|
5
14
|
references:
|
|
6
15
|
table: operations_project_assignment
|
|
7
16
|
column: id
|
|
8
|
-
onDelete:
|
|
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
|
|
9
26
|
onUpdate: CASCADE
|
|
10
27
|
- name: name
|
|
11
28
|
type: varchar
|
|
@@ -13,10 +30,28 @@ columns:
|
|
|
13
30
|
- name: description
|
|
14
31
|
type: text
|
|
15
32
|
isNullable: true
|
|
33
|
+
- name: priority
|
|
34
|
+
type: enum
|
|
35
|
+
values: [low, medium, high]
|
|
36
|
+
default: medium
|
|
16
37
|
- name: status
|
|
17
38
|
type: enum
|
|
18
|
-
values: [
|
|
19
|
-
default:
|
|
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
|
|
20
55
|
- name: deleted_at
|
|
21
56
|
type: datetime
|
|
22
57
|
isNullable: true
|
|
@@ -24,7 +59,11 @@ columns:
|
|
|
24
59
|
- type: updated_at
|
|
25
60
|
|
|
26
61
|
indices:
|
|
62
|
+
- columns: [project_id]
|
|
27
63
|
- columns: [project_assignment_id]
|
|
64
|
+
- columns: [assignee_collaborator_id]
|
|
28
65
|
- columns: [status]
|
|
29
|
-
- columns: [
|
|
66
|
+
- columns: [priority]
|
|
67
|
+
- columns: [due_date]
|
|
68
|
+
- columns: [project_id, status]
|
|
30
69
|
- 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.306",
|
|
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-locale": "0.0.14",
|
|
13
|
-
"@hed-hog/core": "0.0.304",
|
|
14
|
-
"@hed-hog/api": "0.0.6",
|
|
15
12
|
"@hed-hog/api-pagination": "0.0.7",
|
|
16
|
-
"@hed-hog/api
|
|
13
|
+
"@hed-hog/api": "0.0.6",
|
|
17
14
|
"@hed-hog/api-prisma": "0.0.6",
|
|
18
|
-
"@hed-hog/
|
|
15
|
+
"@hed-hog/core": "0.0.306",
|
|
16
|
+
"@hed-hog/api-locale": "0.0.14",
|
|
17
|
+
"@hed-hog/api-types": "0.0.1",
|
|
18
|
+
"@hed-hog/contact": "0.0.306"
|
|
19
19
|
},
|
|
20
20
|
"exports": {
|
|
21
21
|
".": {
|
|
@@ -31,6 +31,17 @@ export class OperationsTasksController {
|
|
|
31
31
|
);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
@Get('projects/:id/tasks')
|
|
35
|
+
listProjectBoardTasks(
|
|
36
|
+
@User() user,
|
|
37
|
+
@Param('id', ParseIntPipe) id: number,
|
|
38
|
+
) {
|
|
39
|
+
return this.operationsService.listProjectBoardTasks(
|
|
40
|
+
Number(user?.id || 0),
|
|
41
|
+
id,
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
@Post('tasks')
|
|
35
46
|
createTask(@User() user, @Body() data: CreateOperationsTaskDto) {
|
|
36
47
|
return this.operationsService.createTask(Number(user?.id || 0), data);
|
|
@@ -45,6 +45,19 @@ export class OperationsTimesheetsController {
|
|
|
45
45
|
);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
@Patch('timesheet-entries/:id')
|
|
49
|
+
updateTimesheetEntry(
|
|
50
|
+
@User() user,
|
|
51
|
+
@Param('id', ParseIntPipe) id: number,
|
|
52
|
+
@Body() data: CreateTimesheetEntryDto,
|
|
53
|
+
) {
|
|
54
|
+
return this.operationsService.updateTimesheetEntry(
|
|
55
|
+
Number(user?.id || 0),
|
|
56
|
+
id,
|
|
57
|
+
data,
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
48
61
|
@Delete('timesheet-entries/:id')
|
|
49
62
|
removeTimesheetEntry(@User() user, @Param('id', ParseIntPipe) id: number) {
|
|
50
63
|
return this.operationsService.removeTimesheetEntry(Number(user?.id || 0), id);
|