# (c) cavaliba.com - tests / helper_telemetry

from datetime import UTC, datetime

import app_home.cache as cache
from app_data.models import DataTelemetryRaw
from app_home.models import CavalibaConfiguration

# Saturday 2026-10-24 22:00 Europe/Paris (CEST)
TELEMETRY_T0 = datetime(2026, 10, 24, 20, 0, tzinfo=UTC)


def add_telemetry_raw(ts, key, type="counter", value=1, id="", svalue=""):
    """Insert a raw telemetry event with an explicit timestamp."""

    raw = DataTelemetryRaw.objects.create(
        key=key, type=type, value=value, distinct_id=id, svalue=svalue
    )
    DataTelemetryRaw.objects.filter(pk=raw.pk).update(timestamp=ts)
    return raw


def set_telemetry_config(keyname, value):
    """Store a home configuration value and reload the configuration cache."""

    CavalibaConfiguration.objects.update_or_create(
        appname="home", keyname=keyname, defaults={"value": value}
    )
    cache.clear()
