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()