mirror of
https://github.com/koloideal/DutyLog.git
synced 2026-06-10 18:35:29 +03:00
update
This commit is contained in:
@@ -20,10 +20,10 @@ class HoursTransactionsDAO:
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
async def get_by_user_id(self, user_id: int) -> list[HoursTransaction]:
|
||||
async def get_by_resident_id(self, resident_id: int) -> list[HoursTransaction]:
|
||||
result = await self.session.execute(
|
||||
select(HoursTransaction)
|
||||
.where(HoursTransaction.user_id == user_id)
|
||||
.where(HoursTransaction.resident_id == resident_id)
|
||||
.order_by(HoursTransaction.created_at.desc())
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
from sqlalchemy import select, update, delete
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from dutylog.infrastructure.database.models.resident import Resident
|
||||
|
||||
|
||||
class ResidentsDAO:
|
||||
def __init__(self, session: AsyncSession):
|
||||
self.session = session
|
||||
|
||||
async def get_by_id(self, resident_id: int) -> Resident | None:
|
||||
result = await self.session.execute(
|
||||
select(Resident).where(Resident.id == resident_id)
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
async def get_by_user_id(self, user_id: int) -> Resident | None:
|
||||
result = await self.session.execute(
|
||||
select(Resident).where(Resident.user_entity == user_id)
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
async def get_by_room(self, room_id: int) -> list[Resident]:
|
||||
result = await self.session.execute(
|
||||
select(Resident).where(Resident.room == room_id)
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
async def get_available(self) -> list[Resident]:
|
||||
result = await self.session.execute(
|
||||
select(Resident).where(Resident.is_busy == False)
|
||||
)
|
||||
return list(result.scalars().all())
|
||||
|
||||
async def get_all(self) -> list[Resident]:
|
||||
result = await self.session.execute(select(Resident))
|
||||
return list(result.scalars().all())
|
||||
|
||||
async def create(self, resident: Resident) -> Resident:
|
||||
self.session.add(resident)
|
||||
await self.session.commit()
|
||||
await self.session.refresh(resident)
|
||||
return resident
|
||||
|
||||
async def update(self, resident_id: int, **kwargs) -> Resident | None:
|
||||
await self.session.execute(
|
||||
update(Resident).where(Resident.id == resident_id).values(**kwargs)
|
||||
)
|
||||
await self.session.commit()
|
||||
return await self.get_by_id(resident_id)
|
||||
|
||||
async def delete(self, resident_id: int) -> None:
|
||||
await self.session.execute(
|
||||
delete(Resident).where(Resident.id == resident_id)
|
||||
)
|
||||
await self.session.commit()
|
||||
@@ -0,0 +1,44 @@
|
||||
from sqlalchemy import select, update, delete
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from dutylog.infrastructure.database.models.room import Room
|
||||
|
||||
|
||||
class RoomsDAO:
|
||||
def __init__(self, session: AsyncSession):
|
||||
self.session = session
|
||||
|
||||
async def get_by_id(self, room_id: int) -> Room | None:
|
||||
result = await self.session.execute(
|
||||
select(Room).where(Room.id == room_id)
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
async def get_by_number(self, number: int) -> Room | None:
|
||||
result = await self.session.execute(
|
||||
select(Room).where(Room.number == number)
|
||||
)
|
||||
return result.scalar_one_or_none()
|
||||
|
||||
async def get_all(self) -> list[Room]:
|
||||
result = await self.session.execute(select(Room))
|
||||
return list(result.scalars().all())
|
||||
|
||||
async def create(self, room: Room) -> Room:
|
||||
self.session.add(room)
|
||||
await self.session.commit()
|
||||
await self.session.refresh(room)
|
||||
return room
|
||||
|
||||
async def update(self, room_id: int, **kwargs) -> Room | None:
|
||||
await self.session.execute(
|
||||
update(Room).where(Room.id == room_id).values(**kwargs)
|
||||
)
|
||||
await self.session.commit()
|
||||
return await self.get_by_id(room_id)
|
||||
|
||||
async def delete(self, room_id: int) -> None:
|
||||
await self.session.execute(
|
||||
delete(Room).where(Room.id == room_id)
|
||||
)
|
||||
await self.session.commit()
|
||||
Reference in New Issue
Block a user