Files
study-agent-service/service/mistake_service.py
2026-07-30 13:07:26 +08:00

52 lines
1.3 KiB
Python

from sqlalchemy import select, delete
from sqlalchemy.ext.asyncio import AsyncSession
from models.library import Mistake
from schemas.mistake import MistakeResponse, MistakeRequest
async def list_mistakes(db: AsyncSession) -> list[MistakeResponse]:
stmt = select(Mistake).order_by(Mistake.id.desc())
mistakes = (await db.execute(stmt)).scalars().all()
return [
MistakeResponse(
id=mistake.id,
subject=mistake.subject,
module=mistake.module,
name=mistake.name,
type=mistake.type,
question=mistake.question,
options=mistake.options,
answer=mistake.answer
)
for mistake in mistakes
]
async def add_mistakes(db: AsyncSession, data: list[MistakeRequest]):
db.add_all(
[
Mistake(
subject=item.subject,
module=item.module,
name=item.name,
type=item.type,
question=item.question,
options=item.options,
answer=item.answer,
)
for item in data
]
)
await db.commit()
return True
async def remove_mistake(db: AsyncSession, mistake_id: int) -> bool:
await db.execute(delete(Mistake).where(Mistake.id == mistake_id))
await db.commit()
return True