from __future__ import annotations from dataclasses import dataclass from uuid import UUID from sqlalchemy.ext.asyncio import AsyncSession from models.user_feedback import UserFeedback @dataclass class FeedbackRepository: session: AsyncSession async def create_feedback( self, *, user_id: UUID | None, feedback_type: str, content: str, images: list[str], device_info: dict, app_version: str, os_version: str, ) -> UserFeedback: feedback = UserFeedback( user_id=user_id, feedback_type=feedback_type, content=content, images=images, device_info=device_info, app_version=app_version, os_version=os_version, ) self.session.add(feedback) await self.session.flush() return feedback async def save(self) -> None: await self.session.commit()