type cheking

This commit is contained in:
IluaAir
2025-08-11 10:07:56 +03:00
parent 644d5614b9
commit ddc38dbd07
5 changed files with 27 additions and 20 deletions

View File

@@ -7,31 +7,31 @@ from src.core.database import Base
class BaseRepo:
model: type[Base] = None
model: type[Base]
def __init__(self, session):
self.session = session
async def get_filtered(self, *filter, **filter_by) -> list[BaseModel | Any]:
async def get_filtered(self, *filter, **filter_by) -> list[Base]:
query = select(self.model).filter(*filter).filter_by(**filter_by)
result = await self.session.execute(query)
model = result.scalars().one_or_none()
return model
models = result.scalars().all()
return models
async def create_one(self, data: BaseModel):
async def create_one(self, data: BaseModel) -> Base:
statement = insert(self.model).values(data.model_dump()).returning(self.model)
result = await self.session.execute(statement)
obj = result.scalar_one()
return obj
async def get_one_or_none(self, **filter_by):
async def get_one_or_none(self, **filter_by: Any) -> Base | None:
query = select(self.model).filter_by(**filter_by)
result = await self.session.execute(query)
model = result.scalars().one_or_none()
return model
async def get_all(self, *args, **kwargs) -> list[model]:
result = await self.get_filtered()
async def get_all(self, *args, **kwargs) -> list[Base]:
result = await self.get_filtered(*args, **kwargs)
return result
async def delete_one(self, **filter_by) -> None: