10 - Criando Rotas CRUD para Gerenciamento de Tarefas em FastAPI

01 - Qual o papel da classe 'TodoState' em nosso código?

02 - Qual o significado da relação `user: Mapped[User] = relationship(...)` em nosso modelo?

03 - Qual o significado do parâmetro de consulta `state: str | None = None` no endpoint de busca?

04 - Qual a função do `FuzzyChoice` no Factory Boy?

05 - Qual a função da classe `Meta` no Factory Boy?

06 - Quando chamamos "TodoFactory.create_batch" o que estamos fazendo?

07 - Qual a função do `session.add_all` nos testes de todo?

08 - Qual a função do `exclude_unset=True` no código abaixo?

@router.patch('/{todo_id}', response_model=TodoPublic)
def patch_todo(
    todo_id: int, session: Session, user: CurrentUser, todo: TodoUpdate
):
    # ...
    for key, value in todo.model_dump(exclude_unset=True).items():
        setattr(db_todo, key, value)

09 - No schema "TodoUpdate" por que todos os valores são opcionais?

class TodoUpdate(BaseModel):
    title: str | None = None
    description: str | None = None
    state: TodoState | None = None

10 - O que a querystring "?title=Test todo 1" quer dizer?

response = client.get(
    '/todos/?title=Test todo 1',
    headers={'Authorization': f'Bearer {token}'},
)