@@ -17,7 +17,7 @@ class CreatePostAddonRequest(BaseModel):
17
17
18
18
@field_serializer ("widgets" )
19
19
def serialize_widgets (self , widgets , _info ):
20
- return { "widget_list" : [w .serialize_model () for w in widgets ]}
20
+ return [w .serialize_model () for w in widgets ]
21
21
22
22
23
23
class CreatePostAddonResponse (BaseModel ):
@@ -71,19 +71,22 @@ class PostAddon(BaseModel):
71
71
semantic : Dict [str , str ] = None
72
72
semantic_sensitives : List [str ] = None
73
73
74
+ class Config :
75
+ exclude = {"semantic_sensitives" }
76
+
77
+
74
78
@field_validator ("widgets" , mode = "before" )
75
79
@classmethod
76
80
def deserialize_model (cls , widgets : Dict ):
77
- widget_list = widgets .get ("widget_list" , [])
78
81
return [
79
- get_widget_class (w [ "widget_type" ]) .deserialize_model (w ) for w in widget_list
82
+ get_widget_class (w . keys ()) .deserialize_model (w ) for w in widgets
80
83
]
81
84
82
85
@field_serializer ("widgets" )
83
86
def serialize_widgets (self , widgets , _info ):
84
87
if widgets :
85
88
p = [w .serialize_model () for w in widgets ]
86
- return { "widget_list" : p }
89
+ return p
87
90
return None
88
91
89
92
@@ -121,11 +124,23 @@ class CreateUserAddonRequest(BaseModel):
121
124
categories : List [str ]
122
125
ticket_uuid : Optional [str ] = None
123
126
verification_cost : Optional [int ] = None
127
+ cost : Optional [int ] = None
128
+
129
+ @field_validator ("cost" , mode = "before" )
130
+ @classmethod
131
+ def set_cost_from_verification (cls , cost : Optional [int ], values ):
132
+ if cost is None and values .get ("verification_cost" ) is not None :
133
+ return values .get ("verification_cost" )
134
+ return cost
135
+
136
+ class Config :
137
+ exclude = {"verification_cost" , "management_permalink" ,
138
+ "notes" , "removal_permalink" , "semantic_sensitives" }
124
139
125
140
@field_serializer ("widgets" )
126
141
def serialize_widgets (self , widgets , _info ):
127
142
p = [w .serialize_model () for w in widgets ]
128
- return { "widget_list" : p }
143
+ return p
129
144
130
145
131
146
class CreateUserAddonResponse (BaseModel ):
@@ -160,16 +175,15 @@ class UserAddon(BaseModel):
160
175
@field_validator ("widgets" , mode = "before" )
161
176
@classmethod
162
177
def deserialize_model (cls , widgets : Dict ):
163
- widget_list = widgets .get ("widget_list" , [])
164
178
return [
165
- get_widget_class (w [ "widget_type" ]) .deserialize_model (w ) for w in widget_list
179
+ get_widget_class (w . keys ()) .deserialize_model (w ) for w in widgets
166
180
]
167
181
168
182
@field_serializer ("widgets" )
169
183
def serialize_widgets (self , widgets , _info ):
170
184
if widgets :
171
185
p = [w .serialize_model () for w in widgets ]
172
- return { "widget_list" : p }
186
+ return p
173
187
return None
174
188
175
189
0 commit comments