Skip to content

Comments

Backend: suporte a autosave/move #13

Merged
Romulo-Queiroz merged 1 commit intomasterfrom
codex/implement-autosave-and-task-status-update
Feb 21, 2026
Merged

Backend: suporte a autosave/move #13
Romulo-Queiroz merged 1 commit intomasterfrom
codex/implement-autosave-and-task-status-update

Conversation

@Romulo-Queiroz
Copy link
Member

Motivation

  • Habilitar autosave e movimentação Kanban de cards com atualizações parciais sem sobrescrever alterações concorrentes usando controle otimista.
  • Registrar metadados de ordenação/tempo/status e associar tarefas a tenants/usuários para validação de acesso.
  • Expor endpoints REST protegidos por JWT para que o frontend possa enviar autosaves frequentes e operações de move/tempo.

Description

  • Estendi a entidade TaskEntity com State, Order, UpdatedAt, UpdatedBy, EstimateMinutes, SpentMinutes, DueDate, TenantId e RowVersion ([Timestamp]), e adicionei o enum TaskState; também adicionei TenantId ao UserEntity e adaptei AppDbContext para RowVersion e conversão de State para string.
  • Adicionei DTOs TaskPatchRequest, TaskMoveRequest, TaskTimeRequest e TaskResponse e implementei serviços em TaskManagerServices para PatchTaskAsync, MoveTaskAsync, UpdateTaskTimeAsync e GetBoardTasksAsync com verificação de RowVersion, lógica de reordenação (shift de Order) e transação para move.
  • Incluí novos endpoints protegidos por [Authorize] em TaskManagerController: PATCH /api/tasks/{id}, POST /api/tasks/{id}/move, PUT /api/tasks/{id}/time e GET /api/boards/{boardId}/tasks, com extração de userId e tenant_id dos claims e suporte a If-Match (base64 rowVersion).
  • Atualizei JwtTokenService para emitir claim tenant_id, adaptei Program.cs para ler AUTH_JWT_KEY, AUTH_JWT_ISSUER, AUTH_JWT_AUDIENCE e CONNECTION_STRING, adicionei ProblemDetails e a configuração de Swagger/segurança, e criei a migration TaskAutosaveAndConcurrency para persistir as alterações DDL.
  • Atualizei o README com variáveis de ambiente, exemplos de request/response para autosave/move/time e documentação do comportamento de conflito.

Testing

  • Foram adicionados/atualizados testes unitários em Todo.Tests/Services/TaskManagerServicesTests.cs cobrindo inserção de task, reorder ao mover um card e conflito de RowVersion nas operações de patch/move.
  • A execução automática dos testes e geração/aplicação de migrations não foi possível neste ambiente porque o comando dotnet não está disponível (dotnet: command not found), portanto os testes não foram executados localmente aqui.
  • Recomenda-se executar localmente dotnet test e dotnet ef database update (ou dotnet ef migrations add) no ambiente de desenvolvimento com .NET SDK 7 instalado para validar compilação, testes e aplicação da migration.

Codex Task

@Romulo-Queiroz Romulo-Queiroz changed the title Backend: suporte a autosave/move com concorrência otimista para Tasks Backend: suporte a autosave/move Feb 21, 2026
@Romulo-Queiroz Romulo-Queiroz self-assigned this Feb 21, 2026
@Romulo-Queiroz Romulo-Queiroz merged commit cc538a9 into master Feb 21, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant