satupeta-main/app/repositories/map_access_repository.py
2026-01-27 09:11:58 +07:00

40 lines
1.5 KiB
Python

from fastapi_async_sqlalchemy import db
from sqlalchemy import select
from uuid6 import UUID
from app.models import MapAccessModel
from . import BaseRepository
class MapAccessRepository(BaseRepository[MapAccessModel]):
def __init__(self, model):
super().__init__(model)
async def find_by_mapset(self, mapset_id: UUID):
query = select(self.model).where(self.model.mapset_id == mapset_id)
result = await db.session.execute(query)
return result.scalars().all()
async def find_by_user(self, user_id: UUID):
query = select(self.model).where(self.model.user_id == user_id)
result = await db.session.execute(query)
return result.scalars().all()
async def find_by_organization(self, organization_id: UUID):
query = select(self.model).where(self.model.organization_id == organization_id)
result = await db.session.execute(query)
return result.scalars().all()
async def find_user_access_to_mapset(self, mapset_id: UUID, user_id: UUID):
query = select(self.model).where(self.model.mapset_id == mapset_id, self.model.user_id == user_id)
result = await db.session.execute(query)
return result.scalars().all()
async def find_organization_access_to_mapset(self, mapset_id: UUID, organization_id: UUID):
query = select(self.model).where(
self.model.mapset_id == mapset_id, self.model.organization_id == organization_id
)
result = await db.session.execute(query)
return result.scalars().all()