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; } } }