using System;
using Microsoft.EntityFrameworkCore;
namespace ManagerService.Data
{
///
/// Compteur mensuel de questions par thème, pour une instance.
///
/// ⚠️ **C'est cette table qui rend tenable la promesse du §8.4 des CGU** — « les
/// regroupements par thème sont conservés au-delà, sous forme agrégée ». Sans elle, le
/// regroupement vit dans , donc la purge du 90ᵉ jour
/// l'emporte avec la question : le client perdrait tout son historique au 91ᵉ jour.
///
/// Elle ne porte **que des compteurs** : ni texte de question, ni identifiant de session,
/// ni langue. Aucune donnée personnelle, donc rien qui justifierait de la purger — c'est
/// précisément ce qui l'autorise à survivre aux questions dont elle est issue.
///
[Index(nameof(InstanceId), nameof(Month))]
public class QuestionThemeMonthly
{
public long Id { get; set; }
public string InstanceId { get; set; }
/// Premier jour du mois concerné, en UTC. La granularité est le mois, pas le jour.
public DateTime Month { get; set; }
///
/// Libellé du thème, pris dans .
///
/// ⚠️ Volontairement une liste fixe et non des thèmes découverts par l'IA : deux mois
/// ne se comparent que si leurs thèmes portent le même nom. Des libellés régénérés à
/// chaque passage produiraient « Horaires » en janvier et « Questions d'horaires » en
/// février — deux lignes distinctes, et une courbe qui ne veut rien dire.
///
public string Theme { get; set; }
public int Count { get; set; }
}
}