@hed-hog/operations 0.0.325 → 0.0.326

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 (32) hide show
  1. package/dist/controllers/operations-collaborators.controller.d.ts +5 -0
  2. package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
  3. package/dist/operations.service.d.ts +9 -1
  4. package/dist/operations.service.d.ts.map +1 -1
  5. package/dist/operations.service.js +140 -26
  6. package/dist/operations.service.js.map +1 -1
  7. package/hedhog/data/integration_event_catalog.yaml +313 -0
  8. package/hedhog/data/setting_group.yaml +21 -0
  9. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +410 -23
  10. package/hedhog/frontend/app/_components/my-project-summary-screen.tsx.ejs +504 -375
  11. package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +258 -230
  12. package/hedhog/frontend/app/_components/task-detail-sheet.tsx.ejs +225 -162
  13. package/hedhog/frontend/app/_components/task-form-sheet.tsx.ejs +484 -230
  14. package/hedhog/frontend/app/_lib/api.ts.ejs +13 -4
  15. package/hedhog/frontend/app/_lib/hooks/use-mention-items.ts.ejs +28 -0
  16. package/hedhog/frontend/app/_lib/types.ts.ejs +30 -29
  17. package/hedhog/frontend/app/my-tasks/page.tsx.ejs +347 -236
  18. package/hedhog/frontend/app/reports/projects/page.tsx.ejs +31 -7
  19. package/hedhog/frontend/messages/en.json +38 -55
  20. package/hedhog/frontend/messages/en.json.ejs +21 -4
  21. package/hedhog/frontend/messages/pt.json +36 -55
  22. package/hedhog/frontend/messages/pt.json.ejs +14 -3
  23. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.d.ts +1 -0
  24. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.d.ts.map +1 -1
  25. package/hedhog/frontend/src/app/(app)/(libraries)/operations/_lib/types.ts +1 -0
  26. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.d.ts +1 -0
  27. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.d.ts.map +1 -1
  28. package/hedhog/frontend/src/app/(app)/(libraries)/operations/operations/_lib/types.ts +1 -0
  29. package/hedhog/table/operations_collaborator.yaml +5 -0
  30. package/hedhog/table/operations_collaborator_compensation_history.yaml +4 -0
  31. package/package.json +5 -5
  32. package/src/operations.service.ts +202 -26
@@ -28,11 +28,18 @@ import {
28
28
  TableHeader,
29
29
  TableRow,
30
30
  } from '@/components/ui/table';
31
+ import {
32
+ Tooltip,
33
+ TooltipContent,
34
+ TooltipProvider,
35
+ TooltipTrigger,
36
+ } from '@/components/ui/tooltip';
31
37
  import { useApp, useQuery } from '@hed-hog/next-app-provider';
32
38
  import {
33
39
  Banknote,
34
40
  CircleDollarSign,
35
41
  Clock3,
42
+ ExternalLink,
36
43
  FolderKanban,
37
44
  Gauge,
38
45
  Info,
@@ -40,6 +47,7 @@ import {
40
47
  TimerOff,
41
48
  TrendingUp,
42
49
  } from 'lucide-react';
50
+ import Link from 'next/link';
43
51
  import { useState } from 'react';
44
52
  import { OperationsHeader } from '../../_components/operations-header';
45
53
  import { fetchOperations } from '../../_lib/api';
@@ -48,12 +56,6 @@ import type {
48
56
  OperationsReportScenario,
49
57
  } from '../../_lib/types';
50
58
  import { formatCurrency, formatHours } from '../../_lib/utils/format';
51
- import {
52
- Tooltip,
53
- TooltipContent,
54
- TooltipProvider,
55
- TooltipTrigger,
56
- } from '@/components/ui/tooltip';
57
59
 
58
60
  const statusLabels: Record<string, string> = {
59
61
  on_track: 'No prazo',
@@ -429,6 +431,7 @@ export default function OperationsProjectReportsPage() {
429
431
  <TableHead>Custo de ociosidade</TableHead>
430
432
  <TableHead>Risco</TableHead>
431
433
  <TableHead>Recomendação</TableHead>
434
+ <TableHead />
432
435
  </TableRow>
433
436
  </TableHeader>
434
437
  <TableBody>
@@ -438,7 +441,13 @@ export default function OperationsProjectReportsPage() {
438
441
  ? (plannedProfit / row.contractedRevenue) * 100
439
442
  : 0;
440
443
  return (
441
- <TableRow key={row.id}>
444
+ <TableRow
445
+ key={row.id}
446
+ className="cursor-pointer"
447
+ onDoubleClick={() =>
448
+ window.open(`/operations/projects/${row.id}`, '_self')
449
+ }
450
+ >
442
451
  <TableCell className="min-w-72">
443
452
  <div className="font-medium">{row.name}</div>
444
453
  <div className="text-xs text-muted-foreground">
@@ -505,6 +514,21 @@ export default function OperationsProjectReportsPage() {
505
514
  <TableCell className="min-w-72 text-sm text-muted-foreground">
506
515
  {row.recommendation}
507
516
  </TableCell>
517
+ <TableCell>
518
+ <Link
519
+ href={`/operations/projects/${row.id}`}
520
+ onClick={(e) => e.stopPropagation()}
521
+ >
522
+ <Button
523
+ size="icon"
524
+ variant="ghost"
525
+ className="size-8"
526
+ title="Ver detalhes"
527
+ >
528
+ <ExternalLink className="size-4" />
529
+ </Button>
530
+ </Link>
531
+ </TableCell>
508
532
  </TableRow>
509
533
  );
510
534
  })}
@@ -272,12 +272,20 @@
272
272
  "breadcrumb": "Collaborator Form",
273
273
  "description": "Register collaborators with the right employment profile and optionally generate a draft contract from the hiring flow.",
274
274
  "noAccessDescription": "Director permissions are required to manage collaborator registration.",
275
+ "noDirectorAccess": "Director permissions are required to access this section.",
275
276
  "loading": "Loading collaborator data...",
276
277
  "tabs": {
277
278
  "profile": "Profile",
278
279
  "contract": "Contract",
279
280
  "schedule": "Schedule",
280
- "activity": "Activity"
281
+ "activity": "Activity",
282
+ "details": "Details",
283
+ "costs": "Costs",
284
+ "defaultSchedule": "Default Schedule",
285
+ "projects": "Projects",
286
+ "tasks": "Tasks",
287
+ "timesheets": "Timesheets",
288
+ "salary": "Compensation"
281
289
  },
282
290
  "sections": {
283
291
  "basicInfo": "Basic info",
@@ -335,8 +343,10 @@
335
343
  "createUserDescription": "Enter the new system user's credentials. The account will be created immediately and linked to this collaborator.",
336
344
  "createUserName": "Full name",
337
345
  "createUserEmail": "Email",
338
- "createUserPassword": "Password"
339
- },
346
+ "createUserPassword": "Password",
347
+ "compensationEffectiveDate": "Effective date",
348
+ "compensationNotes": "Compensation notes"
349
+ },
340
350
  "options": {
341
351
  "collaboratorTypes": {
342
352
  "clt": "CLT",
@@ -381,7 +391,8 @@
381
391
  "userIdOptional": "Select a system user",
382
392
  "createUserName": "Full name",
383
393
  "createUserEmail": "user@example.com",
384
- "createUserPassword": "Strong password"
394
+ "createUserPassword": "Strong password",
395
+ "compensationNotes": "Notes about the compensation change"
385
396
  },
386
397
  "actions": {
387
398
  "createUser": "Create system user",
@@ -401,6 +412,12 @@
401
412
  "updateError": "Unable to update the collaborator.",
402
413
  "createUserSuccess": "User created and linked successfully.",
403
414
  "createUserError": "Failed to create the system user."
415
+ },
416
+ "chart": {
417
+ "salaryHistory": "Salary history",
418
+ "hourlyHistory": "Hourly rate history",
419
+ "actual": "Actual",
420
+ "projection": "Projection"
404
421
  }
405
422
  },
406
423
  "CollaboratorTypesPage": {
@@ -484,12 +501,12 @@
484
501
  "compensationHistory": "Salary history",
485
502
  "compensationHistoryDescription": "Historical record of salary changes for this collaborator."
486
503
  },
504
+ "noContracts": "No related contracts are linked to this collaborator yet.",
505
+ "noProjects": "No projects are assigned to this collaborator yet.",
487
506
  "addProject": "Add project",
488
507
  "searchProject": "Search project...",
489
508
  "createProject": "Create project",
490
- "createProjectDescription": "Register a new project to link to this collaborator.",
491
- "noContracts": "No related contracts are linked to this collaborator yet.",
492
- "noProjects": "No projects are assigned to this collaborator yet.",
509
+ "createProjectDescription": "Create a new project and automatically link it to this collaborator.",
493
510
  "noScheduleAdjustments": "No schedule adjustment requests were found.",
494
511
  "noCompensationHistory": "No salary changes have been recorded for this collaborator yet.",
495
512
  "compensationHistory": {
@@ -793,6 +810,16 @@
793
810
  "warning": "Attention",
794
811
  "danger": "Critical"
795
812
  },
813
+ "sections": {
814
+ "overview": "Overview",
815
+ "contract": "Related contract",
816
+ "team": "Assigned collaborators",
817
+ "teamDescription": "Initial and ongoing staffing linked to this project.",
818
+ "indicators": "Operational indicators",
819
+ "indicatorsDescription": "Current project staffing and delivery metrics.",
820
+ "costs": "Project Costs",
821
+ "costsDescription": "Manage planned, confirmed, and cancelled costs associated with this project."
822
+ },
796
823
  "indicators": {
797
824
  "activeAssignments": "Active assignments",
798
825
  "completedAssignments": "Completed assignments",
@@ -801,23 +828,6 @@
801
828
  },
802
829
  "noContract": "No related contract is linked to this project yet.",
803
830
  "noAssignments": "No collaborators are assigned to this project yet.",
804
- "costs": {
805
- "emptyTitle": "No costs recorded",
806
- "emptyDescription": "Add costs to this project to see the financial summary here.",
807
- "totalCost": "Total cost",
808
- "realized": "Realized",
809
- "budgetUsed": "Budget used",
810
- "remaining": "Remaining",
811
- "noBudget": "Budget not set",
812
- "extraCosts": "Other costs",
813
- "categories": "categories",
814
- "topCategory": "Top category",
815
- "budgetProgress": "Budget progress",
816
- "chartByCategory": "Cost by category",
817
- "chartByMonth": "Monthly evolution",
818
- "budgetWarning": "Budget reached {pct}% of the limit. Be careful with new costs.",
819
- "budgetExceeded": "Budget exceeded! Current usage: {pct}% of the defined limit."
820
- },
821
831
  "sections": {
822
832
  "overview": "Overview",
823
833
  "contract": "Related contract",
@@ -825,8 +835,6 @@
825
835
  "teamDescription": "Initial and ongoing staffing linked to this project.",
826
836
  "indicators": "Operational indicators",
827
837
  "indicatorsDescription": "Current project staffing and delivery metrics.",
828
- "costs": "Project Costs",
829
- "costsDescription": "Manage planned, confirmed, and cancelled costs associated with this project.",
830
838
  "deliveryHealth": "Delivery health",
831
839
  "deliveryHealthDescription": "Visual overview of team allocation and operational pace.",
832
840
  "quickRadar": "Quick radar",
@@ -836,9 +844,7 @@
836
844
  "taskBoard": "Task board",
837
845
  "taskBoardDescription": "Kanban-style board with drag between columns and task side panel.",
838
846
  "archivedTasks": "Archived tasks",
839
- "archivedTasksDescription": "Review archived project tasks, open details, restore them, or delete them permanently.",
840
- "costDashboard": "Cost Dashboard",
841
- "costDashboardDescription": "Executive summary of budget, monthly trend, and cost distribution for this project."
847
+ "archivedTasksDescription": "Review archived project tasks, open details, restore them, or delete them permanently."
842
848
  },
843
849
  "charts": {
844
850
  "projectProgress": "Progress",
@@ -947,16 +953,7 @@
947
953
  "deleteTitle": "Delete task",
948
954
  "deleteDescription": "Are you sure you want to permanently delete this task? This action cannot be undone."
949
955
  },
950
- "emptyArchivedDescription": "There are no archived tasks in this project.",
951
- "tabs": {
952
- "tasks": "Tasks",
953
- "overview": "Overview",
954
- "analysis": "Analysis",
955
- "team": "Team",
956
- "timeline": "Timeline",
957
- "archive": "Archived",
958
- "costs": "Costs"
959
- }
956
+ "emptyArchivedDescription": "There are no archived tasks in this project."
960
957
  },
961
958
  "ContractsPage": {
962
959
  "title": "Contracts",
@@ -2009,7 +2006,6 @@
2009
2006
  "descriptionPlaceholder": "Brief description of the cost",
2010
2007
  "amount": "Amount",
2011
2008
  "currency": "Currency",
2012
- "currencyPlaceholder": "Select currency",
2013
2009
  "quantity": "Quantity",
2014
2010
  "unitAmount": "Unit amount",
2015
2011
  "calculationType": "Calculation type",
@@ -2021,23 +2017,10 @@
2021
2017
  "periodStart": "Period start",
2022
2018
  "periodEnd": "Period end",
2023
2019
  "notes": "Notes",
2024
- "notesPlaceholder": "Additional notes (optional)",
2025
- "category": "Category",
2026
- "categoryPlaceholder": "Select a category (optional)",
2027
- "categoryCreateTitle": "New category",
2028
- "categoryNameLabel": "Name",
2029
- "categoryNamePlaceholder": "e.g. Infrastructure",
2030
- "categoryAutoFilled": "Auto-filled from the selected type",
2031
- "costTypeCreateTitle": "New cost type",
2032
- "costTypeNameLabel": "Name",
2033
- "costTypeNamePlaceholder": "e.g. Software license",
2034
- "costTypeCodeLabel": "Code",
2035
- "costTypeCodePlaceholder": "e.g. SW-001",
2036
- "amountCalculated": "Automatically calculated: quantity × unit amount"
2020
+ "notesPlaceholder": "Additional notes (optional)"
2037
2021
  },
2038
2022
  "actions": {
2039
- "add": "Add Cost",
2040
- "viewReport": "View Report"
2023
+ "add": "Add Cost"
2041
2024
  },
2042
2025
  "sheet": {
2043
2026
  "createTitle": "Add cost to project",
@@ -272,12 +272,20 @@
272
272
  "breadcrumb": "Collaborator Form",
273
273
  "description": "Register collaborators with the right employment profile and optionally generate a draft contract from the hiring flow.",
274
274
  "noAccessDescription": "Director permissions are required to manage collaborator registration.",
275
+ "noDirectorAccess": "Director permissions are required to access this section.",
275
276
  "loading": "Loading collaborator data...",
276
277
  "tabs": {
277
278
  "profile": "Profile",
278
279
  "contract": "Contract",
279
280
  "schedule": "Schedule",
280
- "activity": "Activity"
281
+ "activity": "Activity",
282
+ "details": "Details",
283
+ "costs": "Costs",
284
+ "defaultSchedule": "Default Schedule",
285
+ "projects": "Projects",
286
+ "tasks": "Tasks",
287
+ "timesheets": "Timesheets",
288
+ "salary": "Compensation"
281
289
  },
282
290
  "sections": {
283
291
  "basicInfo": "Basic info",
@@ -335,8 +343,10 @@
335
343
  "createUserDescription": "Enter the new system user's credentials. The account will be created immediately and linked to this collaborator.",
336
344
  "createUserName": "Full name",
337
345
  "createUserEmail": "Email",
338
- "createUserPassword": "Password"
339
- },
346
+ "createUserPassword": "Password",
347
+ "compensationEffectiveDate": "Effective date",
348
+ "compensationNotes": "Compensation notes"
349
+ },
340
350
  "options": {
341
351
  "collaboratorTypes": {
342
352
  "clt": "CLT",
@@ -381,7 +391,8 @@
381
391
  "userIdOptional": "Select a system user",
382
392
  "createUserName": "Full name",
383
393
  "createUserEmail": "user@example.com",
384
- "createUserPassword": "Strong password"
394
+ "createUserPassword": "Strong password",
395
+ "compensationNotes": "Notes about the compensation change"
385
396
  },
386
397
  "actions": {
387
398
  "createUser": "Create system user",
@@ -401,6 +412,12 @@
401
412
  "updateError": "Unable to update the collaborator.",
402
413
  "createUserSuccess": "User created and linked successfully.",
403
414
  "createUserError": "Failed to create the system user."
415
+ },
416
+ "chart": {
417
+ "salaryHistory": "Salary history",
418
+ "hourlyHistory": "Hourly rate history",
419
+ "actual": "Actual",
420
+ "projection": "Projection"
404
421
  }
405
422
  },
406
423
  "CollaboratorTypesPage": {
@@ -270,14 +270,20 @@
270
270
  "breadcrumb": "Cadastro de Colaborador",
271
271
  "description": "Cadastre colaboradores com o perfil de contratação correto e gere um contrato rascunho a partir da origem de admissão quando necessário.",
272
272
  "noAccessDescription": "Permissões de diretor são necessárias para cadastrar ou editar colaboradores.",
273
+ "noDirectorAccess": "Permissões de diretor são necessárias para acessar esta seção.",
273
274
  "loading": "Carregando dados do colaborador...",
274
275
  "tabs": {
275
- "details": "Dados",
276
+ "profile": "Cadastro",
277
+ "contract": "Contrato",
278
+ "schedule": "Agenda",
279
+ "activity": "Atividade",
280
+ "details": "Detalhes",
276
281
  "costs": "Custos",
277
- "defaultSchedule": "Horário padrão",
282
+ "defaultSchedule": "Horário Padrão",
278
283
  "projects": "Projetos",
279
284
  "tasks": "Tarefas",
280
- "timesheets": "Apontamentos"
285
+ "timesheets": "Apontamentos",
286
+ "salary": "Remuneração"
281
287
  },
282
288
  "sections": {
283
289
  "basicInfo": "Informações básicas",
@@ -335,7 +341,9 @@
335
341
  "createUserDescription": "Informe as credenciais do novo usuário do sistema. A conta será criada imediatamente e vinculada a este colaborador.",
336
342
  "createUserName": "Nome completo",
337
343
  "createUserEmail": "E-mail",
338
- "createUserPassword": "Senha"
344
+ "createUserPassword": "Senha",
345
+ "compensationEffectiveDate": "Data de vigência",
346
+ "compensationNotes": "Observações da remuneração"
339
347
  },
340
348
  "options": {
341
349
  "collaboratorTypes": {
@@ -381,7 +389,8 @@
381
389
  "userIdOptional": "Selecione um usuário do sistema",
382
390
  "createUserName": "Nome completo",
383
391
  "createUserEmail": "usuario@exemplo.com",
384
- "createUserPassword": "Senha forte"
392
+ "createUserPassword": "Senha forte",
393
+ "compensationNotes": "Observações sobre a alteração de remuneração"
385
394
  },
386
395
  "actions": {
387
396
  "createUser": "Criar usuário do sistema",
@@ -401,6 +410,12 @@
401
410
  "updateError": "Não foi possível atualizar o colaborador.",
402
411
  "createUserSuccess": "Usuário criado e vinculado com sucesso.",
403
412
  "createUserError": "Não foi possível criar o usuário do sistema."
413
+ },
414
+ "chart": {
415
+ "salaryHistory": "Histórico de salário",
416
+ "hourlyHistory": "Histórico de valor/hora",
417
+ "actual": "Realizado",
418
+ "projection": "Projeção"
404
419
  }
405
420
  },
406
421
  "CollaboratorTypesPage": {
@@ -484,12 +499,12 @@
484
499
  "compensationHistory": "Histórico de salário",
485
500
  "compensationHistoryDescription": "Registro histórico das alterações de salário deste colaborador."
486
501
  },
502
+ "noContracts": "Ainda não existem contratos relacionados a este colaborador.",
503
+ "noProjects": "Ainda não existem projetos vinculados a este colaborador.",
487
504
  "addProject": "Adicionar projeto",
488
505
  "searchProject": "Buscar projeto...",
489
506
  "createProject": "Criar projeto",
490
- "createProjectDescription": "Cadastre um novo projeto para vincular a este colaborador.",
491
- "noContracts": "Ainda não existem contratos relacionados a este colaborador.",
492
- "noProjects": "Ainda não existem projetos vinculados a este colaborador.",
507
+ "createProjectDescription": "Crie um novo projeto e vincule-o automaticamente a este colaborador.",
493
508
  "noScheduleAdjustments": "Nenhuma solicitação de ajuste de horário foi encontrada.",
494
509
  "noCompensationHistory": "Nenhuma alteração de salário foi registrada para este colaborador ainda.",
495
510
  "compensationHistory": {
@@ -793,6 +808,16 @@
793
808
  "warning": "Atenção",
794
809
  "danger": "Crítico"
795
810
  },
811
+ "sections": {
812
+ "overview": "Visão geral",
813
+ "contract": "Contrato relacionado",
814
+ "team": "Colaboradores vinculados",
815
+ "teamDescription": "Equipe inicial e alocações em andamento associadas ao projeto.",
816
+ "indicators": "Indicadores operacionais",
817
+ "indicatorsDescription": "Métricas atuais de equipe e entrega do projeto.",
818
+ "costs": "Custos do Projeto",
819
+ "costsDescription": "Gerencie custos planejados, confirmados e cancelados associados a este projeto."
820
+ },
796
821
  "indicators": {
797
822
  "activeAssignments": "Atribuições ativas",
798
823
  "completedAssignments": "Atribuições concluídas",
@@ -801,23 +826,6 @@
801
826
  },
802
827
  "noContract": "Ainda não existe contrato relacionado a este projeto.",
803
828
  "noAssignments": "Ainda não existem colaboradores vinculados a este projeto.",
804
- "costs": {
805
- "emptyTitle": "Sem custos registrados",
806
- "emptyDescription": "Adicione custos ao projeto para visualizar o resumo financeiro aqui.",
807
- "totalCost": "Custo total",
808
- "realized": "Realizado",
809
- "budgetUsed": "Orçamento usado",
810
- "remaining": "Restante",
811
- "noBudget": "Orçamento não definido",
812
- "extraCosts": "Outros custos",
813
- "categories": "categorias",
814
- "topCategory": "Maior categoria",
815
- "budgetProgress": "Progresso do orçamento",
816
- "chartByCategory": "Custo por categoria",
817
- "chartByMonth": "Evolução mensal",
818
- "budgetWarning": "Orçamento atingiu {pct}% do limite. Atenção com novos custos.",
819
- "budgetExceeded": "Orçamento ultrapassado! Uso atual: {pct}% do limite definido."
820
- },
821
829
  "sections": {
822
830
  "overview": "Visão geral",
823
831
  "contract": "Contrato relacionado",
@@ -825,12 +833,8 @@
825
833
  "teamDescription": "Equipe inicial e alocações em andamento associadas ao projeto.",
826
834
  "indicators": "Indicadores operacionais",
827
835
  "indicatorsDescription": "Métricas atuais de equipe e entrega do projeto.",
828
- "costs": "Custos do Projeto",
829
- "costsDescription": "Gerencie custos planejados, confirmados e cancelados associados a este projeto.",
830
836
  "deliveryHealth": "Saúde da entrega",
831
837
  "deliveryHealthDescription": "Leitura visual de alocação e ritmo operacional da equipe.",
832
- "costDashboard": "Painel de Custos",
833
- "costDashboardDescription": "Resumo executivo de orçamento, evolução mensal e distribuição de custos do projeto.",
834
838
  "quickRadar": "Radar rápido",
835
839
  "quickRadarDescription": "Sinais para tomada de decisão no curto prazo.",
836
840
  "timeline": "Timeline operacional",
@@ -947,16 +951,7 @@
947
951
  "deleteTitle": "Excluir tarefa",
948
952
  "deleteDescription": "Tem certeza que deseja excluir esta tarefa de forma permanente? Esta ação não pode ser desfeita."
949
953
  },
950
- "emptyArchivedDescription": "Nenhuma tarefa arquivada neste projeto.",
951
- "tabs": {
952
- "tasks": "Tarefas",
953
- "overview": "Visão Geral",
954
- "analysis": "Análise",
955
- "team": "Equipe",
956
- "timeline": "Linha do Tempo",
957
- "archive": "Arquivadas",
958
- "costs": "Custos"
959
- }
954
+ "emptyArchivedDescription": "Nenhuma tarefa arquivada neste projeto."
960
955
  },
961
956
  "ContractsPage": {
962
957
  "title": "Contratos",
@@ -2018,7 +2013,6 @@
2018
2013
  "descriptionPlaceholder": "Descrição resumida do custo",
2019
2014
  "amount": "Valor",
2020
2015
  "currency": "Moeda",
2021
- "currencyPlaceholder": "Selecione a moeda",
2022
2016
  "quantity": "Quantidade",
2023
2017
  "unitAmount": "Valor unitário",
2024
2018
  "calculationType": "Tipo de cálculo",
@@ -2030,23 +2024,10 @@
2030
2024
  "periodStart": "Início do período",
2031
2025
  "periodEnd": "Fim do período",
2032
2026
  "notes": "Observações",
2033
- "notesPlaceholder": "Observações adicionais (opcional)",
2034
- "category": "Categoria",
2035
- "categoryPlaceholder": "Selecione uma categoria (opcional)",
2036
- "categoryCreateTitle": "Nova categoria",
2037
- "categoryNameLabel": "Nome",
2038
- "categoryNamePlaceholder": "ex.: Infraestrutura",
2039
- "categoryAutoFilled": "Preenchido automaticamente pelo tipo selecionado",
2040
- "costTypeCreateTitle": "Novo tipo de custo",
2041
- "costTypeNameLabel": "Nome",
2042
- "costTypeNamePlaceholder": "ex.: Licença de software",
2043
- "costTypeCodeLabel": "Código",
2044
- "costTypeCodePlaceholder": "ex.: SW-001",
2045
- "amountCalculated": "Calculado automaticamente: quantidade × valor unitário"
2027
+ "notesPlaceholder": "Observações adicionais (opcional)"
2046
2028
  },
2047
2029
  "actions": {
2048
- "add": "Adicionar Custo",
2049
- "viewReport": "Ver Relatório"
2030
+ "add": "Adicionar Custo"
2050
2031
  },
2051
2032
  "sheet": {
2052
2033
  "createTitle": "Adicionar custo ao projeto",
@@ -270,6 +270,7 @@
270
270
  "breadcrumb": "Cadastro de Colaborador",
271
271
  "description": "Cadastre colaboradores com o perfil de contratação correto e gere um contrato rascunho a partir da origem de admissão quando necessário.",
272
272
  "noAccessDescription": "Permissões de diretor são necessárias para cadastrar ou editar colaboradores.",
273
+ "noDirectorAccess": "Permissões de diretor são necessárias para acessar esta seção.",
273
274
  "loading": "Carregando dados do colaborador...",
274
275
  "tabs": {
275
276
  "profile": "Cadastro",
@@ -281,7 +282,8 @@
281
282
  "defaultSchedule": "Horário Padrão",
282
283
  "projects": "Projetos",
283
284
  "tasks": "Tarefas",
284
- "timesheets": "Apontamentos"
285
+ "timesheets": "Apontamentos",
286
+ "salary": "Remuneração"
285
287
  },
286
288
  "sections": {
287
289
  "basicInfo": "Informações básicas",
@@ -339,7 +341,9 @@
339
341
  "createUserDescription": "Informe as credenciais do novo usuário do sistema. A conta será criada imediatamente e vinculada a este colaborador.",
340
342
  "createUserName": "Nome completo",
341
343
  "createUserEmail": "E-mail",
342
- "createUserPassword": "Senha"
344
+ "createUserPassword": "Senha",
345
+ "compensationEffectiveDate": "Data de vigência",
346
+ "compensationNotes": "Observações da remuneração"
343
347
  },
344
348
  "options": {
345
349
  "collaboratorTypes": {
@@ -385,7 +389,8 @@
385
389
  "userIdOptional": "Selecione um usuário do sistema",
386
390
  "createUserName": "Nome completo",
387
391
  "createUserEmail": "usuario@exemplo.com",
388
- "createUserPassword": "Senha forte"
392
+ "createUserPassword": "Senha forte",
393
+ "compensationNotes": "Observações sobre a alteração de remuneração"
389
394
  },
390
395
  "actions": {
391
396
  "createUser": "Criar usuário do sistema",
@@ -405,6 +410,12 @@
405
410
  "updateError": "Não foi possível atualizar o colaborador.",
406
411
  "createUserSuccess": "Usuário criado e vinculado com sucesso.",
407
412
  "createUserError": "Não foi possível criar o usuário do sistema."
413
+ },
414
+ "chart": {
415
+ "salaryHistory": "Histórico de salário",
416
+ "hourlyHistory": "Histórico de valor/hora",
417
+ "actual": "Realizado",
418
+ "projection": "Projeção"
408
419
  }
409
420
  },
410
421
  "CollaboratorTypesPage": {
@@ -252,6 +252,7 @@ export type OperationsCollaborator = {
252
252
  levelLabel?: string | null;
253
253
  weeklyCapacityHours?: number | null;
254
254
  compensationAmount?: number | null;
255
+ hourlyRate?: number | null;
255
256
  status: string;
256
257
  joinedAt?: string | null;
257
258
  leftAt?: string | null;