Neda/Back/domains/groups/repo.py
2026-03-06 20:01:04 +03:30

36 lines
943 B
Python

from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from domains.groups.models import Group, GroupMember
async def create_group(db: AsyncSession, group: Group):
db.add(group)
await db.commit()
await db.refresh(group)
return group
async def get_group_by_id(db: AsyncSession, group_id):
result = await db.execute(
select(Group).where(Group.id == group_id)
)
return result.scalar_one_or_none()
async def add_group_member(db: AsyncSession, membership: GroupMember):
db.add(membership)
await db.commit()
return membership
async def get_user_groups(db: AsyncSession, user_id):
result = await db.execute(
select(Group)
.join(GroupMember)
.where(GroupMember.user_id == user_id)
)
return result.scalars().all()
async def get_all_groups(db: AsyncSession):
result = await db.execute(select(Group))
return result.scalars().all()