models.py:
recebe os modelos do banco de dados, modelamos nosso banco usando o registry do sqlalchemy. com o registry registramos os metadados referentes ao campo das tabela, nesse caso usamos as dataclasses do python para mapear nossa tabela (mapped relational object), criando um objeto escalar. o atributo mapped_column do sqlalchemy para mapear as constraints da tabela, como pk, unique
engine:
# gerenciamento de contexto live 43
with Session(engine) as session:
# transforma uma função em um gerador playlist introdução a corrotinas live 51
yield session
relationship:
define como as tabelas interagem, o argumento back-populates permite a associação bidirecional, ou seja acessar o usuário pelas tarefas e o contário, o argumento cascade define o que acontece com as tarefa qndo o usuário é deletado.
model_dump: método do BaseModel, permite exportar o modelo para um dicionário
exclude_unset: quando True apenas os campos selecionados explicitamente definidos serão incluídos no dicionário resultante.
setattb: função embutida para definir valor de um atributo em um objeto