|
from pydantic import BaseModel, Field |
|
from typing import Literal, List, Union, Optional |
|
|
|
|
|
class Behavior(BaseModel): |
|
type: str |
|
description: Optional[str] = None |
|
|
|
|
|
|
|
class AbnormalBreathing(Behavior): |
|
type: Literal["abnormal breathing"] |
|
description: Optional[Literal["Problems breathing, breathing sounds"]] = None |
|
|
|
|
|
class CrashFalling(Behavior): |
|
type: Literal["crash, falling from the sky"] |
|
description: Optional[Literal["Suddenly falling from the sky"]] = None |
|
|
|
|
|
class Diarrhea(Behavior): |
|
type: Literal["diarrhea"] |
|
description: Optional[Literal["Observed diarrhea"]] = None |
|
|
|
|
|
class Lameness(Behavior): |
|
type: Literal["lameness"] |
|
description: Optional[ |
|
Literal["Apparent limping or not able to walk properly"] |
|
] = None |
|
|
|
|
|
class Neurological(Behavior): |
|
type: Literal["neurological"] |
|
description: Optional[ |
|
Literal["Circling, incoordination, tremors, convulsions, fast eye movements"] |
|
] = None |
|
|
|
|
|
class OtherAbnormalBehavior(Behavior): |
|
type: Literal["other abnormal behavior"] |
|
description: Optional[Literal["Other than weakness, other than neurologic"]] = None |
|
|
|
|
|
class UnableToFly(Behavior): |
|
type: Literal["unable to fly"] |
|
description: Optional[ |
|
Literal["Animal alert and tries to fly but can not take off"] |
|
] = None |
|
|
|
|
|
class Vomiting(Behavior): |
|
type: Literal["vomiting"] |
|
description: Optional[Literal["Throwing up undigested food, regurgitating"]] = None |
|
|
|
|
|
class Weakness(Behavior): |
|
type: Literal["weakness"] |
|
description: Optional[ |
|
Literal["Non responsive, does not fly away when approached, lethargy"] |
|
] = None |
|
|
|
|
|
class NoChanges(Behavior): |
|
type: Literal["no changes"] |
|
description: Optional[Literal["Animal is acting normally"]] = None |
|
|
|
|
|
|
|
BehaviorType = Union[ |
|
AbnormalBreathing, |
|
CrashFalling, |
|
Diarrhea, |
|
Lameness, |
|
Neurological, |
|
OtherAbnormalBehavior, |
|
UnableToFly, |
|
Vomiting, |
|
Weakness, |
|
NoChanges, |
|
] |
|
|
|
|
|
|
|
class Behaviors(BaseModel): |
|
behaviors_radio: str |
|
behaviors_type: Optional[List[BehaviorType]] = None |
|
|