shaheerawan3's picture
Update utils/database.py
b45de6b verified
import sqlite3
from contextlib import contextmanager
from typing import Generator
import logging
import os
from datetime import datetime
CREATE INDEX idx_social_accounts_user_id ON social_accounts(user_id);
CREATE INDEX idx_social_accounts_heir_id ON social_accounts(heir_id);
if not hasattr(st.session_state, 'db'):
st.error("Database connection not established")
return
# Initialize service
services = ServiceIntegration(st.session_state.db)
# For face verification
result = services.verify_face(image_path, stored_encoding)
# For activity monitoring
result = services.monitor_activity(activity_data)
# For document generation
result = services.generate_legal_document(user_data, assets, heirs)
cursor.execute("""
CREATE TABLE IF NOT EXISTS security_events (
id TEXT PRIMARY KEY,
event_type TEXT NOT NULL,
success BOOLEAN,
details TEXT,
timestamp TEXT NOT NULL
)
""")
class DatabaseManager:
def __init__(self, db_path: str = 'digital_heir.db'):
self.db_path = db_path
self._create_backup_dir()
@contextmanager
def get_connection(self) -> Generator[sqlite3.Connection, None, None]:
conn = sqlite3.connect(self.db_path)
try:
yield conn
finally:
conn.close()
def _create_backup_dir(self):
os.makedirs('backups', exist_ok=True)
def backup(self):
backup_path = f"backups/digital_heir_{datetime.now().strftime('%Y%m%d_%H%M')}.db"
try:
with self.get_connection() as src, sqlite3.connect(backup_path) as dst:
src.backup(dst)
logging.info(f"Database backup created: {backup_path}")
except Exception as e:
logging.error(f"Database backup failed: {str(e)}")
def optimize(self):
with self.get_connection() as conn:
conn.execute("VACUUM")
conn.execute("ANALYZE")
db_manager = DatabaseManager()