from sqlalchemy.ext.asyncio import AsyncSession from models import AttributeSelect from repositories import AttrSelectRepository from schemas.attr_select import ( AttrSelectSchema, GetAllAttrSelectOptionsResponse, AttrOptionSchema, ) from services.mixins import ServiceGetAllMixin class AttrSelectService(ServiceGetAllMixin[AttributeSelect, AttrSelectSchema]): schema_class = AttrSelectSchema def __init__(self, session: AsyncSession): self.repository = AttrSelectRepository(session) async def get_options(self, select_id: int) -> GetAllAttrSelectOptionsResponse: options = await self.repository.get_options(select_id) return GetAllAttrSelectOptionsResponse( items=[AttrOptionSchema.model_validate(option) for option in options] )