diff --git a/app/models/event_presenter_models.py b/app/models/event_presenter_models.py index 6517fbd..700be1b 100644 --- a/app/models/event_presenter_models.py +++ b/app/models/event_presenter_models.py @@ -56,6 +56,9 @@ class Event_Presenter_Base(BaseModel): event_track_id_random: Optional[str] event_track_id: Optional[int] + person_id_random: Optional[str] + person_id: Optional[int] + for_type: Optional[str] for_id: Optional[int] @@ -217,6 +220,13 @@ class Event_Presenter_Base(BaseModel): return redis_lookup_id_random(record_id_random=id_random, table_name='event_session') return None + @validator('person_id', always=True) + def person_id_lookup(cls, v, values, **kwargs): + if isinstance(v, int) and v > 0: return v + elif id_random := values.get('person_id_random'): + return redis_lookup_id_random(record_id_random=id_random, table_name='person') + return None + class Config: underscore_attrs_are_private = True allow_population_by_field_name = True @@ -267,6 +277,9 @@ class Event_Presenter_Out_Base(BaseModel): # event_track_id_random: Optional[str] # event_track_id: Optional[int] + person_id_random: Optional[str] + person_id: Optional[int] + # for_type: Optional[str] # for_id: Optional[int] @@ -404,6 +417,13 @@ class Event_Presenter_Out_Base(BaseModel): return redis_lookup_id_random(record_id_random=id_random, table_name='event_session') return None + @validator('person_id', always=True) + def person_id_lookup(cls, v, values, **kwargs): + if isinstance(v, int) and v > 0: return v + elif id_random := values.get('person_id_random'): + return redis_lookup_id_random(record_id_random=id_random, table_name='person') + return None + class Config: underscore_attrs_are_private = True allow_population_by_field_name = True