Fix bugs, add README and Makefile

This commit is contained in:
2026-01-16 20:39:51 +03:00
parent 3e515c66ec
commit a065c6b7be
30 changed files with 695 additions and 286 deletions

View File

@@ -1,4 +1,7 @@
from pydantic_filters import OffsetPagination
import uuid
from typing import AsyncGenerator
from pydantic_filters import BasePagination, OffsetPagination
from sqlalchemy.orm import joinedload
from birthday_pool_bot.dto import Pool, PoolFilter
@@ -14,20 +17,38 @@ class PoolsRepository(BaseRepository[Pool, PoolFilter]):
filter_ = PoolFilter(birthday_user_id={birthday_user_id})
return await self.get_items_count(filter_=filter_)
async def get_pools_by_birthday_user_id(self, birthday_user_id: uuid.UUID) -> list[Pool]:
async def get_pools_by_birthday_user_id(
self,
birthday_user_id: uuid.UUID,
pagination: BasePagination | None = None,
with_owner: bool = False,
) -> AsyncGenerator[Pool]:
filter_ = PoolFilter(birthday_user_id={birthday_user_id})
return [pool async for pool in self.get_items(filter_=filter_)]
options = []
if with_owner:
options.append(joinedload(DBPool.owner))
pools_generator = self.get_items(
filter_=filter_,
pagination=pagination,
options=options,
)
async for pool in pools_generator:
yield pool
async def get_pool_by_id(
self,
pool_id: uuid.UUID,
with_owner: bool = False,
with_birthday_user: bool = False,
) -> Pool | None:
filter_ = PoolFilter(id={pool_id})
pagination = OffsetPagination(limit=1)
options = []
if with_owner:
options.append(joinedload(DBPool.owner))
if with_birthday_user:
options.append(joinedload(DBPool.birthday_user))
pools_generator = self.get_items(
filter_=filter_,

View File

@@ -1,4 +1,5 @@
import uuid
from typing import AsyncGenerator, Iterable
from pydantic_filters import BasePagination, OffsetPagination
from sqlalchemy.orm import joinedload

View File

@@ -1,8 +1,9 @@
import uuid
from datetime import date
from typing import Container, Sequence, TypeVar
from pydantic_filters import OffsetPagination
from sqlalchemy import Column, func, inspect, select
from pydantic_filters import BasePagination, OffsetPagination
from sqlalchemy import Column, func, inspect, or_, select, update
from sqlmodel import SQLModel
from birthday_pool_bot.dto import User, UserFilter