# -*- coding: utf-8 -*-
"""
HUD Dashboard v5.0 - Cyberpunk Modelhane Sistemi
Terminator/Tron/HUD Tarzı - Neon, Hologram, Glitch Efektleri
"""

import sys
import json
import math
import random
from datetime import datetime, timedelta
from typing import Dict, List, Optional, Any
from dataclasses import dataclass, asdict

from PyQt6.QtWidgets import (
    QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
    QGridLayout, QLabel, QPushButton, QFrame, QScrollArea,
    QProgressBar, QStackedWidget, QSplitter, QTextEdit,
    QSpinBox, QDoubleSpinBox, QComboBox, QLineEdit, QCheckBox,
    QSlider, QGroupBox, QTableWidget, QTableWidgetItem,
    QHeaderView, QAbstractItemView, QMenu, QMenuBar,
    QStatusBar, QToolBar, QToolButton, QButtonGroup,
    QRadioButton, QTabWidget, QTreeWidgetItem, QTreeWidget,
    QGraphicsView, QGraphicsScene, QGraphicsOpacityEffect,
    QGraphicsDropShadowEffect, QSizePolicy, QSpacerItem
)
from PyQt6.QtCore import (
    Qt, QTimer, QThread, pyqtSignal, QPropertyAnimation,
    QEasingCurve, QParallelAnimationGroup, QSequentialAnimationGroup,
    QRect, QPointF, QSize, pyqtProperty, QUrl, QVariantAnimation,
    QTimeLine, QEvent, QEventLoop, QRectF
)
from PyQt6.QtGui import (
    QFont, QColor, QPalette, QLinearGradient, QRadialGradient,
    QPen, QBrush, QPainter, QPixmap, QIcon, QCursor,
    QPolygonF, QFontDatabase, QHoverEvent, QEnterEvent,
    QMouseEvent, QResizeEvent, QShowEvent, QPainterPath,
    QTransform, QFontMetrics, QConicalGradient, QKeySequence
)


@dataclass
class Proje:
    """Proje veri yapısı"""
    id: str
    ad: str
    musteri: str
    durum: str
    baslangic: datetime
    bitis: datetime
    bütce: float
    harcanan: float
    ilerleme: float
    sorumlu: str
    takim_uyeleri: List[str]
    oncelik: str
    risk_seviyesi: str


class HUDButton(QPushButton):
    """HUD tarzı buton - Neon ve glitch efekti"""

    def __init__(self, text, color="#00ffff", btn_type="primary"):
        super().__init__(text)
        self.color = QColor(color)
        self.btn_type = btn_type
        self.glitch_offset = 0
        self.setupStyle()
        self.setupAnimations()

    def setupStyle(self):
        base_style = f"""
            HUDButton {{
                background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                    stop:0 rgba(0, 0, 0, 200),
                    stop:0.5 rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, 50),
                    stop:1 rgba(0, 0, 0, 200));
                border: 2px solid {self.color.name()};
                border-radius: 2px;
                color: {self.color.name()};
                font-family: 'Orbitron', 'Consolas', monospace;
                font-size: 12px;
                font-weight: bold;
                padding: 10px 20px;
                text-transform: uppercase;
                letter-spacing: 2px;
                position: relative;
            }}
            HUDButton::after {{
                content: '';
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                    stop:0 transparent,
                    stop:0.5 {self.color.name()},
                    stop:1 transparent);
                opacity: 0.3;
                pointer-events: none;
            }}
            HUDButton:hover {{
                background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                    stop:0 rgba(0, 0, 0, 200),
                    stop:0.5 rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, 80),
                    stop:1 rgba(0, 0, 0, 200));
                border: 2px solid rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, 255);
                color: #ffffff;
                text-shadow: 0 0 10px {self.color.name()};
            }}
            HUDButton:pressed {{
                background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                    stop:0 rgba(0, 0, 0, 200),
                    stop:0.5 rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, 120),
                    stop:1 rgba(0, 0, 0, 200));
            }}
        """
        self.setStyleSheet(base_style)

        # Glow efekti
        self.shadow_effect = QGraphicsDropShadowEffect()
        self.shadow_effect.setColor(self.color)
        self.shadow_effect.setBlurRadius(10)
        self.shadow_effect.setXOffset(0)
        self.shadow_effect.setYOffset(0)
        self.setGraphicsEffect(self.shadow_effect)

    def setupAnimations(self):
        # Glitch animasyon timer
        self.glitch_timer = QTimer()
        self.glitch_timer.timeout.connect(self.glitch)
        self.glitch_timer.start(100)

    def glitch(self):
        # Rastgele glitch efekti
        if random.random() < 0.05:  # 5% ihtimalle glitch
            self.glitch_offset = random.randint(-2, 2)
            QTimer.singleShot(50, self.resetGlitch)

    def resetGlitch(self):
        self.glitch_offset = 0

    def enterEvent(self, event):
        self.shadow_effect.setBlurRadius(20)
        self.shadow_effect.setColor(self.color.lighter(150))
        super().enterEvent(event)

    def leaveEvent(self, event):
        self.shadow_effect.setBlurRadius(10)
        self.shadow_effect.setColor(self.color)
        super().leaveEvent(event)


class HUDCard(QFrame):
    """HUD tarzı kart - Şeffaf ve neon kenarlıklar"""

    def __init__(self, title="", value="", subtitle="", icon="📊", color="#00ffff"):
        super().__init__()
        self.color = QColor(color)
        self.title = title
        self.value = value
        self.subtitle = subtitle
        self.icon = icon
        self.setupUI()
        self.addAnimations()

    def setupUI(self):
        self.setFixedHeight(140)
        self.setMinimumWidth(200)
        self.setFrameStyle(QFrame.Shape.NoFrame)

        # Şeffaf arka plan
        self.setStyleSheet(f"""
            HUDCard {{
                background: rgba(0, 20, 40, 180);
                border: 1px solid {self.color.name()};
                border-radius: 0px;
                position: relative;
            }}
            HUDCard::before {{
                content: '';
                position: absolute;
                top: -1px;
                left: -1px;
                right: -1px;
                bottom: -1px;
                background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
                    stop:0 {self.color.name()},
                    stop:0.25 rgba(255,255,255,0.1),
                    stop:0.5 {self.color.name()},
                    stop:0.75 rgba(255,255,255,0.1),
                    stop:1 {self.color.name()});
                border-radius: 0px;
                z-index: -1;
                opacity: 0.3;
            }}
        """)

        layout = QVBoxLayout()
        layout.setSpacing(8)
        layout.setContentsMargins(20, 15, 20, 15)

        # Header with corner decorations
        header_layout = QHBoxLayout()

        # Sol üst köşe
        corner_tl = QLabel("┌")
        corner_tl.setStyleSheet(f"color: {self.color.name()}; font-family: monospace; font-size: 16px;")
        header_layout.addWidget(corner_tl)

        # Icon
        icon_label = QLabel(self.icon)
        icon_label.setStyleSheet(f"""
            font-size: 24px;
            color: {self.color.name()};
            text-shadow: 0 0 15px {self.color.name()};
        """)
        header_layout.addWidget(icon_label)

        header_layout.addStretch()

        # Sağ üst köşe
        corner_tr = QLabel("┐")
        corner_tr.setStyleSheet(f"color: {self.color.name()}; font-family: monospace; font-size: 16px;")
        header_layout.addWidget(corner_tr)

        layout.addLayout(header_layout)

        # Title
        title_label = QLabel(self.title)
        title_label.setStyleSheet("""
            color: rgba(255, 255, 255, 180);
            font-size: 10px;
            font-weight: bold;
            font-family: 'Orbitron', monospace;
            text-transform: uppercase;
            letter-spacing: 3px;
        """)
        layout.addWidget(title_label)

        # Value
        value_label = QLabel(self.value)
        value_label.setStyleSheet(f"""
            color: {self.color.name()};
            font-size: 32px;
            font-weight: bold;
            font-family: 'Orbitron', 'Consolas', monospace;
            text-shadow: 0 0 20px {self.color.name()};
            margin: 5px 0;
        """)
        layout.addWidget(value_label)

        # Subtitle
        if self.subtitle:
            subtitle_label = QLabel(self.subtitle)
            subtitle_label.setStyleSheet(f"""
                color: {self.color.name()};
                font-size: 11px;
                font-family: monospace;
            """)
            layout.addWidget(subtitle_label)

        # Alt kenarlık
        bottom_layout = QHBoxLayout()
        corner_bl = QLabel("└")
        corner_bl.setStyleSheet(f"color: {self.color.name()}; font-family: monospace; font-size: 16px;")
        bottom_layout.addWidget(corner_bl)
        bottom_layout.addStretch()
        corner_br = QLabel("┘")
        corner_br.setStyleSheet(f"color: {self.color.name()}; font-family: monospace; font-size: 16px;")
        bottom_layout.addWidget(corner_br)
        layout.addLayout(bottom_layout)

        self.setLayout(layout)

    def addAnimations(self):
        # Pulse animasyonu
        self.pulse_timer = QTimer()
        self.pulse_timer.timeout.connect(self.pulse)
        self.pulse_timer.start(3000)
        self.pulse_state = 0

    def pulse(self):
        self.pulse_state = 1 - self.pulse_state
        opacity = 0.3 if self.pulse_state else 0.6
        self.setStyleSheet(self.styleSheet() + f"{{ border: 1px solid rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, {int(opacity*255)}); }}")


class HUDSidebar(QWidget):
    """HUD tarzı sidebar - Terminal/Cyberpunk"""

    menuItemSelected = pyqtSignal(str)

    def __init__(self):
        super().__init__()
        self.selected_item = "dashboard"
        self.setupUI()
        self.addAnimations()

    def setupUI(self):
        self.setFixedWidth(220)
        self.setStyleSheet("""
            HUDSidebar {
                background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                    stop:0 rgba(0, 10, 30, 240),
                    stop:0.5 rgba(0, 20, 50, 250),
                    stop:1 rgba(0, 10, 30, 240));
                border-right: 2px solid #00ffff;
                position: relative;
            }
            HUDSidebar::before {
                content: '';
                position: absolute;
                top: 0;
                right: 0;
                width: 2px;
                height: 100%;
                background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
                    stop:0 #00ffff,
                    stop:0.5 #ffffff,
                    stop:1 #00ffff);
                animation: scan 2s linear infinite;
            }
        """)

        layout = QVBoxLayout()
        layout.setContentsMargins(0, 0, 0, 0)
        layout.setSpacing(0)

        # Logo - Cyberpunk tarzı
        logo_frame = QFrame()
        logo_frame.setFixedHeight(80)
        logo_frame.setStyleSheet("""
            QFrame {
                background: rgba(0, 0, 0, 200);
                border-bottom: 2px solid #ff00ff;
            }
        """)

        logo_layout = QVBoxLayout()
        logo_layout.setContentsMargins(20, 20, 20, 20)

        # ASCII art logo
        logo_text = QLabel("""
╔════════════════════╗
║   F I K A T I A    ║
║  MODELHANE SYSTEM  ║
╚════════════════════╝
        """)
        logo_text.setStyleSheet("""
            color: #00ffff;
            font-family: 'Consolas', 'Courier New', monospace;
            font-size: 12px;
            font-weight: bold;
            text-shadow: 0 0 10px #00ffff;
        """)
        logo_layout.addWidget(logo_text)

        logo_frame.setLayout(logo_layout)
        layout.addWidget(logo_frame)

        # Menu items
        menu_items = [
            ("dashboard", "[DASHBOARD]", "█", "#00ffff"),
            ("cnc", "[CNC_MODE]", "▓", "#ff00ff"),
            ("uretim", "[PRODUCTION]", "▒", "#00ff88"),
            ("projeler", "[PROJECTS]", "░", "#ffaa00"),
            ("siparisler", "[ORDERS]", "▓", "#ff6b6b"),
            ("teklifler", "[OFFERS]", "▒", "#4ecdc4"),
            ("analiz", "[ANALYSIS]", "░", "#a8e6cf"),
            ("admin", "[ADMIN]", "█", "#ff8cc8"),
        ]

        self.menu_buttons = []
        for item_id, text, pattern, color in menu_items:
            btn = HUDMenuButton(text, pattern, color, item_id == self.selected_item)
            btn.clicked.connect(lambda checked, mid=item_id: self.onMenuClick(mid))
            self.menu_buttons.append(btn)
            layout.addWidget(btn)

        layout.addStretch()

        # User panel - Terminal tarzı
        user_frame = QFrame()
        user_frame.setStyleSheet("""
            QFrame {
                background: rgba(0, 0, 0, 200);
                border-top: 2px solid #00ff00;
                padding: 15px;
            }
        """)

        user_layout = QVBoxLayout()
        user_info = QLabel("""
> user@fikatia:~$ whoami
admin
> user@fikatia:~$ sudo -i
[root@fikatia ~]#
        """)
        user_info.setStyleSheet("""
            color: #00ff00;
            font-family: 'Consolas', monospace;
            font-size: 10px;
        """)
        user_layout.addWidget(user_info)

        user_frame.setLayout(user_layout)
        layout.addWidget(user_frame)

        self.setLayout(layout)

    def addAnimations(self):
        self.scan_timer = QTimer()
        self.scan_timer.timeout.connect(self.scanAnimation)
        self.scan_timer.start(50)
        self.scan_pos = 0

    def scanAnimation(self):
        self.scan_pos = (self.scan_pos + 5) % 100

    def onMenuClick(self, menu_id):
        # Önceki seçimi temizle
        for btn in self.menu_buttons:
            btn.set_selected(False)

        # Yeni seçimi yap
        index = next(i for i, (mid, _, _, _) in enumerate([
            ("dashboard", "", "", ""), ("cnc", "", "", ""),
            ("uretim", "", "", ""), ("projeler", "", "", ""),
            ("siparisler", "", "", ""), ("teklifler", "", "", ""),
            ("analiz", "", "", ""), ("admin", "", "", "")
        ]) if mid == menu_id)
        self.menu_buttons[index].set_selected(True)

        self.selected_item = menu_id
        self.menuItemSelected.emit(menu_id)


class HUDMenuButton(QPushButton):
    """HUD menü butonu - Terminal tarzı"""

    def __init__(self, text, pattern, color="#00ffff", selected=False):
        super().__init__(text)
        self.color = QColor(color)
        self.pattern = pattern
        self.selected = selected
        self.setupStyle()

    def setupStyle(self):
        if self.selected:
            bg_color = f"rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, 50)"
            text_color = self.color.name()
            glow = f"0 0 10px {self.color.name()}"
        else:
            bg_color = "transparent"
            text_color = "rgba(255, 255, 255, 120)"
            glow = "none"

        self.setStyleSheet(f"""
            HUDMenuButton {{
                background-color: {bg_color};
                color: {text_color};
                border: none;
                border-left: 4px solid rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, 200);
                padding: 12px 20px;
                text-align: left;
                font-family: 'Consolas', 'Courier New', monospace;
                font-size: 11px;
                font-weight: bold;
                text-transform: uppercase;
                letter-spacing: 1px;
                text-shadow: {glow};
            }}
            HUDMenuButton:hover {{
                background-color: rgba({self.color.red()}, {self.color.green()}, {self.color.blue()}, 30);
                color: #ffffff;
                text-shadow: 0 0 10px {self.color.name()};
            }}
        """)

    def set_selected(self, selected):
        self.selected = selected
        self.setupStyle()


class HUDDashboard(QMainWindow):
    """HUD Dashboard Ana Penceres"""

    def __init__(self):
        super().__init__()
        self.setupSampleData()
        self.current_page = "dashboard"
        self.setupUI()
        self.addBackgroundEffects()

    def setupSampleData(self):
        """Örnek veriler"""
        self.projeler = [
            Proje(
                id="PRJ-001", ad="Otomatik Vites Sistemi", musteri="OtoTek A.Ş.",
                durum="Üretim", baslangic=datetime.now() - timedelta(days=30),
                bitis=datetime.now() + timedelta(days=45), bütce=250000,
                harcanan=125000, ilerleme=65, sorumlu="Ahmet Demir",
                takim_uyeleri=["Mehmet Kaya", "Ali Yılmaz"], oncelik="Kritik",
                risk_seviyesi="Orta"
            ),
        ]

    def setupUI(self):
        self.setWindowTitle("[FIKATIA] v2.0.1 - NEURAL INTERFACE")
        self.setGeometry(50, 50, 1600, 1000)
        self.setMinimumSize(1200, 800)

        # Cyberpunk/HUD theme
        self.setStyleSheet("""
            QMainWindow {
                background: #000000;
                background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grid" width="10" height="10" patternUnits="userSpaceOnUse"><path d="M 10 0 L 0 0 0 10" fill="none" stroke="rgba(0,255,255,0.1)" stroke-width="0.5"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
                color: #00ffff;
            }
            QWidget {
                font-family: 'Orbitron', 'Consolas', 'Courier New', monospace;
                color: rgba(255, 255, 255, 220);
            }
            QScrollArea {
                background: transparent;
                border: none;
            }
            QScrollBar:vertical {
                background: rgba(0, 20, 40, 150);
                width: 12px;
                border-radius: 6px;
                border: 1px solid rgba(0, 255, 255, 30);
            }
            QScrollBar::handle:vertical {
                background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
                    stop:0 #00ffff,
                    stop:0.5 #ffffff,
                    stop:1 #00ffff);
                border-radius: 5px;
                min-height: 20px;
            }
            QScrollBar::add-line:vertical,
            QScrollBar::sub-line:vertical {
                height: 0px;
            }
        """)

        # Merkezi widget
        central_widget = QWidget()
        self.setCentralWidget(central_widget)

        # Ana layout
        main_layout = QHBoxLayout()
        main_layout.setContentsMargins(0, 0, 0, 0)
        main_layout.setSpacing(0)

        # Sidebar
        self.sidebar = HUDSidebar()
        self.sidebar.menuItemSelected.connect(self.navigateToPage)
        main_layout.addWidget(self.sidebar)

        # İçerik alanı
        self.content_stack = QStackedWidget()
        self.content_stack.setStyleSheet("""
            QStackedWidget {
                background: rgba(0, 10, 20, 200);
                border: 1px solid rgba(0, 255, 255, 20);
            }
        """)

        # Sayfaları oluştur
        self.createPages()

        main_layout.addWidget(self.content_stack)
        central_widget.setLayout(main_layout)

    def createPages(self):
        """Tüm sayfaları oluştur"""
        # Dashboard
        dashboard_container = QWidget()
        dashboard_scroll = QScrollArea()
        dashboard_scroll.setWidgetResizable(True)
        dashboard_scroll.setWidget(self.createDashboardPage())
        dashboard_scroll.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff)
        dashboard_container.setLayout(QVBoxLayout())
        dashboard_container.layout().addWidget(dashboard_scroll)
        dashboard_container.layout().setContentsMargins(0, 0, 0, 0)
        self.content_stack.addWidget(dashboard_container)

        # Diğer sayfalar...
        for i in range(7):
            empty_page = QWidget()
            empty_layout = QVBoxLayout()
            empty_label = QLabel(f"Page {i+2} - Coming Soon")
            empty_label.setStyleSheet("color: #00ffff; font-size: 24px; text-align: center;")
            empty_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
            empty_layout.addWidget(empty_label)
            empty_page.setLayout(empty_layout)
            self.content_stack.addWidget(empty_page)

    def createDashboardPage(self):
        """Dashboard sayfası - HUD tarzı"""
        page = QWidget()
        page.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)

        main_layout = QVBoxLayout()
        main_layout.setContentsMargins(30, 30, 30, 30)
        main_layout.setSpacing(20)

        # Page Header - Matrix rain efekti
        header_frame = QFrame()
        header_frame.setStyleSheet("""
            QFrame {
                background: rgba(0, 0, 0, 200);
                border: 2px solid #00ffff;
                border-radius: 0px;
                padding: 20px;
                position: relative;
            }
        """)

        header_layout = QVBoxLayout()

        # ASCII art header
        ascii_header = QLabel("""
╔════════════════════════════════════════════════════════════╗
║  [SYSTEM INITIALIZED]                                       ║
║  > NEURAL INTERFACE ACTIVE                                   ║
║  > SCANNING PROTOCOLS...                                     ║
╚════════════════════════════════════════════════════════════╝
        """)
        ascii_header.setStyleSheet("""
            color: #00ff00;
            font-family: 'Consolas', monospace;
            font-size: 12px;
            text-shadow: 0 0 5px #00ff00;
        """)
        header_layout.addWidget(ascii_header)

        # Main title with glitch effect
        title_label = QLabel("DASHBOARD CONTROL")
        title_label.setStyleSheet("""
            color: #00ffff;
            font-size: 32px;
            font-weight: bold;
            text-transform: uppercase;
            letter-spacing: 5px;
            text-shadow: 0 0 20px #00ffff;
            margin: 20px 0;
        """)
        title_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
        header_layout.addWidget(title_label)

        header_frame.setLayout(header_layout)
        main_layout.addWidget(header_frame)

        # Stats Cards - Neon ve hologram
        cards_row1 = QHBoxLayout()
        cards_row1.setSpacing(20)

        cards1 = [
            ("ACTIVE_PROJECTS", "24", "2 critical", "◈", "#00ffff"),
            ("PRODUCTION_RATE", "%87.5", "+5.2%", "◊", "#ff00ff"),
            ("SYSTEM_STATUS", "ONLINE", "All nominal", "◉", "#00ff88"),
        ]

        for title, value, subtitle, icon, color in cards1:
            card = HUDCard(title, value, subtitle, icon, color)
            cards_row1.addWidget(card)

        main_layout.addLayout(cards_row1)

        # Second row
        cards_row2 = QHBoxLayout()
        cards_row2.setSpacing(20)

        cards2 = [
            ("MACHINES_ACTIVE", "6/8", "2 maintenance", "◈", "#ffaa00"),
            ("ORDERS_PENDING", "42", "8 urgent", "◊", "#ff6b6b"),
            ("NETWORK_LOAD", "67%", "Within limits", "◉", "#4ecdc4"),
        ]

        for title, value, subtitle, icon, color in cards2:
            card = HUDCard(title, value, subtitle, icon, color)
            cards_row2.addWidget(card)

        main_layout.addLayout(cards_row2)

        # Terminal section
        terminal_frame = QFrame()
        terminal_frame.setStyleSheet("""
            QFrame {
                background: rgba(0, 0, 0, 230);
                border: 2px solid #00ff00;
                border-radius: 0px;
                padding: 20px;
                font-family: 'Consolas', monospace;
            }
        """)

        terminal_layout = QVBoxLayout()

        # Terminal header
        term_header = QLabel("[TERMINAL OUTPUT] - Real-time System Monitor")
        term_header.setStyleSheet("color: #00ff00; font-size: 14px; font-weight: bold;")
        terminal_layout.addWidget(term_header)

        # Terminal content
        terminal = QTextEdit()
        terminal.setReadOnly(True)
        terminal.setMaximumHeight(200)
        terminal.setStyleSheet("""
            QTextEdit {
                background: #000000;
                color: #00ff00;
                border: 1px solid #00ff00;
                font-family: 'Consolas', monospace;
                font-size: 11px;
                padding: 10px;
            }
        """)

        # Simulate terminal output
        terminal_output = """
root@fikatia:~$ ./monitor.sh
[2024.01.15 14:35:22] > System check initiated...
[2024.01.15 14:35:23] > Neural interface: ONLINE
[2024.01.15 14:35:24] > CNC-001: Status - RUNNING (95% efficiency)
[2024.01.15 14:35:25] > CNC-002: Status - IDLE
[2024.01.15 14:35:26] > Network load: 67% (Optimal)
[2024.01.15 14:35:27] > New order received: SIP-2024-003
[2024.01.15 14:35:28] > Alert: Temperature threshold exceeded on CNC-003
[2024.01.15 14:35:29] > Automated diagnostics initiated...
[2024.01.15 14:35:30] > System: All modules operational
        """
        terminal.setPlainText(terminal_output)
        terminal_layout.addWidget(terminal)

        terminal_frame.setLayout(terminal_layout)
        main_layout.addWidget(terminal_frame)

        # Action buttons
        actions_layout = QHBoxLayout()
        actions_layout.setSpacing(15)

        actions = [
            ("NEW_PROJECT", "#00ffff"),
            ("MAINTENANCE", "#ff00ff"),
            ("SYSTEM_SCAN", "#00ff88"),
            ("EMERGENCY_STOP", "#ff0000"),
        ]

        for text, color in actions:
            btn = HUDButton(text, color)
            btn.setMinimumHeight(50)
            actions_layout.addWidget(btn)

        main_layout.addLayout(actions_layout)

        # Footer with status bar
        footer_frame = QFrame()
        footer_frame.setStyleSheet("""
            QFrame {
                background: rgba(0, 20, 40, 180);
                border-top: 2px solid #00ffff;
                padding: 10px 20px;
            }
        """)

        footer_layout = QHBoxLayout()

        status = QLabel("[STATUS]: OPERATIONAL | [TIME]: " + datetime.now().strftime("%H:%M:%S"))
        status.setStyleSheet("color: #00ffff; font-family: monospace; font-size: 11px;")
        footer_layout.addWidget(status)

        footer_layout.addStretch()

        version = QLabel("FIKATIA OS v2.0.1 | Build 2024.01")
        version.setStyleSheet("color: rgba(255, 255, 255, 150); font-family: monospace; font-size: 11px;")
        footer_layout.addWidget(version)

        footer_frame.setLayout(footer_layout)
        main_layout.addWidget(footer_frame)

        main_layout.addStretch()
        page.setLayout(main_layout)

        # Terminal update timer
        self.terminal_timer = QTimer()
        self.terminal_timer.timeout.connect(lambda: self.updateTerminal(terminal))
        self.terminal_timer.start(2000)

        return page

    def updateTerminal(self, terminal):
        """Terminal içeriğini güncelle"""
        lines = terminal.toPlainText().split('\n')
        timestamp = datetime.now().strftime("%H:%M:%S")

        # Yeni log satırı ekle
        new_log = f"[{timestamp}] > System monitoring... All nominal"

        # Son 20 satırı tut
        lines.append(new_log)
        if len(lines) > 20:
            lines = lines[-20:]

        terminal.setPlainText('\n'.join(lines))

        # En alta scroll et
        cursor = terminal.textCursor()
        cursor.movePosition(cursor.MoveOperation.End)
        terminal.setTextCursor(cursor)

    def addBackgroundEffects(self):
        """Arka plan animasyonları"""
        self.bg_timer = QTimer()
        self.bg_timer.timeout.connect(self.animateBackground)
        self.bg_timer.start(100)

    def animateBackground(self):
        # Arka plan efektleri buraya eklenebilir
        pass

    def navigateToPage(self, page_id):
        """Sayfa geçişi"""
        self.current_page = page_id

        page_map = {
            "dashboard": 0,
            "cnc": 1,
            "uretim": 2,
            "projeler": 3,
            "siparisler": 4,
            "teklifler": 5,
            "analiz": 6,
            "admin": 7
        }

        if page_id in page_map:
            self.content_stack.setCurrentIndex(page_map[page_id])


def main():
    app = QApplication(sys.argv)
    app.setStyle('Fusion')

    # Cyberpunk font - Eğer yüklenemezse fallback kullanılır
    try:
        font_id = QFontDatabase.addApplicationFont("Orbitron-VariableFont_wght.ttf")
        if font_id == -1:
            print("Orbitron font not found, using fallback...")
    except:
        pass

    # Monospace font
    font = QFont("Consolas", 11)
    app.setFont(font)

    window = HUDDashboard()
    window.showMaximized()

    sys.exit(app.exec())


if __name__ == "__main__":
    main()