@hed-hog/operations 0.0.294 → 0.0.296

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 (126) hide show
  1. package/dist/operations.controller.d.ts +415 -0
  2. package/dist/operations.controller.d.ts.map +1 -0
  3. package/dist/operations.controller.js +333 -0
  4. package/dist/operations.controller.js.map +1 -0
  5. package/dist/operations.module.d.ts.map +1 -1
  6. package/dist/operations.module.js +4 -3
  7. package/dist/operations.module.js.map +1 -1
  8. package/dist/operations.service.d.ts +589 -153
  9. package/dist/operations.service.d.ts.map +1 -1
  10. package/dist/operations.service.js +2229 -100
  11. package/dist/operations.service.js.map +1 -1
  12. package/hedhog/data/menu.yaml +198 -251
  13. package/hedhog/data/role.yaml +23 -14
  14. package/hedhog/data/route.yaml +317 -143
  15. package/hedhog/frontend/app/_components/collaborator-details-screen.tsx.ejs +310 -0
  16. package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +631 -0
  17. package/hedhog/frontend/app/_components/contract-details-screen.tsx.ejs +132 -0
  18. package/hedhog/frontend/app/_components/contract-form-screen.tsx.ejs +558 -0
  19. package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +291 -0
  20. package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +689 -0
  21. package/hedhog/frontend/app/_lib/api.ts.ejs +32 -0
  22. package/hedhog/frontend/app/_lib/hooks/use-operations-access.ts.ejs +44 -0
  23. package/hedhog/frontend/app/_lib/types.ts.ejs +360 -0
  24. package/hedhog/frontend/app/_lib/utils/format.ts.ejs +129 -25
  25. package/hedhog/frontend/app/_lib/utils/forms.ts.ejs +14 -0
  26. package/hedhog/frontend/app/approvals/page.tsx.ejs +386 -147
  27. package/hedhog/frontend/app/collaborators/[id]/edit/page.tsx.ejs +11 -0
  28. package/hedhog/frontend/app/collaborators/[id]/page.tsx.ejs +11 -0
  29. package/hedhog/frontend/app/collaborators/new/page.tsx.ejs +5 -0
  30. package/hedhog/frontend/app/collaborators/page.tsx.ejs +261 -0
  31. package/hedhog/frontend/app/contracts/[id]/edit/page.tsx.ejs +11 -0
  32. package/hedhog/frontend/app/contracts/[id]/page.tsx.ejs +11 -108
  33. package/hedhog/frontend/app/contracts/new/page.tsx.ejs +17 -0
  34. package/hedhog/frontend/app/contracts/page.tsx.ejs +262 -181
  35. package/hedhog/frontend/app/page.tsx.ejs +319 -177
  36. package/hedhog/frontend/app/projects/[id]/edit/page.tsx.ejs +11 -0
  37. package/hedhog/frontend/app/projects/[id]/page.tsx.ejs +11 -936
  38. package/hedhog/frontend/app/projects/new/page.tsx.ejs +5 -0
  39. package/hedhog/frontend/app/projects/page.tsx.ejs +236 -1074
  40. package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +418 -0
  41. package/hedhog/frontend/app/team/page.tsx.ejs +339 -0
  42. package/hedhog/frontend/app/time-off/page.tsx.ejs +328 -0
  43. package/hedhog/frontend/app/timesheets/page.tsx.ejs +636 -126
  44. package/hedhog/frontend/messages/en.json +648 -454
  45. package/hedhog/frontend/messages/pt.json +647 -454
  46. package/hedhog/table/operations_approval.yaml +49 -0
  47. package/hedhog/table/operations_approval_history.yaml +29 -0
  48. package/hedhog/table/{operations_employee.yaml → operations_collaborator.yaml} +67 -64
  49. package/hedhog/table/operations_collaborator_schedule_day.yaml +34 -0
  50. package/hedhog/table/operations_contract.yaml +100 -48
  51. package/hedhog/table/operations_contract_document.yaml +39 -0
  52. package/hedhog/table/operations_contract_financial_term.yaml +40 -0
  53. package/hedhog/table/operations_contract_history.yaml +27 -0
  54. package/hedhog/table/operations_contract_party.yaml +46 -0
  55. package/hedhog/table/operations_contract_revision.yaml +38 -0
  56. package/hedhog/table/operations_contract_signature.yaml +38 -0
  57. package/hedhog/table/operations_project.yaml +54 -50
  58. package/hedhog/table/{operations_allocation.yaml → operations_project_assignment.yaml} +55 -52
  59. package/hedhog/table/operations_schedule_adjustment_day.yaml +34 -0
  60. package/hedhog/table/operations_schedule_adjustment_request.yaml +53 -0
  61. package/hedhog/table/operations_time_off_request.yaml +57 -0
  62. package/hedhog/table/operations_timesheet.yaml +41 -36
  63. package/hedhog/table/operations_timesheet_entry.yaml +40 -50
  64. package/package.json +7 -6
  65. package/src/operations.controller.ts +182 -0
  66. package/src/operations.module.ts +22 -21
  67. package/src/operations.service.ts +3595 -137
  68. package/hedhog/data/operations_career_level.yaml +0 -102
  69. package/hedhog/data/operations_career_track.yaml +0 -8
  70. package/hedhog/data/operations_certification.yaml +0 -38
  71. package/hedhog/data/operations_evaluation_cycle.yaml +0 -18
  72. package/hedhog/data/operations_performance_criterion.yaml +0 -48
  73. package/hedhog/frontend/app/_components/allocation-calendar.tsx.ejs +0 -56
  74. package/hedhog/frontend/app/_components/kanban-board.tsx.ejs +0 -626
  75. package/hedhog/frontend/app/_components/timesheet-entry-dialog.tsx.ejs +0 -142
  76. package/hedhog/frontend/app/_lib/hooks/use-operations-data.ts.ejs +0 -41
  77. package/hedhog/frontend/app/_lib/hooks/use-operations-growth-data.ts.ejs +0 -63
  78. package/hedhog/frontend/app/_lib/mocks/allocations.mock.ts.ejs +0 -74
  79. package/hedhog/frontend/app/_lib/mocks/contracts.mock.ts.ejs +0 -74
  80. package/hedhog/frontend/app/_lib/mocks/operations-growth.mock.ts.ejs +0 -824
  81. package/hedhog/frontend/app/_lib/mocks/projects.mock.ts.ejs +0 -455
  82. package/hedhog/frontend/app/_lib/mocks/tasks.mock.ts.ejs +0 -117
  83. package/hedhog/frontend/app/_lib/mocks/timesheets.mock.ts.ejs +0 -84
  84. package/hedhog/frontend/app/_lib/mocks/users.mock.ts.ejs +0 -67
  85. package/hedhog/frontend/app/_lib/services/contracts.service.ts.ejs +0 -10
  86. package/hedhog/frontend/app/_lib/services/operations-growth.service.ts.ejs +0 -31
  87. package/hedhog/frontend/app/_lib/services/projects.service.ts.ejs +0 -10
  88. package/hedhog/frontend/app/_lib/services/tasks.service.ts.ejs +0 -10
  89. package/hedhog/frontend/app/_lib/services/timesheets.service.ts.ejs +0 -10
  90. package/hedhog/frontend/app/_lib/types/operations-growth.ts.ejs +0 -209
  91. package/hedhog/frontend/app/_lib/types/operations.ts.ejs +0 -156
  92. package/hedhog/frontend/app/_lib/utils/growth.ts.ejs +0 -62
  93. package/hedhog/frontend/app/_lib/utils/metrics.ts.ejs +0 -103
  94. package/hedhog/frontend/app/_lib/utils/status.ts.ejs +0 -80
  95. package/hedhog/frontend/app/allocations/page.tsx.ejs +0 -155
  96. package/hedhog/frontend/app/career/page.tsx.ejs +0 -143
  97. package/hedhog/frontend/app/certifications/page.tsx.ejs +0 -202
  98. package/hedhog/frontend/app/evaluations/page.tsx.ejs +0 -278
  99. package/hedhog/frontend/app/goals/page.tsx.ejs +0 -171
  100. package/hedhog/frontend/app/growth/page.tsx.ejs +0 -288
  101. package/hedhog/frontend/app/manager/page.tsx.ejs +0 -175
  102. package/hedhog/frontend/app/rewards/page.tsx.ejs +0 -196
  103. package/hedhog/frontend/app/tasks/page.tsx.ejs +0 -999
  104. package/hedhog/table/operations_calibration_item.yaml +0 -61
  105. package/hedhog/table/operations_calibration_session.yaml +0 -25
  106. package/hedhog/table/operations_career_level.yaml +0 -75
  107. package/hedhog/table/operations_career_track.yaml +0 -21
  108. package/hedhog/table/operations_certification.yaml +0 -48
  109. package/hedhog/table/operations_employee_certification.yaml +0 -43
  110. package/hedhog/table/operations_employee_connect.yaml +0 -61
  111. package/hedhog/table/operations_employee_evaluation.yaml +0 -113
  112. package/hedhog/table/operations_employee_evaluation_item.yaml +0 -39
  113. package/hedhog/table/operations_employee_profile.yaml +0 -80
  114. package/hedhog/table/operations_employee_skill_matrix.yaml +0 -30
  115. package/hedhog/table/operations_evaluation_cycle.yaml +0 -31
  116. package/hedhog/table/operations_goal.yaml +0 -67
  117. package/hedhog/table/operations_goal_progress.yaml +0 -31
  118. package/hedhog/table/operations_performance_criterion.yaml +0 -29
  119. package/hedhog/table/operations_promotion_readiness.yaml +0 -49
  120. package/hedhog/table/operations_promotion_recommendation.yaml +0 -63
  121. package/hedhog/table/operations_public_recognition.yaml +0 -46
  122. package/hedhog/table/operations_reward.yaml +0 -100
  123. package/hedhog/table/operations_score_event.yaml +0 -81
  124. package/hedhog/table/operations_task.yaml +0 -60
  125. package/src/operations-data.controller.ts +0 -54
  126. package/src/operations-growth.controller.ts +0 -44
@@ -1,454 +1,647 @@
1
- {
2
- "DashboardPage": {
3
- "title": "Dashboard de Operacoes",
4
- "description": "Acompanhe saude da entrega, utilizacao, aprovacoes e throughput da equipe.",
5
- "breadcrumb": "Dashboard",
6
- "cards": {
7
- "activeProjects": "Projetos Ativos",
8
- "loggedHours": "Horas Lancadas no Mes",
9
- "pendingHours": "Horas Pendentes de Aprovacao",
10
- "revenue": "Receita",
11
- "utilization": "Utilizacao da Equipe"
12
- },
13
- "charts": {
14
- "hoursByProject": "Horas por Projeto",
15
- "hoursByProjectDescription": "Esforco lancado por engagement ativo.",
16
- "hoursByUser": "Horas por Usuario",
17
- "hoursByUserDescription": "Esforco de entrega por consultor.",
18
- "approvalStatus": "Status de Aprovacao",
19
- "approvalStatusDescription": "Entradas aprovadas, pendentes e rejeitadas.",
20
- "weeklyTrend": "Tendencia Semanal de Timesheets",
21
- "weeklyTrendDescription": "Cadencia recente de entrega."
22
- },
23
- "recentTable": {
24
- "title": "Entradas Recentes de Timesheet",
25
- "description": "Ultima atividade de apontamento operacional.",
26
- "user": "Usuario",
27
- "project": "Projeto",
28
- "task": "Tarefa",
29
- "hours": "Horas",
30
- "status": "Status"
31
- }
32
- },
33
- "ContractsPage": {
34
- "title": "Contratos",
35
- "description": "Revise acordos comerciais, limites e frentes de entrega vinculadas.",
36
- "breadcrumb": "Contratos",
37
- "tableTitle": "Cadastro de Contratos",
38
- "tableDescription": "Lista mock estatica pronta para paginacao e filtros futuros.",
39
- "searchPlaceholder": "Buscar contrato ou cliente...",
40
- "filters": {
41
- "all": "Todos os status",
42
- "active": "Ativo",
43
- "renewal": "Renovacao",
44
- "expired": "Expirado",
45
- "draft": "Rascunho"
46
- },
47
- "emptyState": {
48
- "title": "Nenhum contrato encontrado",
49
- "description": "Ajuste os filtros de busca para visualizar os contratos cadastrados.",
50
- "action": "Limpar filtros"
51
- },
52
- "columns": {
53
- "name": "Nome do Contrato",
54
- "client": "Cliente",
55
- "type": "Tipo",
56
- "startDate": "Data Inicial",
57
- "endDate": "Data Final",
58
- "hourRate": "Valor Hora",
59
- "hourLimit": "Limite de Horas",
60
- "status": "Status"
61
- }
62
- },
63
- "ProjectsPage": {
64
- "title": "Projetos",
65
- "description": "Navegue pela saude do portfolio, progresso e alocacao da equipe.",
66
- "breadcrumb": "Projetos",
67
- "searchPlaceholder": "Buscar projeto ou cliente...",
68
- "budget": "Orcamento",
69
- "dateRange": "Periodo",
70
- "view": {
71
- "table": "Modo tabela",
72
- "grid": "Modo grade"
73
- },
74
- "actions": {
75
- "create": "Novo Projeto",
76
- "edit": "Editar",
77
- "save": "Salvar Projeto"
78
- },
79
- "stats": {
80
- "totalProjects": "Total de Projetos",
81
- "activeProjects": "Projetos Ativos",
82
- "avgProgress": "Progresso Medio",
83
- "totalHours": "Total de Horas Lancadas"
84
- },
85
- "filters": {
86
- "statusAll": "Todos os status",
87
- "progressAll": "Qualquer progresso",
88
- "progress0To25": "0% a 25%",
89
- "progress26To50": "26% a 50%",
90
- "progress51To75": "51% a 75%",
91
- "progress76To100": "76% a 100%"
92
- },
93
- "statusOptions": {
94
- "planning": "Planejamento",
95
- "active": "Ativo",
96
- "atRisk": "Em Risco",
97
- "paused": "Pausado",
98
- "completed": "Concluido"
99
- },
100
- "columns": {
101
- "project": "Projeto",
102
- "client": "Cliente",
103
- "status": "Status",
104
- "progress": "Progresso",
105
- "team": "Equipe",
106
- "hours": "Horas",
107
- "dates": "Datas",
108
- "budget": "Orcamento",
109
- "actions": "Acoes"
110
- },
111
- "emptyState": {
112
- "title": "Nenhum projeto corresponde aos filtros atuais",
113
- "description": "Tente ampliar os criterios de busca para visualizar projetos.",
114
- "action": "Limpar filtros"
115
- },
116
- "sheet": {
117
- "createTitle": "Criar projeto",
118
- "createDescription": "Adicione um novo projeto ao portfolio de operacoes.",
119
- "editTitle": "Editar projeto",
120
- "editDescription": "Ajuste os detalhes do projeto e mantenha o planejamento atualizado."
121
- },
122
- "form": {
123
- "nameLabel": "Nome do projeto",
124
- "namePlaceholder": "Ex: Expansao do CRM Atlas",
125
- "clientLabel": "Cliente",
126
- "clientPlaceholder": "Ex: Atlas Logistics",
127
- "contractLabel": "Contrato",
128
- "contractPlaceholder": "Selecione um contrato vinculado",
129
- "statusLabel": "Status",
130
- "statusPlaceholder": "Selecione um status",
131
- "progressLabel": "Progresso (%)",
132
- "progressPlaceholder": "Ex: 45",
133
- "hoursLabel": "Horas lancadas",
134
- "hoursPlaceholder": "Ex: 120",
135
- "budgetLabel": "Orcamento",
136
- "budgetPlaceholder": "Ex: 98000",
137
- "startDateLabel": "Data inicial",
138
- "startDatePlaceholder": "Selecione a data inicial",
139
- "endDateLabel": "Data final",
140
- "endDatePlaceholder": "Selecione a data final",
141
- "invalidDateRange": "A data final deve ser posterior a data inicial.",
142
- "teamMembersLabel": "Membros da equipe",
143
- "teamMembersDescription": "Selecione pelo menos um colaborador para o projeto.",
144
- "descriptionLabel": "Descricao do projeto",
145
- "descriptionHint": "Descreva escopo, entregaveis e contexto operacional do projeto."
146
- },
147
- "toasts": {
148
- "created": "Projeto criado com sucesso.",
149
- "updated": "Projeto atualizado com sucesso."
150
- },
151
- "progress": "Progresso",
152
- "teamMembers": "Membros da Equipe",
153
- "hoursLogged": "Horas Lancadas",
154
- "startDate": "Data Inicial",
155
- "endDate": "Data Final"
156
- },
157
- "ProjectDetailsPage": {
158
- "notFound": "Projeto nao encontrado.",
159
- "breadcrumb": "Detalhes do Projeto",
160
- "description": "Visao detalhada do projeto para {client} com dados de execucao, equipe, financeiro e governanca.",
161
- "tabs": {
162
- "overview": "Visao Geral",
163
- "execution": "Execucao",
164
- "team": "Equipe",
165
- "finance": "Financeiro",
166
- "timesheets": "Timesheets",
167
- "governance": "Governanca"
168
- },
169
- "stats": {
170
- "progress": "Progresso",
171
- "actualCost": "Custo Real",
172
- "remainingBudget": "Saldo de Orcamento",
173
- "throughput": "Throughput"
174
- },
175
- "projectStatus": {
176
- "planning": "Planejamento",
177
- "active": "Ativo",
178
- "at-risk": "Em Risco",
179
- "paused": "Pausado",
180
- "completed": "Concluido"
181
- },
182
- "health": {
183
- "scope": "Escopo",
184
- "schedule": "Prazo",
185
- "budget": "Orcamento",
186
- "quality": "Qualidade"
187
- },
188
- "healthStatus": {
189
- "excellent": "Excelente",
190
- "stable": "Estavel",
191
- "attention": "Atencao",
192
- "critical": "Critico"
193
- },
194
- "riskSeverity": {
195
- "low": "Baixo",
196
- "medium": "Medio",
197
- "high": "Alto"
198
- },
199
- "riskStatus": {
200
- "open": "Aberto",
201
- "mitigated": "Mitigado",
202
- "accepted": "Aceito"
203
- },
204
- "milestoneStatus": {
205
- "done": "Concluido",
206
- "next": "Proximo",
207
- "delayed": "Atrasado"
208
- },
209
- "dependencyType": {
210
- "internal": "Interna",
211
- "client": "Cliente",
212
- "vendor": "Fornecedor"
213
- },
214
- "dependencyStatus": {
215
- "on-track": "No Prazo",
216
- "watch": "Monitorar",
217
- "blocked": "Bloqueada"
218
- },
219
- "approvals": {
220
- "approved": "Aprovado",
221
- "pending": "Pendente",
222
- "rejected": "Rejeitado"
223
- },
224
- "taskStatus": {
225
- "backlog": "Backlog",
226
- "todo": "A Fazer",
227
- "inProgress": "Em Progresso",
228
- "review": "Revisao",
229
- "done": "Concluido"
230
- },
231
- "hero": {
232
- "progress": "Progresso",
233
- "budget": "Orcamento",
234
- "hours": "Horas Lancadas",
235
- "scheduleVariance": "Variacao de Prazo"
236
- },
237
- "labels": {
238
- "health": "Saude",
239
- "risks": "Riscos",
240
- "period": "Periodo",
241
- "contract": "Contrato",
242
- "teamSize": "Equipe: {count} pessoas",
243
- "owner": "Responsavel",
244
- "impact": "Impacto",
245
- "mitigation": "Mitigacao",
246
- "type": "Tipo",
247
- "totalTasks": "Total de tarefas",
248
- "estimatedHours": "Horas estimadas"
249
- },
250
- "sections": {
251
- "progressTrend": "Tendencia de Progresso",
252
- "progressTrendDescription": "Comparativo entre progresso planejado e progresso real por mes.",
253
- "health": "Saude do Projeto",
254
- "healthDescription": "Leitura executiva por frentes criticas de entrega.",
255
- "milestones": "Marcos",
256
- "milestonesDescription": "Linha dos principais marcos e entregas.",
257
- "risks": "Riscos e Mitigacoes",
258
- "risksDescription": "Riscos ativos, impacto e plano de resposta.",
259
- "taskDistribution": "Distribuicao de Tarefas",
260
- "taskDistributionDescription": "Volume de tarefas por status no fluxo de execucao.",
261
- "kanban": "Kanban",
262
- "kanbanDescription": "Visual do fluxo atual de trabalho da equipe.",
263
- "taskTable": "Backlog Detalhado",
264
- "taskTableDescription": "Tarefas, responsaveis, prazo e estimativa.",
265
- "teamAllocation": "Alocacao da Equipe",
266
- "teamAllocationDescription": "Capacidade e ocupacao por pessoa.",
267
- "teamCost": "Composicao de Custo da Equipe",
268
- "teamCostDescription": "Distribuicao do valor/hora por membro alocado.",
269
- "budgetStatus": "Status de Orcamento",
270
- "budgetStatusDescription": "Visao consolidada de consumo financeiro atual.",
271
- "costForecast": "Forecast de Custos",
272
- "costForecastDescription": "Comparativo de custo planejado versus realizado.",
273
- "approvalsDistribution": "Distribuicao de Aprovacoes",
274
- "approvalsDistributionDescription": "Panorama dos status de aprovacao de horas.",
275
- "timesheets": "Lancamentos de Horas",
276
- "timesheetsDescription": "Detalhamento das entradas de timesheet do projeto.",
277
- "governance": "Governanca e Contrato",
278
- "governanceDescription": "Informacoes contratuais e regras operacionais.",
279
- "dependencies": "Dependencias",
280
- "dependenciesDescription": "Dependencias internas e externas do plano.",
281
- "decisions": "Decisoes",
282
- "decisionsDescription": "Registro de decisoes de governanca.",
283
- "nextActions": "Proximos Passos",
284
- "nextActionsDescription": "Acoes imediatas para manter a saude da entrega."
285
- },
286
- "table": {
287
- "task": "Tarefa",
288
- "assignee": "Responsavel",
289
- "dueDate": "Prazo",
290
- "estimate": "Estimativa",
291
- "status": "Status",
292
- "member": "Membro",
293
- "role": "Funcao",
294
- "hourRate": "Valor Hora",
295
- "utilization": "Utilizacao",
296
- "date": "Data",
297
- "user": "Usuario",
298
- "hours": "Horas",
299
- "description": "Descricao"
300
- },
301
- "finance": {
302
- "totalBudget": "Orcamento Total",
303
- "actualCost": "Custo Real",
304
- "remainingBudget": "Saldo de Orcamento",
305
- "budgetConsumption": "Consumo de Orcamento"
306
- },
307
- "charts": {
308
- "plannedProgress": "Progresso Planejado",
309
- "actualProgress": "Progresso Real",
310
- "plannedCost": "Custo Planejado",
311
- "actualCost": "Custo Real"
312
- },
313
- "governance": {
314
- "client": "Cliente",
315
- "contract": "Contrato",
316
- "sla": "SLA",
317
- "billingRules": "Regras de Faturamento"
318
- }
319
- },
320
- "AllocationsPage": {
321
- "title": "Alocacoes",
322
- "description": "Acompanhe capacidade semanal, cobertura de staffing e janelas de alocacao.",
323
- "breadcrumb": "Alocacoes",
324
- "tableTitle": "Matriz de Alocacao",
325
- "tableDescription": "Fotografia das alocacoes por usuario e projeto.",
326
- "searchPlaceholder": "Buscar usuario ou projeto...",
327
- "emptyState": {
328
- "title": "Nenhuma alocacao encontrada",
329
- "description": "Tente outra busca para visualizar as alocacoes da equipe.",
330
- "action": "Limpar busca"
331
- },
332
- "columns": {
333
- "user": "Usuario",
334
- "role": "Funcao",
335
- "project": "Projeto",
336
- "weeklyHours": "Horas Semanais",
337
- "allocation": "Alocacao %",
338
- "startDate": "Data Inicial",
339
- "endDate": "Data Final"
340
- },
341
- "calendarTitle": "Calendario de Alocacao",
342
- "calendarDescription": "Planejador semanal mock para futuras APIs de scheduling."
343
- },
344
- "TasksPage": {
345
- "title": "Tarefas / Kanban",
346
- "description": "Quadro inspirado no Trello com drag-and-drop, atalhos de teclado e dados mock.",
347
- "breadcrumb": "Tarefas",
348
- "boardTitle": "Quadro Kanban",
349
- "boardDescription": "Itens operacionais agrupados por etapa de entrega.",
350
- "searchPlaceholder": "Buscar titulo, projeto, label ou descricao...",
351
- "newTask": "Nova tarefa",
352
- "openCommands": "Comandos",
353
- "applyFilters": "Buscar",
354
- "clearFilters": "Limpar",
355
- "archiveSelection": "Arquivar selecionadas",
356
- "openFocused": "Abrir focada",
357
- "selectedCount": "{count} selecionadas",
358
- "newTaskTitle": "Nova tarefa de planejamento",
359
- "newTaskDescription": "Tarefa criada via atalho de teclado no modo mock.",
360
- "filters": {
361
- "assignee": "Responsavel",
362
- "allAssignees": "Todos os responsaveis",
363
- "unassigned": "Nao atribuida",
364
- "project": "Projeto",
365
- "allProjects": "Todos os projetos"
366
- },
367
- "stats": {
368
- "totalTasks": "Total ativas",
369
- "inProgress": "Em andamento",
370
- "review": "Em revisao",
371
- "done": "Concluidas",
372
- "critical": "Alta prioridade"
373
- },
374
- "keyboardMode": {
375
- "enabled": "Drag por teclado ativado",
376
- "disabled": "Drag por teclado desativado"
377
- },
378
- "shortcuts": {
379
- "create": "Criar tarefa",
380
- "focusSearch": "Focar busca",
381
- "toggleKeyboardDrag": "Alternar drag por teclado",
382
- "openTask": "Abrir tarefa focada",
383
- "archive": "Arquivar selecao",
384
- "navigate": "Navegar entre cards"
385
- },
386
- "commands": {
387
- "title": "Comandos de Tarefas",
388
- "description": "Execute acoes rapidas sem sair do board.",
389
- "placeholder": "Digite um comando ou acao...",
390
- "empty": "Nenhum comando encontrado.",
391
- "actions": "Acoes",
392
- "newTask": "Criar nova tarefa mock",
393
- "enableKeyboardDrag": "Ativar modo de drag por teclado",
394
- "disableKeyboardDrag": "Desativar modo de drag por teclado",
395
- "archiveSelected": "Arquivar cards selecionados",
396
- "openFocused": "Abrir detalhes da tarefa focada"
397
- },
398
- "empty": {
399
- "title": "Nenhuma tarefa visivel",
400
- "description": "Os filtros atuais removeram todos os cards do board. Limpe os filtros ou crie uma nova tarefa."
401
- },
402
- "detail": {
403
- "descriptionLabel": "Descricao",
404
- "priority": "Prioridade",
405
- "estimate": "Estimativa",
406
- "labels": "Labels",
407
- "quickActions": "Acoes rapidas de status"
408
- }
409
- },
410
- "TimesheetsPage": {
411
- "title": "Timesheets",
412
- "description": "Gerencie lancamentos semanais, resumos e aprovacoes em fluxo mock.",
413
- "breadcrumb": "Timesheets",
414
- "summary": {
415
- "totalHours": "Total de Horas",
416
- "dailyTotals": "Totais Diarios",
417
- "weeklyTotal": "Total Semanal"
418
- },
419
- "gridTitle": "Grade Semanal de Timesheets",
420
- "gridDescription": "Entradas sao estaticas por enquanto, mas usam camada de servico substituivel.",
421
- "searchPlaceholder": "Buscar usuario, projeto, tarefa ou descricao...",
422
- "columns": {
423
- "date": "Data",
424
- "user": "Usuario",
425
- "project": "Projeto",
426
- "task": "Tarefa",
427
- "hours": "Horas",
428
- "description": "Descricao",
429
- "status": "Status"
430
- }
431
- },
432
- "ApprovalsPage": {
433
- "title": "Aprovacoes",
434
- "description": "Fila gerencial para revisao e decisao sobre timesheets.",
435
- "breadcrumb": "Aprovacoes",
436
- "cards": {
437
- "pending": "Pendentes",
438
- "approved": "Aprovadas",
439
- "rejected": "Rejeitadas"
440
- },
441
- "queueTitle": "Fila de Aprovacao",
442
- "queueDescription": "Acoes mock alteram apenas o estado local da interface.",
443
- "searchPlaceholder": "Buscar usuario, projeto ou descricao...",
444
- "columns": {
445
- "user": "Usuario",
446
- "project": "Projeto",
447
- "date": "Data",
448
- "hours": "Horas",
449
- "description": "Descricao",
450
- "status": "Status",
451
- "actions": "Acoes"
452
- }
453
- }
454
- }
1
+ {
2
+ "Common": {
3
+ "actions": {
4
+ "refresh": "Atualizar",
5
+ "create": "Criar",
6
+ "back": "Voltar",
7
+ "edit": "Editar",
8
+ "openContract": "Abrir contrato",
9
+ "activate": "Ativar",
10
+ "deactivate": "Desativar",
11
+ "save": "Salvar",
12
+ "addLine": "Adicionar linha",
13
+ "approve": "Aprovar",
14
+ "reject": "Rejeitar",
15
+ "cancel": "Cancelar"
16
+ },
17
+ "filters": {
18
+ "allStatuses": "Todos os status",
19
+ "allTypes": "Todos os tipos"
20
+ },
21
+ "labels": {
22
+ "notAvailable": "Nao informado",
23
+ "notAssigned": "Nao atribuido",
24
+ "collaborator": "Colaborador",
25
+ "collaboratorType": "Tipo",
26
+ "department": "Departamento",
27
+ "supervisor": "Supervisor",
28
+ "weeklyCapacity": "Capacidade semanal",
29
+ "joinedAt": "Entrada",
30
+ "leftAt": "Saida",
31
+ "actions": "Acoes",
32
+ "status": "Status",
33
+ "project": "Projeto",
34
+ "contract": "Contrato",
35
+ "contractStatus": "Status do contrato",
36
+ "contractCategory": "Categoria do contrato",
37
+ "manager": "Gestor",
38
+ "progress": "Progresso",
39
+ "timeline": "Periodo",
40
+ "budget": "Orcamento",
41
+ "teamSize": "Tamanho da equipe",
42
+ "client": "Cliente",
43
+ "billingModel": "Modelo de faturamento",
44
+ "accountManager": "Responsavel pela conta",
45
+ "projectCount": "Qtd. de projetos",
46
+ "entries": "Lancamentos",
47
+ "totalHours": "Total de horas",
48
+ "approver": "Aprovador",
49
+ "noNotes": "Sem observacoes",
50
+ "lines": "linhas",
51
+ "unassigned": "Sem vinculacao",
52
+ "viewOnly": "Somente leitura",
53
+ "week": "Semana",
54
+ "weekStart": "Inicio da semana",
55
+ "weekEnd": "Fim da semana",
56
+ "notes": "Observacoes",
57
+ "projectAssignment": "Alocacao do projeto",
58
+ "activity": "Tarefa / atividade",
59
+ "description": "Descricao",
60
+ "workDate": "Data trabalhada",
61
+ "hours": "Horas",
62
+ "days": "Dias",
63
+ "reason": "Motivo",
64
+ "requestType": "Tipo de solicitacao",
65
+ "requestScope": "Escopo da solicitacao",
66
+ "schedule": "Horario",
67
+ "weeklySchedule": "Horario semanal",
68
+ "workingDay": "Dia util",
69
+ "dayOff": "Folga",
70
+ "requester": "Solicitante",
71
+ "submittedAt": "Enviado em",
72
+ "noteOptional": "Observacao opcional",
73
+ "activeAssignments": "Alocacoes ativas",
74
+ "pendingApprovals": "Aprovacoes pendentes",
75
+ "startDate": "Data inicial",
76
+ "endDate": "Data final",
77
+ "monthlyHourCap": "Limite mensal de horas",
78
+ "title": "Cargo",
79
+ "role": "Papel",
80
+ "total": "Total",
81
+ "pending": "Pendentes",
82
+ "approved": "Aprovadas"
83
+ },
84
+ "states": {
85
+ "emptyTitle": "Nenhum registro encontrado",
86
+ "emptyDescription": "Ajuste os filtros atuais ou crie um novo registro.",
87
+ "noAccessTitle": "Acesso necessario"
88
+ }
89
+ },
90
+ "DashboardPage": {
91
+ "title": "Dashboard de Operacoes",
92
+ "description": "Monitore entrega, solicitacoes e aprovacoes da equipe em um unico lugar.",
93
+ "breadcrumb": "Dashboard",
94
+ "cards": {
95
+ "projects": "Projetos visiveis",
96
+ "projectsDescription": "{active} ativos no momento",
97
+ "timesheets": "Timesheets visiveis",
98
+ "timesheetsDescription": "{pending} aguardando aprovacao",
99
+ "timeOff": "Solicitacoes de ausencia",
100
+ "timeOffDescription": "Solicitacoes aprovadas, pendentes e rejeitadas",
101
+ "approvals": "Aprovacoes pendentes",
102
+ "approvalsDescription": "Itens que ainda dependem de decisao do supervisor"
103
+ },
104
+ "actions": {
105
+ "openTimesheets": "Abrir timesheets"
106
+ },
107
+ "scope": {
108
+ "title": "Escopo de acesso",
109
+ "description": "O dashboard respeita automaticamente a visao de colaborador, supervisor ou diretor.",
110
+ "roleScope": "Escopo",
111
+ "collaborator": "Colaborador vinculado",
112
+ "teamSize": "Liderados diretos"
113
+ },
114
+ "recentTimesheets": {
115
+ "title": "Timesheets recentes",
116
+ "description": "Ultimos registros semanais visiveis para o seu papel.",
117
+ "empty": "Ainda nao existem timesheets disponiveis."
118
+ },
119
+ "nextSteps": {
120
+ "title": "Proximas acoes",
121
+ "description": "Acoes operacionais mais comuns disponiveis neste modulo.",
122
+ "submitTimesheet": "Criar ou enviar sua timesheet semanal para revisao.",
123
+ "requestTimeOff": "Abrir uma nova solicitacao de ferias ou ausencia.",
124
+ "adjustSchedule": "Enviar um ajuste de horario semanal para aprovacao."
125
+ },
126
+ "team": {
127
+ "title": "Resumo da equipe",
128
+ "description": "Visibilidade de liderados diretos para supervisores e diretores.",
129
+ "members": "Membros da equipe",
130
+ "projects": "Projetos visiveis",
131
+ "pendingApprovals": "Aprovacoes pendentes",
132
+ "assignments": "alocacoes",
133
+ "awaitingReview": "aguardando revisao",
134
+ "empty": "Ainda nao existem liderados diretos vinculados a este supervisor.",
135
+ "collaboratorMessage": "Os papeis de supervisor e diretor liberam a visao operacional da equipe."
136
+ }
137
+ },
138
+ "CollaboratorsPage": {
139
+ "title": "Colaboradores",
140
+ "description": "Mantenha perfis operacionais, linhas de reporte e capacidade da equipe.",
141
+ "breadcrumb": "Colaboradores",
142
+ "searchPlaceholder": "Buscar colaborador, codigo, departamento ou cargo...",
143
+ "profileTitle": "Meu perfil operacional",
144
+ "profileDescription": "Visao de autoatendimento do perfil operacional vinculado ao seu usuario.",
145
+ "emptyDescription": "Nenhum colaborador corresponde aos filtros atuais.",
146
+ "sheet": {
147
+ "createTitle": "Criar colaborador",
148
+ "editTitle": "Editar colaborador",
149
+ "description": "Crie ou atualize o perfil de workforce usado em projetos, contratos e aprovacoes."
150
+ },
151
+ "form": {
152
+ "userId": "ID do usuario",
153
+ "code": "Codigo",
154
+ "displayName": "Nome exibido",
155
+ "department": "Departamento",
156
+ "title": "Cargo",
157
+ "levelLabel": "Nivel",
158
+ "weeklyCapacityHours": "Horas semanais",
159
+ "notes": "Observacoes"
160
+ },
161
+ "messages": {
162
+ "userRequired": "Um ID de usuario e obrigatorio para novos colaboradores.",
163
+ "requiredFields": "Codigo e nome exibido sao obrigatorios.",
164
+ "saveSuccess": "Colaborador salvo com sucesso.",
165
+ "saveError": "Nao foi possivel salvar o colaborador.",
166
+ "statusSuccess": "Status do colaborador atualizado com sucesso.",
167
+ "statusError": "Nao foi possivel atualizar o status do colaborador."
168
+ }
169
+ },
170
+ "CollaboratorFormPage": {
171
+ "newTitle": "Novo Colaborador",
172
+ "editTitle": "Editar Colaborador",
173
+ "breadcrumb": "Cadastro de Colaborador",
174
+ "description": "Cadastre colaboradores com o perfil de contratacao correto e gere um contrato rascunho a partir da origem de admissao quando necessario.",
175
+ "noAccessDescription": "Permissoes de diretor sao necessarias para cadastrar ou editar colaboradores.",
176
+ "loading": "Carregando dados do colaborador...",
177
+ "sections": {
178
+ "basicInfo": "Informacoes basicas",
179
+ "basicInfoDescription": "Dados principais de identificacao usados em toda a operacao.",
180
+ "employmentInfo": "Informacoes de contratacao",
181
+ "employmentInfoDescription": "Defina o tipo do colaborador, o status do ciclo e as datas principais.",
182
+ "supervisor": "Vinculo de supervisor",
183
+ "supervisorDescription": "Associe o supervisor direto usado para visao de equipe e aprovacoes.",
184
+ "contract": "Remuneracao e contrato rascunho",
185
+ "contractDescription": "Informe os dados contratuais basicos e escolha se o sistema deve gerar automaticamente um contrato relacionado a partir da contratacao.",
186
+ "schedule": "Horario semanal padrao",
187
+ "scheduleDescription": "Defina o horario recorrente esperado para uso operacional e nos fluxos de aprovacao."
188
+ },
189
+ "fields": {
190
+ "userId": "ID do usuario",
191
+ "code": "Codigo",
192
+ "displayName": "Nome exibido",
193
+ "department": "Departamento",
194
+ "title": "Cargo / funcao",
195
+ "levelLabel": "Nivel",
196
+ "notes": "Observacoes",
197
+ "collaboratorType": "Tipo de colaborador",
198
+ "weeklyCapacityHours": "Carga horaria semanal",
199
+ "compensationAmount": "Valor da remuneracao",
200
+ "contractDescription": "Observacoes do contrato rascunho",
201
+ "autoGenerateContractDraft": "Gerar contrato rascunho automaticamente",
202
+ "autoGenerateContractDraftDescription": "Cria um contrato rascunho relacionado, classificado pelo tipo de colaborador e vinculado a origem de contratacao."
203
+ },
204
+ "messages": {
205
+ "userRequired": "Um ID de usuario e obrigatorio para novos colaboradores.",
206
+ "requiredFields": "Codigo e nome exibido sao obrigatorios.",
207
+ "createSuccess": "Colaborador criado com sucesso.",
208
+ "createError": "Nao foi possivel criar o colaborador.",
209
+ "updateSuccess": "Colaborador atualizado com sucesso.",
210
+ "updateError": "Nao foi possivel atualizar o colaborador."
211
+ }
212
+ },
213
+ "CollaboratorDetailsPage": {
214
+ "title": "Detalhes do Colaborador",
215
+ "breadcrumb": "Detalhes do Colaborador",
216
+ "description": "Consulte informacoes operacionais do colaborador, contratos relacionados, alocacoes, horario e resumos de solicitacoes.",
217
+ "notFound": "O colaborador solicitado nao foi encontrado ou nao esta visivel no seu escopo de acesso.",
218
+ "cards": {
219
+ "timesheets": "Timesheets",
220
+ "timesheetsDescription": "{pending} pendentes de revisao",
221
+ "loggedHours": "Horas lancadas",
222
+ "loggedHoursDescription": "Total de horas registradas ate o momento.",
223
+ "timeOff": "Solicitacoes de ausencia",
224
+ "timeOffDescription": "{pending} solicitacao(oes) pendente(s)",
225
+ "assignments": "Alocacoes em projetos",
226
+ "assignmentsDescription": "Vinculos ativos e historicos em projetos."
227
+ },
228
+ "sections": {
229
+ "profile": "Perfil",
230
+ "primaryContract": "Contratos relacionados",
231
+ "projects": "Projetos vinculados",
232
+ "projectsDescription": "Projetos atualmente ou anteriormente ligados a este colaborador.",
233
+ "schedule": "Horario semanal",
234
+ "scheduleDescription": "Horario padrao atualmente registrado para este colaborador.",
235
+ "timeOff": "Resumo de ausencias",
236
+ "timeOffDescription": "Contagem de solicitacoes visiveis no historico do colaborador.",
237
+ "scheduleAdjustments": "Ajustes de horario",
238
+ "scheduleAdjustmentsDescription": "Solicitacoes recentes de ajuste de horario criadas por este colaborador."
239
+ },
240
+ "noContracts": "Ainda nao existem contratos relacionados a este colaborador.",
241
+ "noProjects": "Ainda nao existem projetos vinculados a este colaborador.",
242
+ "noScheduleAdjustments": "Nenhuma solicitacao de ajuste de horario foi encontrada."
243
+ },
244
+ "ProjectsPage": {
245
+ "title": "Projetos",
246
+ "description": "Acompanhe projetos de clientes e servicos conectados a alocacao, entrega e contratos.",
247
+ "breadcrumb": "Projetos",
248
+ "searchPlaceholder": "Buscar projeto, cliente, gestor ou contrato...",
249
+ "emptyDescription": "Nenhum projeto corresponde aos filtros atuais.",
250
+ "actions": {
251
+ "archive": "Arquivar"
252
+ },
253
+ "sheet": {
254
+ "createTitle": "Criar projeto",
255
+ "editTitle": "Editar projeto",
256
+ "description": "Crie ou atualize um projeto de entrega usado por timesheets e pela visibilidade da equipe."
257
+ },
258
+ "form": {
259
+ "code": "Codigo",
260
+ "name": "Nome do projeto",
261
+ "clientName": "Nome do cliente",
262
+ "deliveryModel": "Modelo de entrega",
263
+ "summary": "Resumo"
264
+ },
265
+ "messages": {
266
+ "requiredFields": "Codigo e nome do projeto sao obrigatorios.",
267
+ "saveSuccess": "Projeto salvo com sucesso.",
268
+ "saveError": "Nao foi possivel salvar o projeto.",
269
+ "statusSuccess": "Status do projeto atualizado com sucesso.",
270
+ "statusError": "Nao foi possivel atualizar o status do projeto."
271
+ }
272
+ },
273
+ "ProjectFormPage": {
274
+ "newTitle": "Novo Projeto",
275
+ "editTitle": "Editar Projeto",
276
+ "breadcrumb": "Cadastro de Projeto",
277
+ "description": "Cadastre projetos de clientes ou servicos e gere opcionalmente um contrato rascunho relacionado a partir do fluxo do projeto.",
278
+ "noAccessDescription": "Permissoes de diretor sao necessarias para gerenciar projetos.",
279
+ "loading": "Carregando dados do projeto...",
280
+ "sections": {
281
+ "basicInfo": "Informacoes basicas do projeto",
282
+ "basicInfoDescription": "Defina o engajamento com o cliente e o resumo operacional.",
283
+ "governance": "Responsavel e datas",
284
+ "governanceDescription": "Defina o responsavel, o status do ciclo e o periodo do projeto.",
285
+ "team": "Alocacao inicial da equipe",
286
+ "teamDescription": "Selecione os colaboradores que devem iniciar vinculados ao projeto.",
287
+ "financials": "Base financeira e contratual",
288
+ "financialsDescription": "Dados base usados em controles operacionais e na geracao do contrato rascunho.",
289
+ "contract": "Configuracoes do contrato",
290
+ "contractDescription": "Escolha entre reutilizar um contrato existente ou gerar um contrato rascunho com origem no projeto."
291
+ },
292
+ "fields": {
293
+ "code": "Codigo do projeto",
294
+ "name": "Nome do projeto",
295
+ "clientName": "Nome do cliente",
296
+ "deliveryModel": "Modelo de entrega",
297
+ "summary": "Resumo operacional",
298
+ "roleLabel": "Papel / responsabilidade",
299
+ "weeklyHours": "Horas semanais",
300
+ "allocationPercent": "Alocacao %",
301
+ "contractCode": "Codigo do contrato rascunho",
302
+ "contractName": "Nome do contrato rascunho",
303
+ "contractDescription": "Observacoes do contrato rascunho",
304
+ "autoGenerateContractDraft": "Gerar contrato rascunho automaticamente",
305
+ "autoGenerateContractDraftDescription": "Cria um contrato rascunho de cliente/servico com originType client_project vinculado a este projeto.",
306
+ "existingContractSelected": "Ja existe um contrato selecionado para este projeto."
307
+ },
308
+ "messages": {
309
+ "requiredFields": "Codigo, nome do projeto e nome do cliente sao obrigatorios.",
310
+ "createSuccess": "Projeto criado com sucesso.",
311
+ "createError": "Nao foi possivel criar o projeto.",
312
+ "updateSuccess": "Projeto atualizado com sucesso.",
313
+ "updateError": "Nao foi possivel atualizar o projeto.",
314
+ "currentContractStatus": "Status atual do contrato relacionado: {status}"
315
+ }
316
+ },
317
+ "ProjectDetailsPage": {
318
+ "title": "Detalhes do Projeto",
319
+ "breadcrumb": "Detalhes do Projeto",
320
+ "description": "Consulte dados de entrega, equipe, contrato relacionado, atividade de timesheets e indicadores operacionais do projeto.",
321
+ "notFound": "O projeto solicitado nao foi encontrado ou nao esta visivel no seu escopo de acesso.",
322
+ "cards": {
323
+ "teamSize": "Tamanho da equipe",
324
+ "teamSizeDescription": "Colaboradores atualmente vinculados a este projeto.",
325
+ "timesheets": "Timesheets",
326
+ "timesheetsDescription": "{pending} pendentes de revisao",
327
+ "loggedHours": "Horas lancadas",
328
+ "loggedHoursDescription": "Total de horas vinculadas a este projeto.",
329
+ "allocation": "Alocacao media",
330
+ "allocationDescription": "Media de alocacao das atribuicoes do projeto."
331
+ },
332
+ "sections": {
333
+ "overview": "Visao geral",
334
+ "contract": "Contrato relacionado",
335
+ "team": "Colaboradores vinculados",
336
+ "teamDescription": "Equipe inicial e alocacoes em andamento associadas ao projeto.",
337
+ "indicators": "Indicadores operacionais",
338
+ "indicatorsDescription": "Metricas atuais de equipe e entrega do projeto."
339
+ },
340
+ "indicators": {
341
+ "activeAssignments": "Atribuicoes ativas",
342
+ "billableAssignments": "Atribuicoes faturaveis",
343
+ "averageAllocation": "Alocacao media",
344
+ "totalWeeklyHours": "Total de horas semanais"
345
+ },
346
+ "noContract": "Ainda nao existe contrato relacionado a este projeto.",
347
+ "noAssignments": "Ainda nao existem colaboradores vinculados a este projeto."
348
+ },
349
+ "ContractsPage": {
350
+ "title": "Contratos",
351
+ "description": "Registro central de contratos manuais e com origem de negocio, com ciclo de vida, documentos e visao financeira.",
352
+ "breadcrumb": "Contratos",
353
+ "searchPlaceholder": "Buscar contrato, parte relacionada, cliente, tipo ou codigo...",
354
+ "emptyDescription": "Nenhum contrato corresponde aos filtros atuais.",
355
+ "columns": {
356
+ "title": "Titulo",
357
+ "code": "Codigo",
358
+ "type": "Tipo",
359
+ "origin": "Origem",
360
+ "party": "Parte principal",
361
+ "signatureStatus": "Status da assinatura",
362
+ "active": "Ativo",
363
+ "financials": "Resumo financeiro"
364
+ },
365
+ "actions": {
366
+ "duplicate": "Duplicar",
367
+ "archive": "Arquivar"
368
+ },
369
+ "filters": {
370
+ "originType": "Tipo de origem"
371
+ },
372
+ "messages": {
373
+ "statusSuccess": "Status do contrato atualizado com sucesso.",
374
+ "statusError": "Nao foi possivel atualizar o status do contrato.",
375
+ "uploadSuccess": "PDF do contrato enviado com sucesso.",
376
+ "uploadError": "Nao foi possivel enviar o PDF do contrato.",
377
+ "noPdf": "Nenhum PDF esta disponivel para este contrato."
378
+ }
379
+ },
380
+ "ContractFormPage": {
381
+ "newTitle": "Novo Contrato",
382
+ "editTitle": "Editar Contrato",
383
+ "duplicateTitle": "Duplicar Contrato",
384
+ "breadcrumb": "Cadastro de Contrato",
385
+ "description": "Crie ou atualize contratos manualmente gerenciando partes, assinaturas, financeiros, revisoes, documentos e conteudo editavel.",
386
+ "noAccessDescription": "Permissoes de diretor sao necessarias para gerenciar contratos.",
387
+ "loading": "Carregando dados do contrato...",
388
+ "tabs": {
389
+ "overview": "Visao geral",
390
+ "parties": "Partes",
391
+ "signatures": "Assinaturas",
392
+ "financials": "Financeiro",
393
+ "documents": "Documentos",
394
+ "revisions": "Revisoes",
395
+ "editor": "Editor"
396
+ },
397
+ "sections": {
398
+ "overview": "Visao geral",
399
+ "overviewDescription": "Campos centrais de registro, ciclo de vida, origem e ownership.",
400
+ "parties": "Partes",
401
+ "partiesDescription": "Pessoas e empresas principais relacionadas ao contrato.",
402
+ "signatures": "Assinaturas",
403
+ "signaturesDescription": "Signatarios e andamento das assinaturas.",
404
+ "financials": "Termos financeiros",
405
+ "financialsDescription": "Controle de valores, receitas, pagamentos e multas.",
406
+ "documents": "Documentos",
407
+ "documentsDescription": "Envie ou substitua o PDF atual do contrato.",
408
+ "revisions": "Aditivos / renovacoes",
409
+ "revisionsDescription": "Acompanhe aditivos, emendas e renovacoes.",
410
+ "editor": "Editor do contrato",
411
+ "editorDescription": "Edite o conteudo do contrato em rich text.",
412
+ "preview": "Previa",
413
+ "previewDescription": "Previa em tempo real do conteudo do contrato."
414
+ },
415
+ "fields": {
416
+ "code": "Codigo",
417
+ "name": "Titulo do contrato",
418
+ "clientName": "Nome do cliente",
419
+ "contractCategory": "Categoria",
420
+ "contractType": "Tipo",
421
+ "originType": "Tipo de origem",
422
+ "originId": "ID de origem",
423
+ "signatureStatus": "Status da assinatura",
424
+ "isActive": "Contrato ativo",
425
+ "isActiveDescription": "Use isso para desativar ou reativar o contrato sem remover seu registro.",
426
+ "budgetAmount": "Valor de orcamento",
427
+ "monthlyHourCap": "Limite mensal de horas",
428
+ "partyDisplayName": "Nome da parte",
429
+ "partyRole": "Papel da parte",
430
+ "partyType": "Tipo da parte",
431
+ "documentNumber": "Numero do documento",
432
+ "email": "Email",
433
+ "phone": "Telefone",
434
+ "isPrimaryParty": "Parte principal",
435
+ "signerName": "Nome do signatario",
436
+ "signerRole": "Papel do signatario",
437
+ "signerEmail": "Email do signatario",
438
+ "signatureItemStatus": "Status da assinatura",
439
+ "financialLabel": "Rotulo financeiro",
440
+ "termType": "Tipo financeiro",
441
+ "amount": "Valor",
442
+ "recurrence": "Recorrencia",
443
+ "dueDay": "Dia de vencimento",
444
+ "notes": "Observacoes",
445
+ "revisionTitle": "Titulo da revisao",
446
+ "revisionType": "Tipo de revisao",
447
+ "revisionStatus": "Status da revisao",
448
+ "summary": "Resumo"
449
+ },
450
+ "messages": {
451
+ "requiredFields": "Codigo, titulo do contrato e nome do cliente sao obrigatorios.",
452
+ "createSuccess": "Contrato criado com sucesso.",
453
+ "createError": "Nao foi possivel criar o contrato.",
454
+ "updateSuccess": "Contrato atualizado com sucesso.",
455
+ "updateError": "Nao foi possivel atualizar o contrato.",
456
+ "pdfHint": "Envie um PDF para anexar como documento atual do contrato.",
457
+ "pdfReady": "PDF pronto para salvar: {name}"
458
+ }
459
+ },
460
+ "ContractDetailsPage": {
461
+ "title": "Detalhes do Contrato",
462
+ "breadcrumb": "Detalhes do Contrato",
463
+ "description": "Consulte o registro do contrato, partes relacionadas, assinaturas, financeiro, documentos, revisoes e historico.",
464
+ "notFound": "O contrato solicitado nao foi encontrado ou nao esta visivel no seu escopo de acesso.",
465
+ "tabs": {
466
+ "overview": "Visao geral",
467
+ "parties": "Partes",
468
+ "signatures": "Assinaturas",
469
+ "financials": "Financeiro",
470
+ "documents": "Documentos",
471
+ "revisions": "Revisoes",
472
+ "history": "Historico"
473
+ },
474
+ "sections": {
475
+ "overview": "Visao geral",
476
+ "parties": "Partes",
477
+ "signatures": "Assinaturas",
478
+ "financials": "Financeiro",
479
+ "documents": "Documentos",
480
+ "revisions": "Aditivos / renovacoes",
481
+ "history": "Historico / Auditoria"
482
+ },
483
+ "actions": {
484
+ "downloadPdf": "Baixar PDF",
485
+ "download": "Baixar"
486
+ },
487
+ "labels": {
488
+ "origin": "Origem",
489
+ "mainParty": "Parte principal",
490
+ "contractType": "Tipo de contrato",
491
+ "signatureStatus": "Status da assinatura",
492
+ "activeState": "Estado ativo",
493
+ "active": "Ativo",
494
+ "inactive": "Inativo",
495
+ "partyRole": "Papel da parte",
496
+ "partyType": "Tipo da parte",
497
+ "documentNumber": "Numero do documento",
498
+ "signer": "Signatario",
499
+ "signedAt": "Assinado em",
500
+ "value": "Valor",
501
+ "payment": "Pagamentos",
502
+ "revenue": "Receita",
503
+ "fine": "Multas",
504
+ "revision": "Revisao"
505
+ },
506
+ "states": {
507
+ "noParties": "Ainda nao existem partes relacionadas a este contrato.",
508
+ "noSignatures": "Ainda nao existem assinaturas registradas.",
509
+ "noDocuments": "Ainda nao existem documentos para este contrato.",
510
+ "noRevisions": "Ainda nao existem aditivos, renovacoes ou revisoes vinculados.",
511
+ "noHistory": "Ainda nao existe historico de auditoria."
512
+ }
513
+ },
514
+ "TimesheetsPage": {
515
+ "title": "Timesheets",
516
+ "description": "Crie timesheets semanais, organize lancamentos e envie para aprovacao.",
517
+ "breadcrumb": "Timesheets",
518
+ "searchPlaceholder": "Buscar colaborador, projeto, aprovador ou observacoes...",
519
+ "emptyDescription": "Ainda nao existem timesheets disponiveis.",
520
+ "sheet": {
521
+ "createTitle": "Criar timesheet",
522
+ "editTitle": "Editar timesheet",
523
+ "description": "Rascunhos continuam editaveis ate serem enviados para aprovacao."
524
+ },
525
+ "entries": {
526
+ "title": "Lancamentos",
527
+ "description": "Sempre que possivel, vincule as linhas de trabalho as suas alocacoes ativas.",
528
+ "projectHint": "Projetos com alocacao ativa aparecem aqui automaticamente.",
529
+ "activityPlaceholder": "Exemplo: Daily, implementacao, QA, alinhamento com cliente"
530
+ },
531
+ "cards": {
532
+ "visible": "Timesheets visiveis",
533
+ "pending": "Aguardando revisao",
534
+ "hours": "Horas lancadas"
535
+ },
536
+ "messages": {
537
+ "requiredFields": "Datas de inicio e fim da semana sao obrigatorias.",
538
+ "entryValidation": "Cada linha preenchida precisa ter data de trabalho e horas.",
539
+ "saveSuccess": "Timesheet salva com sucesso.",
540
+ "saveError": "Nao foi possivel salvar a timesheet.",
541
+ "submitSuccess": "Timesheet enviada com sucesso.",
542
+ "submitError": "Nao foi possivel enviar a timesheet."
543
+ }
544
+ },
545
+ "ApprovalsPage": {
546
+ "title": "Aprovacoes",
547
+ "description": "Revise solicitacoes enviadas e registre decisoes do supervisor.",
548
+ "breadcrumb": "Aprovacoes",
549
+ "searchPlaceholder": "Buscar solicitante, alvo, aprovador ou observacao...",
550
+ "noAccessDescription": "Permissoes de supervisor ou diretor sao necessarias para revisar aprovacoes.",
551
+ "emptyDescription": "Nenhuma aprovacao corresponde aos filtros atuais.",
552
+ "cards": {
553
+ "pending": "Pendentes",
554
+ "approved": "Aprovadas",
555
+ "rejected": "Rejeitadas"
556
+ },
557
+ "dialog": {
558
+ "approveTitle": "Aprovar solicitacao",
559
+ "rejectTitle": "Rejeitar solicitacao",
560
+ "description": "Adicione uma observacao opcional para a solicitacao de {requester}: {target}."
561
+ },
562
+ "messages": {
563
+ "approveSuccess": "Aprovacao concluida com sucesso.",
564
+ "approveError": "Nao foi possivel aprovar a solicitacao.",
565
+ "rejectSuccess": "Solicitacao rejeitada com sucesso.",
566
+ "rejectError": "Nao foi possivel rejeitar a solicitacao."
567
+ }
568
+ },
569
+ "TimeOffPage": {
570
+ "title": "Ausencias",
571
+ "description": "Crie e acompanhe solicitacoes de ferias ou outras ausencias.",
572
+ "breadcrumb": "Ausencias",
573
+ "searchPlaceholder": "Buscar colaborador, aprovador, motivo ou tipo de solicitacao...",
574
+ "emptyDescription": "Nenhuma solicitacao de ausencia corresponde aos filtros atuais.",
575
+ "sheet": {
576
+ "title": "Criar solicitacao de ausencia",
577
+ "description": "Novas solicitacoes entram diretamente no fluxo de aprovacao."
578
+ },
579
+ "cards": {
580
+ "submitted": "Solicitacoes enviadas",
581
+ "approved": "Solicitacoes aprovadas",
582
+ "days": "Dias solicitados"
583
+ },
584
+ "messages": {
585
+ "requiredFields": "Datas inicial e final sao obrigatorias.",
586
+ "saveSuccess": "Solicitacao de ausencia enviada com sucesso.",
587
+ "saveError": "Nao foi possivel enviar a solicitacao de ausencia."
588
+ }
589
+ },
590
+ "ScheduleAdjustmentsPage": {
591
+ "title": "Ajustes de Horario",
592
+ "description": "Solicite mudancas temporarias ou permanentes no horario semanal.",
593
+ "breadcrumb": "Ajustes de Horario",
594
+ "searchPlaceholder": "Buscar colaborador, aprovador, escopo ou motivo...",
595
+ "emptyDescription": "Nenhuma solicitacao de ajuste de horario corresponde aos filtros atuais.",
596
+ "sheet": {
597
+ "title": "Criar ajuste de horario",
598
+ "description": "Solicitacoes de horario semanal sao encaminhadas ao supervisor do colaborador."
599
+ },
600
+ "cards": {
601
+ "submitted": "Solicitacoes enviadas",
602
+ "approved": "Solicitacoes aprovadas",
603
+ "permanent": "Solicitacoes permanentes"
604
+ },
605
+ "table": {
606
+ "currentSchedule": "Horario atual"
607
+ },
608
+ "messages": {
609
+ "requiredFields": "Uma data inicial de vigencia e obrigatoria.",
610
+ "saveSuccess": "Ajuste de horario enviado com sucesso.",
611
+ "saveError": "Nao foi possivel enviar o ajuste de horario."
612
+ }
613
+ },
614
+ "TeamPage": {
615
+ "title": "Equipe",
616
+ "description": "Visao do supervisor sobre liderados diretos, alocacoes e aprovacoes pendentes.",
617
+ "breadcrumb": "Equipe",
618
+ "noAccessDescription": "Permissoes de supervisor ou diretor sao necessarias para visualizar o painel da equipe.",
619
+ "emptyDescription": "Ainda nao existem liderados diretos vinculados a este supervisor.",
620
+ "cards": {
621
+ "members": "Membros da equipe",
622
+ "projects": "Projetos visiveis",
623
+ "pendingApprovals": "Aprovacoes pendentes",
624
+ "timeOff": "Fila de ausencias",
625
+ "scheduleAdjustments": "Fila de horarios",
626
+ "timesheets": "Fila de timesheets"
627
+ },
628
+ "sections": {
629
+ "requests": "Solicitacoes em aberto",
630
+ "pendingApprovals": "Fila de aprovacoes pendentes",
631
+ "projects": "Cobertura de projetos da equipe",
632
+ "timeOff": "Solicitacoes pendentes de ausencia",
633
+ "scheduleAdjustments": "Solicitacoes pendentes de mudanca de horario"
634
+ },
635
+ "labels": {
636
+ "timeOffRequestsCount": "{count} solicitacao(oes) de ausencia",
637
+ "scheduleRequestsCount": "{count} solicitacao(oes) de mudanca de horario",
638
+ "projectSummary": "{teamSize} colaborador(es) vinculados • {pendingTimesheets} timesheet(s) pendente(s)"
639
+ },
640
+ "states": {
641
+ "noPendingApprovals": "Nao ha aprovacoes pendentes atribuidas a este supervisor no momento.",
642
+ "noProjects": "Ainda nao ha projetos ativos vinculados a equipe visiveis.",
643
+ "noTimeOff": "Nenhuma solicitacao pendente de ausencia foi encontrada.",
644
+ "noScheduleAdjustments": "Nenhuma solicitacao pendente de ajuste de horario foi encontrada."
645
+ }
646
+ }
647
+ }