@@ -269,12 +269,17 @@ class StockPriceLastValue(BaseModel):
269269 l : float = Field (description = "Low price" )
270270 c : float = Field (description = "Closing price" )
271271 o : float = Field (description = "Opening price" )
272- v : int = Field (description = "Volume" )
272+ v : Optional [ int ] = Field (None , description = "Volume" )
273273
274274
275275class StockPriceLastResponse (BaseModel ):
276276 """Response model for last stock prices."""
277- values : List [StockPriceLastValue ]
277+ stockPricesList : List [Dict [str , Any ]]
278+
279+ @property
280+ def values (self ) -> List [StockPriceLastValue ]:
281+ """Convert the stockPricesList to a list of StockPriceLastValue objects."""
282+ return [StockPriceLastValue (** item ) for item in self .stockPricesList ]
278283
279284
280285class StockSplit (BaseModel ):
@@ -299,6 +304,55 @@ class TranslationItem(BaseModel):
299304
300305class TranslationMetadataResponse (BaseModel ):
301306 """Response model for translation metadata."""
302- branches : Optional [List [TranslationItem ]]
303- sectors : Optional [List [TranslationItem ]]
304- countries : Optional [List [TranslationItem ]]
307+ translationMetadatas : List [Dict [str , Any ]]
308+
309+ @property
310+ def branches (self ) -> List [TranslationItem ]:
311+ """Get branch translations."""
312+ result = []
313+ for item in self .translationMetadatas :
314+ if item .get ("translationKey" , "" ).startswith ("L_BRANCH_" ):
315+ try :
316+ branch_id = int (item .get ("translationKey" , "" ).split ("_" )[- 1 ])
317+ result .append (TranslationItem (
318+ id = branch_id ,
319+ nameSv = item .get ("nameSv" ),
320+ nameEn = item .get ("nameEn" )
321+ ))
322+ except (ValueError , IndexError ):
323+ pass
324+ return result
325+
326+ @property
327+ def sectors (self ) -> List [TranslationItem ]:
328+ """Get sector translations."""
329+ result = []
330+ for item in self .translationMetadatas :
331+ if item .get ("translationKey" , "" ).startswith ("L_SECTOR_" ):
332+ try :
333+ sector_id = int (item .get ("translationKey" , "" ).split ("_" )[- 1 ])
334+ result .append (TranslationItem (
335+ id = sector_id ,
336+ nameSv = item .get ("nameSv" ),
337+ nameEn = item .get ("nameEn" )
338+ ))
339+ except (ValueError , IndexError ):
340+ pass
341+ return result
342+
343+ @property
344+ def countries (self ) -> List [TranslationItem ]:
345+ """Get country translations."""
346+ result = []
347+ for item in self .translationMetadatas :
348+ if item .get ("translationKey" , "" ).startswith ("L_COUNTRY_" ):
349+ try :
350+ country_id = int (item .get ("translationKey" , "" ).split ("_" )[- 1 ])
351+ result .append (TranslationItem (
352+ id = country_id ,
353+ nameSv = item .get ("nameSv" ),
354+ nameEn = item .get ("nameEn" )
355+ ))
356+ except (ValueError , IndexError ):
357+ pass
358+ return result
0 commit comments