File size: 1,280 Bytes
161d75f
 
 
 
 
21dae66
161d75f
21dae66
 
 
161d75f
 
21dae66
 
 
 
 
a725af0
161d75f
21dae66
 
 
161d75f
 
21dae66
995b526
21dae66
 
 
 
 
 
 
161d75f
 
21dae66
161d75f
21dae66
a725af0
161d75f
21dae66
161d75f
21dae66
a725af0
161d75f
21dae66
161d75f
 
 
 
 
 
21dae66
161d75f
 
21dae66
161d75f
21dae66
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from pydantic import BaseModel, Field
from typing import Literal, Union, Optional, List

# --- Event follow-up classes ---


class AnimalCollectedEvent(BaseModel):
    type: Literal["animal collected"]
    collected: Literal["yes", "no"]


class RecipientEvent(BaseModel):
    type: Literal["recipient"]
    recipient: Literal[
        "veterinary", "care center", "local museum", "national museum", "other"
    ]


class RadiographyEvent(BaseModel):
    type: Literal["radiography"]
    radiography: Literal["yes", "no", "unknown"]


class GivenAnswerEvent(BaseModel):
    type: Literal["given answer"]
    answer: Literal[
        "nothing",
        "complaint against x",
        "complaint",
        "police call",
        "discussion with the speaker",
        "press release",
        "unknown",
    ]


class NameOfRecipientEvent(BaseModel):
    type: Literal["recipient name"]
    name: str


class CollectionReferenceEvent(BaseModel):
    type: Literal["collection reference"]
    reference: str


FollowUpEventType = Union[
    AnimalCollectedEvent,
    RecipientEvent,
    RadiographyEvent,
    GivenAnswerEvent,
    NameOfRecipientEvent,
    CollectionReferenceEvent,
]


class FollowUpEvents(BaseModel):
    follow_up_events: Optional[List[FollowUpEventType]] = None