"""
Module xây dựng cột hiển thị Telemetry & Logs bên phải của Control Center GUI.
Bao gồm Tactical Brain Advisor, Map Modifier Filter Card, Movement Plan và Log Viewer Textbox.
"""

import customtkinter as ctk
from src.assistant_tool import ui_theme as theme


def build_right_telemetry_and_logs(app, parent: ctk.CTkFrame) -> None:
    """
    Xây dựng cột bên phải và gán trực tiếp các thành phần vào instance `app`.
    """
    telem_card = ctk.CTkFrame(
        parent,
        fg_color=theme.c("bg_header"),
        border_color=theme.c("card_border"),
        border_width=1,
        corner_radius=theme.CARD_CORNER_RADIUS
    )
    telem_card.pack(fill="x", padx=6, pady=(4, 2))

    # Row 1: Tactical Advisor + Map Mods
    r1 = ctk.CTkFrame(telem_card, fg_color="transparent")
    r1.pack(fill="x", padx=6, pady=(4, 1))

    app.tactical_card = ctk.CTkFrame(
        r1, fg_color="#1e1b4b", border_color="#6366f1", border_width=1, corner_radius=4
    )
    app.tactical_card.pack(side="left", fill="x", expand=True, padx=(0, 4))
    app.lbl_tactical = ctk.CTkLabel(
        app.tactical_card,
        text="Tactical: F10 để tư vấn",
        font=ctk.CTkFont(family="Segoe UI", size=10, weight="bold"),
        text_color=theme.c("spirit")
    )
    app.lbl_tactical.pack(padx=6, pady=2, anchor="w")

    app.mod_filter_card = ctk.CTkFrame(
        r1, fg_color="#141d2b", border_color="#0284c7", border_width=1, corner_radius=4
    )
    app.mod_filter_card.pack(side="right", fill="x", expand=True)

    mod_hdr = ctk.CTkFrame(app.mod_filter_card, fg_color="transparent")
    mod_hdr.pack(fill="x", padx=4, pady=2)

    app.lbl_mod_filter_title = ctk.CTkLabel(
        mod_hdr,
        text="Map mods:",
        font=ctk.CTkFont(family="Segoe UI", size=10, weight="bold"),
        text_color=theme.c("info_cyan")
    )
    app.lbl_mod_filter_title.pack(side="left", padx=(0, 4))

    app.lbl_mod_safety_badge = ctk.CTkLabel(
        mod_hdr,
        text="AN TOÀN",
        font=ctk.CTkFont(size=9, weight="bold"),
        text_color=theme.c("ok"),
        fg_color="#064e3b",
        corner_radius=3,
        padx=4,
        pady=0
    )
    app.lbl_mod_safety_badge.pack(side="left", padx=(0, 4))

    app.btn_eval_mods = ctk.CTkButton(
        mod_hdr,
        text="Đánh giá mod clipboard",
        font=ctk.CTkFont(size=9, weight="bold"),
        fg_color=theme.c("info"),
        hover_color=theme.c("info_hover"),
        height=18,
        command=app._on_evaluate_map_mods_clicked
    )
    app.btn_eval_mods.pack(side="right")

    # Row 2: Mod Report + Movement Plan
    r2 = ctk.CTkFrame(telem_card, fg_color="transparent")
    r2.pack(fill="x", padx=6, pady=(1, 4))

    app.lbl_mod_report = ctk.CTkLabel(
        r2,
        text="Chưa quét map · Zero-disk",
        font=ctk.CTkFont(size=9),
        text_color=theme.c("text_muted"),
        anchor="w"
    )
    app.lbl_mod_report.pack(side="left", fill="x", expand=True)

    app.lbl_movement_plan = ctk.CTkLabel(
        r2,
        text="Kế hoạch: chờ khu vực đã xác thực",
        font=ctk.CTkFont(size=10, weight="bold"),
        text_color=theme.c("info_cyan"),
        anchor="e"
    )
    app.lbl_movement_plan.pack(side="right")

    # Log Toolbar & Textbox
    log_header = ctk.CTkFrame(parent, fg_color="transparent")
    log_header.pack(fill="x", padx=6, pady=(2, 1))

    ctk.CTkLabel(
        log_header,
        text="Nhật ký",
        font=ctk.CTkFont(family="Segoe UI", size=11, weight="bold"),
        text_color=theme.c("gold_light")
    ).pack(side="left")

    btn_open_captures = ctk.CTkButton(
        log_header,
        text="Ảnh",
        font=ctk.CTkFont(size=9),
        width=40,
        height=18,
        fg_color=theme.c("muted_btn"),
        hover_color="#475569",
        command=app._open_captures_folder
    )
    btn_open_captures.pack(side="right", padx=(3, 0))

    btn_clear_log = ctk.CTkButton(
        log_header,
        text="Xóa",
        font=ctk.CTkFont(size=9),
        width=36,
        height=18,
        fg_color=theme.c("muted_btn"),
        hover_color="#475569",
        command=app._clear_log
    )
    btn_clear_log.pack(side="right")

    app.log_textbox = ctk.CTkTextbox(
        parent,
        fg_color=theme.c("log_bg"),
        text_color=theme.c("log_fg"),
        font=ctk.CTkFont(family="Consolas", size=10),
        corner_radius=theme.CARD_CORNER_RADIUS
    )
    app.log_textbox.pack(fill="both", expand=True, padx=6, pady=(0, 6))
