Checkpoint: Implémentation du résumé automatique généré par l'IA pour chaque article RSS (veille et AAP), marquage lu/non lu avec point bleu et fond teinté, bouton "Tout marquer comme lu", compteurs non lus dans la sidebar et dans les titres de page. Migration BDD : table article_reads + colonne iaResume dans veille_items et aap_items.
This commit is contained in:
@@ -82,6 +82,8 @@ export const veilleItems = mysqlTable("veille_items", {
|
||||
iaCategorie: varchar("iaCategorie", { length: 128 }),
|
||||
iaClassifiedBy: mysqlEnum("iaClassifiedBy", ["ia", "rules"]),
|
||||
iaReason: text("iaReason"),
|
||||
// Résumé généré par l'IA
|
||||
iaResume: text("iaResume"),
|
||||
});
|
||||
|
||||
export type VeilleItem = typeof veilleItems.$inferSelect;
|
||||
@@ -107,6 +109,8 @@ export const aapItems = mysqlTable("aap_items", {
|
||||
iaCategorie: varchar("iaCategorie", { length: 128 }),
|
||||
iaClassifiedBy: mysqlEnum("iaClassifiedBy", ["ia", "rules"]),
|
||||
iaReason: text("iaReason"),
|
||||
// Résumé généré par l'IA
|
||||
iaResume: text("iaResume"),
|
||||
});
|
||||
|
||||
export type AapItem = typeof aapItems.$inferSelect;
|
||||
@@ -196,3 +200,16 @@ export const rssSettings = mysqlTable("rss_settings", {
|
||||
|
||||
export type RssSettings = typeof rssSettings.$inferSelect;
|
||||
export type InsertRssSettings = typeof rssSettings.$inferInsert;
|
||||
|
||||
// ─── Suivi de lecture des articles ──────────────────────────────────────────
|
||||
|
||||
export const articleReads = mysqlTable("article_reads", {
|
||||
id: int("id").autoincrement().primaryKey(),
|
||||
userId: int("userId").notNull(),
|
||||
articleType: mysqlEnum("articleType", ["veille", "aap"]).notNull(),
|
||||
articleId: int("articleId").notNull(),
|
||||
readAt: timestamp("readAt").defaultNow().notNull(),
|
||||
});
|
||||
|
||||
export type ArticleRead = typeof articleReads.$inferSelect;
|
||||
export type InsertArticleRead = typeof articleReads.$inferInsert;
|
||||
|
||||
Reference in New Issue
Block a user