25 lines
805 B
Python
25 lines
805 B
Python
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]
|
|
)
|