feat(v3): robust search wildcards, smart status filtering, and fixed ID population

This commit is contained in:
Scott Idem
2026-01-06 15:54:31 -05:00
parent a42f32acf4
commit 45f6303219
19 changed files with 452 additions and 279 deletions

View File

@@ -220,6 +220,9 @@ class Event_Badge_Basic_Base(BaseModel):
**base_fields['event_badge_id_random'],
alias = 'event_badge_id_random',
)
id: Optional[int] = Field(
alias = 'event_badge_id'
)
event_badge_template_id_random: Optional[str]
# event_badge_template_id: Optional[int]
@@ -298,15 +301,15 @@ class Event_Badge_Basic_Base(BaseModel):
print_last_datetime: Optional[datetime.datetime] = None
print_count: Optional[int]
# hide: Optional[bool]
# priority: Optional[bool]
# sort: Optional[int]
# group: Optional[str]
# enable: Optional[bool]
hide: Optional[bool]
priority: Optional[bool]
sort: Optional[int]
group: Optional[str]
enable: Optional[bool]
# notes: Optional[str]
# created_on: Optional[datetime.datetime] = None
# updated_on: Optional[datetime.datetime] = None
notes: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
# Including other related objects
# order: Optional[Union[Order_Base, None]]
@@ -315,6 +318,13 @@ class Event_Badge_Basic_Base(BaseModel):
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@validator('id', always=True)
def event_badge_id_lookup(cls, v, values, **kwargs):
if isinstance(v, int) and v > 0: return v
elif id_random := values.get('id_random'):
return redis_lookup_id_random(record_id_random=id_random, table_name='event_badge')
return None
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True