28 lines
886 B
Python
28 lines
886 B
Python
from sqlalchemy import select
|
|
from .database import DatingOrm, new_session
|
|
from .schemas import SDatingAdd, SDating
|
|
|
|
|
|
class DatingRepository:
|
|
@classmethod
|
|
async def add_dating(cls, dating: SDatingAdd) -> int:
|
|
async with new_session() as session:
|
|
data = dating.model_dump()
|
|
new_dating = DatingOrm(**data)
|
|
|
|
session.add(new_dating)
|
|
await session.flush()
|
|
await session.commit()
|
|
return new_dating.id
|
|
|
|
@classmethod
|
|
async def get_datings(cls) -> list[SDating]:
|
|
async with new_session() as session:
|
|
query = select(DatingOrm)
|
|
result = await session.execute(query)
|
|
dating_models = result.scalars().all()
|
|
datings = [
|
|
SDating.model_validate(dating_model) for dating_model in dating_models
|
|
]
|
|
return datings
|