

uv add arrow alembic fastapi uvicorn sqlalchemy-mixins redis psycopg2-binary pymongo rsa redmail unidecode textdistance pandas faker requests cryptography

user_creds_create
user_creds_update

timezone Comparator must be used as GMT+0 and users GMT+X
[Base Collection don't have find_one / find_all bla bla]ApiEnumDropdown: functions [
    enum_class = mapped_column(String, nullable=False, comment="Enum Constant Name")
    key = mapped_column(String, nullable=False, comment="Enum Key")
    value = mapped_column(String, nullable=False, comment="Enum Value")
    description = mapped_column(String, nullable=True)
]
BuildType: functions [
    build_type = mapped_column(String, nullable=False, comment="Build Type")
    description = mapped_column(String, nullable=True)
]
OccupantType: functions [
    occupant_type = mapped_column(String, nullable=False, comment="Occupant Type")
    description = mapped_column(String, nullable=True)
]

create & update & select
is_confirmed = True

find_one / find_all is found @Database
is_confirmed = False    raise Exception Record is in database but not confirmed by supervisor

find_or_create -> If record is not found create it
if found.is_deleted = True: return "Record is found but deleted. Please contact your supervisor"
if found.is_confirmed = False: return "Record is found but not confirmed by supervisor"


update Which fields are possible to update
except
- is_confirmed

delete -> Update is_deleted = True
except
- id

destroy -> Only available for system

patch -> Only available for system [event] Retrieve available events for token user

+ Occupant Information +
Occupant [Settings]             -> Event Group [Settings]
Occupant [Accounts]             -> Event Group [Accounts]
Occupant [Decision Book]        -> Event Group [Decision Book]
Occupant [Projects]             -> Event Group [Projects]
Occupant [Events]               -> Event Group [Events]
Occupant [Company]              -> Event Group [Company]
Occupant [People]               -> Event Group [People]
Occupant [Build]                -> Event Group [Build]
Occupant [Address]              -> Event Group [Address]


ApiActions:
    insert_
    insert_bulk
    update_
    update_bulk
    delete_
    delete_bulk
    patch_
    patch_bulk

InnerJoin:
    pass


class FilterFromUser:
    raise_exception = FilterModelofEvent(**filter_records)
    
HTTP_404_NOT_FOUND make available for Next.js
HTTP_401_UNAUTHORIZED make available for Next.js
HTTP_403_FORBIDDEN make available for Next.js
HTTP_400_BAD_REQUEST make available for Next.js


class DecisionBookDecisionBookItemsListEventMethods(MethodToEvent):

    event_type = "SELECT"
    __event_keys__ = {
        "eb36de59-8268-4d96-80b6-5d01c12bf0b1": "building_decision_book_items_list",
    }
    event_description = "List Decision Book Items"