"""Instruction response schemas"""
from typing import Dict, Optional
from pydantic import BaseModel, Extra, Field
from libpvarki.schemas.product import UserInstructionFragment
from pydantic_collections import BaseCollectionModel
[docs]
class AllProdcutsInstructionFragments(BaseModel): # pylint: disable=too-few-public-methods
"""Fragments for all products"""
[docs]
fragments: Dict[str, Optional[UserInstructionFragment]] = Field(
description="Instructions keyed by product short name, if fetching of fragment failed value for that product is null" # pylint: disable=C0301
)
[docs]
class Config: # pylint: disable=too-few-public-methods
"""Example values for schema"""
[docs]
class ProductFile(BaseModel): # pylint: disable=too-few-public-methods
"""File description"""
[docs]
title: str = Field(description="Title for the file")
[docs]
filename: str = Field(description="file name")
[docs]
data: str = Field(description="data-url for the file")
[docs]
class Config: # pylint: disable=too-few-public-methods
"""Example values for schema"""
[docs]
class ProductFileList(BaseCollectionModel[ProductFile]): # type: ignore[misc] # pylint: disable=too-few-public-methods
"""List of files"""
[docs]
class Config: # pylint: disable=too-few-public-methods
"""Pydantic configs"""
[docs]
class AllProdcutsInstructionFiles(BaseModel): # pylint: disable=too-few-public-methods
"""user files for all products"""
[docs]
files: Dict[str, Optional[ProductFileList]] = Field(
description="files keyed by product short name, if fetching failed value for that product is null" # pylint: disable=C0301
)
[docs]
class Config: # pylint: disable=too-few-public-methods
"""Example values for schema"""