"""Caminhos e constantes do agente. Segredos e dados ficam fora de ~/projetos (que e publico)."""
import os
from pathlib import Path
from zoneinfo import ZoneInfo

HOME = Path.home()
SEGREDOS = HOME / ".config/fundacao/agente"
DADOS = HOME / ".local/share/agente-tarefas"
CLIENTE_OAUTH = HOME / ".config/fundacao/rclone-client.json"
ARQ_ENV = HOME / ".config/fundacao/env"

DB_MENSAGENS = DADOS / "mensagens.db"  # escrito pelo coletor de WhatsApp
DB_AGENTE = DADOS / "agente.db"        # itens, cache de midias e progresso
DIR_MIDIA = DADOS / "midia"
API_WHATSAPP = "http://127.0.0.1:3930"

FUSO = ZoneInfo("America/Sao_Paulo")

# Modelos (precos de out/2026 por 1M tokens: entrada $0,25 texto / $0,50 audio; saida $1,50)
MODELO_EXTRACAO = "gemini-3.1-flash-lite"
MODELO_MIDIA = "gemini-3.1-flash-lite"
MODELO_RESUMO = "gemini-3.1-flash-lite"

# Janelas de leitura do WhatsApp
DIAS_PROJETOS = 60       # varredura inicial: projetos e itens com data futura
DIAS_TAREFAS = 7         # tarefas sem data so contam se vierem da ultima semana
MSGS_POR_LOTE = 150
MSGS_CONTEXTO = 15
MAX_MIDIA_MB = 20

CONTAS_GOOGLE = {
    # conta pessoal: le a agenda e escreve na agenda "Agente"
    "pessoal": ["https://www.googleapis.com/auth/calendar"],
    # conta do ITA: Classroom (prazos e avisos) e a agenda que o Classroom cria
    "ita": [
        "https://www.googleapis.com/auth/classroom.courses.readonly",
        "https://www.googleapis.com/auth/classroom.student-submissions.me.readonly",
        "https://www.googleapis.com/auth/classroom.announcements.readonly",
        "https://www.googleapis.com/auth/calendar.readonly",
    ],
}


def carregar_env():
    """Le ~/.config/fundacao/env (CHAVE=valor) para os.environ."""
    for linha in ARQ_ENV.read_text().splitlines():
        if "=" in linha and not linha.lstrip().startswith("#"):
            k, v = linha.split("=", 1)
            os.environ.setdefault(k.strip(), v.strip())


def agenda_agente_id() -> str:
    return (SEGREDOS / "agenda-agente-id.txt").read_text().strip()
