(
session: Session,
practice_card: PracticeCard,
is_correct: bool,
)
| 338 | |
| 339 | |
| 340 | def record_practice_card_result( |
| 341 | session: Session, |
| 342 | practice_card: PracticeCard, |
| 343 | is_correct: bool, |
| 344 | ) -> PracticeCard: |
| 345 | was_practiced = practice_card.is_practiced |
| 346 | |
| 347 | practice_card.is_correct = is_correct |
| 348 | practice_card.is_practiced = True |
| 349 | practice_card.updated_at = datetime.now(timezone.utc) |
| 350 | session.add(practice_card) |
| 351 | |
| 352 | practice_session = session.get(PracticeSession, practice_card.session_id) |
| 353 | if practice_session: |
| 354 | if not was_practiced: |
| 355 | practice_session.cards_practiced += 1 |
| 356 | if is_correct: |
| 357 | practice_session.correct_answers += 1 |
| 358 | |
| 359 | if practice_session.cards_practiced == practice_session.total_cards: |
| 360 | practice_session.is_completed = True |
| 361 | |
| 362 | practice_session.updated_at = datetime.now(timezone.utc) |
| 363 | session.add(practice_session) |
| 364 | |
| 365 | session.commit() |
| 366 | session.refresh(practice_card) |
| 367 | return practice_card |
| 368 | |
| 369 | |
| 370 | def get_card_by_id(session: Session, card_id: uuid.UUID) -> Card | None: |
no outgoing calls