Delegate availability persistence to AvailabilityRepository

- Add create() and create_multiple() methods to AvailabilityRepository
- Update AvailabilityService to use repository methods instead of direct db operations
This commit is contained in:
counterweight 2025-12-25 18:51:55 +01:00
parent 4cb561d54f
commit 17aead2e21
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
2 changed files with 41 additions and 12 deletions

View file

@ -39,3 +39,28 @@ class AvailabilityRepository:
await self.db.execute(
delete(Availability).where(Availability.date == target_date)
)
async def create(self, availability: Availability) -> Availability:
"""
Create a new availability record.
Args:
availability: Availability instance to persist
Returns:
Created Availability record (flushed to get ID)
"""
self.db.add(availability)
await self.db.flush()
return availability
async def create_multiple(self, availabilities: list[Availability]) -> None:
"""
Create multiple availability records in a single transaction.
Args:
availabilities: List of Availability instances to persist
"""
for availability in availabilities:
self.db.add(availability)
await self.db.flush()