|
from pydantic import BaseModel, Field |
|
from typing import Literal, List, Union, Optional |
|
|
|
class BehaviorSimple(BaseModel): |
|
type: str |
|
description: Optional[str] = None |
|
|
|
|
|
class GeneralWeakness(BehaviorSimple): |
|
type: Literal['general weakness'] |
|
description: Optional[Literal["Abnormal breathing (dyspnoea), sudden crash, apathy, lethargy, unable to fly but responsive"]] = None |
|
|
|
class Vomiting(BehaviorSimple): |
|
type: Literal['vomiting'] |
|
description: Optional[Literal["Throwing up undigested food, regurgitating"]] = None |
|
|
|
class AtypicalBehavior(BehaviorSimple): |
|
type: Literal['atypical behavior'] |
|
description: Optional[Literal["Circling, incoordination, tremors, convulsions"]] = None |
|
|
|
class NoChanges(BehaviorSimple): |
|
type: Literal['no changes'] |
|
description: Optional[Literal["Animal is acting normally"]] = None |
|
|
|
|
|
BehaviorSimpleType = Union[ |
|
GeneralWeakness, |
|
Vomiting, |
|
AtypicalBehavior, |
|
NoChanges |
|
] |
|
|
|
|
|
class BehaviorsSimple(BaseModel): |
|
behaviors_radio: str |
|
behaviors_type: Optional[List[BehaviorSimpleType]] = None |
|
|