Skip to content

feat(users): implement base user models, schemas, services, and tests - #32

Merged
r0liveir merged 4 commits into
mainfrom
feature/users-module-foundation
Sep 6, 2026
Merged

feat(users): implement base user models, schemas, services, and tests#32
r0liveir merged 4 commits into
mainfrom
feature/users-module-foundation

Conversation

@dlmeneguin

Copy link
Copy Markdown
Contributor

Descrição

Implementação da base do módulo de usuários contendo modelos SQLAlchemy, schemas Pydantic, serviços de repositório e testes unitários.

Alterações Realizadas

  • Modelos & Banco: Criação do modelo User com UUID, timestamps e soft delete.
  • Migrações: Gerada a versão inicial do Alembic para mapear a tabela de usuários.
  • Schemas: Definição dos DTOs UserCreate, UserRead e UserUpdate.
  • Segurança (Temporário): Implementação de hashing PBKDF2-HMAC-SHA256 puro (sem libs externas) em services.py para permitir a validação e execução dos testes do módulo antes do módulo auth.
  • Testes: Suíte de testes unitários ajustada e validada.

Closes #26

@dlmeneguin
dlmeneguin force-pushed the feature/users-module-foundation branch from 79ea88c to 2258fc7 Compare September 2, 2026 23:33

@r0liveir r0liveir left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Em geral está ótimo, e a organização ficou boa

Só arrumaria aquele ponto do passwordhash pra usar o pwdlib (oficialmente recomendado pelo FastAPI) ou algum similar. Com isso, teria algo pronto pra prod e n algo temporário

Comment thread backend/app/users/services.py Outdated


# Função de hash temporária na falta da implementação do atuh/
# NÃO DEIXAR ISSO PASSAR PARA PRODUÇÃO!!!!!!!!!!!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kkkkkkkkkkkkkk é osso, mas ok

Dei uma pesquisada, na própria docs do FastAPI, podemos usar uma função similar, mas com a lib pwdlib

https://fastapi.tiangolo.com/tutorial/security/oauth2-jwt/#install-pwdlib

Provavelmente eu trocaria pra usar isso, o hashlib tlvz n seja a melhor opção no nosso caso.

E dá pra deixar no users/ sim, pelo menos por enquanto. Auth vai se preocupar mais com tokens e etc

super().__init__(f"User with id {user_id!r} is already deleted")


class UserAlreadyExistsError(Exception):

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Só precisamos nos lembrar de n deixar ele escapar pro front, pra evitar ter bot tentando adivinhar contas (tlvz n aconteça nessa escala, mas vai saber kkkkk)

@dlmeneguin
dlmeneguin requested a review from r0liveir September 6, 2026 16:37

@r0liveir r0liveir left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parece bom!

Fiz um push sobre o secret_key, usando o SecretStr do Pydantic, só pra garantir q n vai ter problema

@r0liveir
r0liveir merged commit 0b32543 into main Sep 6, 2026
1 check passed
@r0liveir
r0liveir deleted the feature/users-module-foundation branch September 6, 2026 23:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

backend: implement users/ module foundation

2 participants