59 lines
1.9 KiB
Python
59 lines
1.9 KiB
Python
from __future__ import annotations
|
|
import datetime, hashlib, logging, os, pytz, redis, secrets
|
|
|
|
from typing import Dict, List, Optional, Set, Union
|
|
from pydantic import BaseModel, EmailStr, Field, Json, PrivateAttr, ValidationError, validator
|
|
|
|
from app.db_sql import redis_lookup_id_random
|
|
from app.lib_general import *
|
|
|
|
from .common_field_schema import base_fields, default_num_bytes
|
|
|
|
|
|
class Core_Object_Base(BaseModel):
|
|
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
|
log.debug(locals())
|
|
|
|
obj_type: str
|
|
obj_id_random: str # alias this one based on obj_type?
|
|
obj_id_rand: str # alias this one based on obj_type?
|
|
obj_id: int # alias this one?
|
|
obj_name: Optional[str]
|
|
id_random: str # alias this one?
|
|
id: int # alias this one?
|
|
|
|
account_id_random: Optional[str]
|
|
account_id: Optional[str]
|
|
|
|
notes: Optional[str]
|
|
created_on: Optional[datetime.datetime] = None
|
|
updated_on: Optional[datetime.datetime] = None
|
|
|
|
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
|
|
|
|
|
|
class Example_Object_Base(Core_Object_Base): # Based on Core_Object_Base
|
|
title: Optional[str] = None
|
|
description: Optional[str] = None
|
|
password_set_on: Optional[datetime.datetime] = None
|
|
archive_on: Optional[datetime.datetime] = None
|
|
logged_in_on: Optional[datetime.datetime] = None
|
|
last_activity_on: Optional[datetime.datetime] = None
|
|
other_random_fields: dict
|
|
list_of_: Optional[dict] = {}
|
|
|
|
# Create, Read/Get, Update, Delete
|
|
# CRUD or CGUD
|
|
|
|
# def create_object(object_data):
|
|
# return False # True, False, or None or object_data
|
|
|
|
# def get_object(object_id):
|
|
# return object_data # False or None
|
|
|
|
# def update_object(object_id, object_data):
|
|
# return False # True, False, or None or object_data
|
|
|
|
# def delete_object(object_id):
|
|
# return False # True, False, or None or object_data
|