import datetime 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 log, logging from app.models.common_field_schema import base_fields, default_num_bytes # ### BEGIN ### API SQL Request Models ### SQL_Request_Base() ### class SQL_Request_Base(BaseModel): log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) account_id_random: Optional[str] account_id: Optional[int] sql_qry: Optional[str] sql_data: Optional[dict] # enable: Optional[bool] # hide: Optional[bool] # priority: Optional[bool] # sort: Optional[int] # group: Optional[str] # Including convenience data # This is only for convenience. Probably going to keep unless it causes a problem. # Including JSON data # other_json: Optional[Json] # meta_json: Optional[Json] # Including other related objects _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) class Config: underscore_attrs_are_private = True allow_population_by_field_name = True fields = base_fields # ### END ### API SQL Request Models ### SQL_Request_Base() ### # ### BEGIN ### API SQL Result Models ### SQL_Result_Base() ### class SQL_Result_Base(BaseModel): log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.debug(locals()) result: Optional[dict|list] # Including convenience data # This is only for convenience. Probably going to keep unless it causes a problem. # Including JSON data # other_json: Optional[Json] # meta_json: Optional[Json] # Including other related objects _processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now) class Config: underscore_attrs_are_private = True allow_population_by_field_name = True fields = base_fields # ### END ### API SQL Result Models ### SQL_Result_Base() ###