updated events initializer

This commit is contained in:
2025-04-04 12:03:00 +03:00
parent f284d4c61b
commit b1c8203a33
24 changed files with 874 additions and 114 deletions

View File

@@ -1,23 +1,13 @@
import arrow
import datetime
from typing import Optional, Any, Dict, List
from sqlalchemy.orm import Session, Mapped
from pydantic import BaseModel
from fastapi.exceptions import HTTPException
from typing import Optional, Any, Dict
from decimal import Decimal
from fastapi.exceptions import HTTPException
from sqlalchemy import TIMESTAMP, NUMERIC
from sqlalchemy.orm.attributes import InstrumentedAttribute
class Credentials(BaseModel):
"""
Class to store user credentials.
"""
person_id: int
person_name: str
full_name: Optional[str] = None
from sqlalchemy.orm import Session, Mapped
class MetaData:
@@ -27,6 +17,7 @@ class MetaData:
created: bool = False
updated: bool = False
deleted: bool = False
class CRUDModel:
@@ -43,7 +34,7 @@ class CRUDModel:
__abstract__ = True
creds: Credentials = None
# creds: Credentials = None
meta_data: MetaData = MetaData()
# Define required columns for CRUD operations
@@ -57,23 +48,6 @@ class CRUDModel:
"deleted": bool,
}
@classmethod
def create_credentials(cls, record_created) -> None:
"""
Save user credentials for tracking.
Args:
record_created: Record that created or updated
"""
if not cls.creds:
return
if getattr(cls.creds, "person_id", None) and getattr(
cls.creds, "person_name", None
):
record_created.created_by_id = cls.creds.person_id
record_created.created_by = cls.creds.person_name
@classmethod
def raise_exception(
cls, message: str = "Exception raised.", status_code: int = 400
@@ -126,7 +100,6 @@ class CRUDModel:
for key, value in kwargs.items():
setattr(created_record, key, value)
cls.create_credentials(created_record)
db.add(created_record)
db.flush()
return created_record
@@ -194,6 +167,7 @@ class CRUDModel:
return False, None
except Exception as e:
err = e
return False, None
def get_dict(
@@ -234,6 +208,7 @@ class CRUDModel:
return return_dict
except Exception as e:
err = e
return {}
@classmethod
@@ -278,7 +253,6 @@ class CRUDModel:
for key, value in kwargs.items():
setattr(created_record, key, value)
cls.create_credentials(created_record)
db.add(created_record)
db.flush()
cls.meta_data.created = True
@@ -308,7 +282,6 @@ class CRUDModel:
for key, value in kwargs.items():
setattr(self, key, value)
self.update_credentials()
db.flush()
self.meta_data.updated = True
return self
@@ -317,17 +290,3 @@ class CRUDModel:
self.meta_data.updated = False
db.rollback()
self.raise_exception(f"Failed to update record: {str(e)}", status_code=500)
def update_credentials(self) -> None:
"""
Save user credentials for tracking.
"""
if not self.creds:
return
person_id = getattr(self.creds, "person_id", None)
person_name = getattr(self.creds, "person_name", None)
if person_id and person_name:
self.updated_by_id = self.creds.person_id
self.updated_by = self.creds.person_name