"""التحقق من بنية بيانات الأجهزة والتنبيهات"""
import asyncio
from app.database import AsyncSessionLocal
from app.models.device import Device
from app.models.alert import AlertRule, AlertLog
from app.models.settings import TenantSettings
from sqlalchemy import select

async def check():
    async with AsyncSessionLocal() as session:
        # Check devices
        print("=" * 50)
        print("DEVICES:")
        print("=" * 50)
        result = await session.execute(select(Device).limit(3))
        for device in result.scalars():
            print(f"Device: {device.name} (ID: {device.id})")
            print(f"  Metadata: {device.device_metadata}")
            print()
        
        # Check alert rules
        print("=" * 50)
        print("ALERT RULES:")
        print("=" * 50)
        result = await session.execute(select(AlertRule).where(AlertRule.is_active == True))
        for rule in result.scalars():
            print(f"Rule: {rule.name}")
            print(f"  Device ID: {rule.device_id}")
            print(f"  Reading Type: {rule.reading_type}")
            print(f"  Condition: {rule.condition_type} {rule.threshold_value}")
            print(f"  Cooldown: {rule.cooldown_minutes} minutes")
            print(f"  Last Triggered: {rule.last_triggered}")
            print()
        
        # Check settings
        print("=" * 50)
        print("TENANT SETTINGS:")
        print("=" * 50)
        result = await session.execute(select(TenantSettings).limit(1))
        settings = result.scalar_one_or_none()
        if settings:
            print(f"SMTP Enabled: {settings.smtp_enabled}")
            print(f"Alert Email Enabled: {settings.alert_email_enabled}")
            print(f"Alert Recipients: {settings.alert_email_recipients}")
            print(f"Dashboard Refresh: {settings.dashboard_refresh_interval}s")
            print(f"Alert Cooldown: {settings.alert_cooldown_minutes}min")

if __name__ == "__main__":
    asyncio.run(check())
