22import typing
33from enum import Enum
44from functools import lru_cache
5- from typing import Any , List
5+ from typing import Any , List , Optional
66
77from pydantic import BaseModel , validator
88
@@ -45,28 +45,53 @@ class SharingEnum(str, Enum):
4545
4646
4747class TranslationEnum (str , Enum ):
48- en : "en"
49- es : "es"
50- pt : "pt"
48+ en = "en"
49+ es = "es"
50+ pt = "pt"
51+ fr = "fr"
52+ br = "br"
53+ el = "el"
5154
5255
56+ # Work skills
5357class Translation (BaseModel ):
5458 language : TranslationEnum = "en"
5559 name : str
60+ languageISO : Optional [str ]
61+
62+
63+ class TranslationList (BaseModel ):
64+ __root__ : List [Translation ]
65+
66+ def __iter__ (self ):
67+ return iter (self .__root__ )
68+
69+ def __getitem__ (self , item ):
70+ return self .__root__ [item ]
5671
5772
5873class Workskill (BaseModel ):
5974 label : str
6075 active : bool = True
6176 name : str = ""
6277 sharing : SharingEnum
63- translations : List [ Translation ] = []
78+ translations : TranslationList = []
6479
6580 @validator ("translations" , always = True )
6681 def set_default (cls , field_value , values ):
6782 return field_value or [Translation (name = values ["name" ])]
6883
6984
85+ class WorkskillList (BaseModel ):
86+ __root__ : List [Workskill ]
87+
88+ def __iter__ (self ):
89+ return iter (self .__root__ )
90+
91+ def __getitem__ (self , item ):
92+ return self .__root__ [item ]
93+
94+
7095class Condition (BaseModel ):
7196 label : str
7297 function : str
@@ -85,3 +110,28 @@ class WorkskillCondition(BaseModel):
85110
86111class WorskillConditionList (BaseModel ):
87112 __root__ : List [WorkskillCondition ]
113+
114+ def __iter__ (self ):
115+ return iter (self .__root__ )
116+
117+ def __getitem__ (self , item ):
118+ return self .__root__ [item ]
119+
120+
121+ # Workzones
122+ class Workzone (BaseModel ):
123+ workZoneLabel : str
124+ workZoneName : str
125+ status : str
126+ travelArea : str
127+ keys : List [Any ]
128+
129+
130+ class WorkzoneList (BaseModel ):
131+ __root__ : List [Workzone ]
132+
133+ def __iter__ (self ):
134+ return iter (self .__root__ )
135+
136+ def __getitem__ (self , item ):
137+ return self .__root__ [item ]
0 commit comments