General clean up. Work on abstracts and websockets

This commit is contained in:
Scott Idem
2023-03-23 19:12:13 -04:00
parent 430a155b75
commit 224aaed969
8 changed files with 435 additions and 48 deletions

View File

@@ -6,7 +6,67 @@ from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationEr
from app.db_sql import redis_lookup_id_random
from app.lib_general import log, logging
from app.common_field_schema import base_fields, default_num_bytes
# from app.common_field_schema import base_fields, default_num_bytes
class Core_Std_Obj_Base(BaseModel):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
id_random: Optional[str] = Field(
alias = 'obj_id_random', # Not the DB field name
)
id: Optional[int] = Field(
alias = 'obj_id' # Not the DB field name
)
# id: int
oid: Optional[str] = None
otype: Optional[str] = None
code: Optional[str] = None
name: Optional[str] = None
# Including JSON data
data_json: Optional[Json]
other_json: Optional[Json]
meta_json: Optional[Json]
# For moderation:
enable: Optional[bool] # Manager override to fully enable/disable
enable_from: Optional[datetime.datetime] = None
enable_to: Optional[datetime.datetime] = None
status: Optional[int]
review: Optional[bool] # ready for review or not ready for review
approve: Optional[bool] # approved or not approved
ready: Optional[bool]
archive: Optional[bool]
hide: Optional[bool]
priority: Optional[bool]
sort: Optional[int]
group: Optional[str]
notes: Optional[str]
xyz: Optional[str]
created_on: Optional[datetime.datetime] = None
updated_on: Optional[datetime.datetime] = None
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
@validator('oid', always=True)
def id_random_to_oid(cls, v, values, **kwargs):
if isinstance(v, str):
log.info('Got oid value!')
return v
elif id_random := values.get('id_random'):
log.info('Got id_random value!')
return id_random
# return redis_lookup_id_random(record_id_random=id_random, table_name=otype)
return None
class Core_Object_Base(BaseModel):