""" Crea eventi di test per verificare funzionalità Preferiti e Reminder """ import sqlite3 import os from datetime import datetime, timedelta DB_PATH = os.path.join(os.path.dirname(__file__), 'database', 'mediatrack.db') def create_test_events(): print("=== Creazione eventi di test ===\n") conn = sqlite3.connect(DB_PATH) conn.row_factory = sqlite3.Row cur = conn.cursor() try: # Trova o crea un prodotto cur.execute("SELECT id_media, titolo_ufficiale FROM AnagraficaMedia WHERE id_media IS NOT NULL AND id_media != '' LIMIT 1") product = cur.fetchone() if not product: print("Nessun prodotto trovato. Creo un prodotto di test...") # Genera un ID univoco per il test (id_media è TEXT) from datetime import datetime id_media = f"TEST_{datetime.now().strftime('%Y%m%d_%H%M%S')}" titolo = 'Film Test per Eventi' cur.execute(""" INSERT INTO AnagraficaMedia (id_media, titolo_ufficiale, tipo) VALUES (?, ?, ?) """, (id_media, titolo, 'FILM')) conn.commit() print(f"[OK] Prodotto creato: {titolo} (ID: {id_media})") else: id_media = product['id_media'] titolo = product['titolo_ufficiale'] print(f"Uso prodotto esistente: {titolo} (ID: {id_media})") if not id_media: print("[ERROR] ID prodotto non valido!") conn.close() return # Trova un tipo evento (preferibilmente MERCATO o NOTE) cur.execute("SELECT id_tipo_evento, nome_evento FROM TipiEvento WHERE attivo = 1 LIMIT 1") event_type = cur.fetchone() if not event_type: print("[ERROR] Nessun tipo evento trovato!") conn.close() return id_tipo = event_type['id_tipo_evento'] nome_tipo = event_type['nome_evento'] print(f"Uso tipo evento: {nome_tipo} (ID: {id_tipo})\n") # 1. EVENTO PREFERITO print("Creazione evento PREFERITO...") data_oggi = datetime.now().strftime('%Y-%m-%d') cur.execute(""" INSERT INTO LogAggiornamenti (id_media_fk, id_tipo_evento_fk, data_evento, dettaglio_contesto, note, preferito, privato, created_by, data_reminder) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( id_media, id_tipo, data_oggi, 'Evento di test - Preferito', 'Questo è un evento marcato come preferito per testare la funzionalità', 1, # preferito = TRUE 0, # privato = FALSE (pubblico) 1, # created_by = user 1 None # nessun reminder )) print(f"[OK] Evento preferito creato (ID: {cur.lastrowid})") # 2. EVENTO CON REMINDER IN SCADENZA (tra 3 giorni) print("\nCreazione evento REMINDER (in scadenza)...") data_reminder_scadenza = (datetime.now() + timedelta(days=3)).strftime('%Y-%m-%d') cur.execute(""" INSERT INTO LogAggiornamenti (id_media_fk, id_tipo_evento_fk, data_evento, dettaglio_contesto, note, preferito, privato, created_by, data_reminder) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( id_media, id_tipo, data_oggi, 'Evento di test - Reminder in scadenza', 'Questo evento ha un reminder tra 3 giorni', 0, # preferito = FALSE 0, # privato = FALSE (pubblico) 1, # created_by = user 1 data_reminder_scadenza )) print(f"[OK] Evento reminder in scadenza creato (ID: {cur.lastrowid})") print(f" Data reminder: {data_reminder_scadenza}") # 3. EVENTO CON REMINDER FUTURO (tra 15 giorni) print("\nCreazione evento REMINDER (futuro)...") data_reminder_futuro = (datetime.now() + timedelta(days=15)).strftime('%Y-%m-%d') cur.execute(""" INSERT INTO LogAggiornamenti (id_media_fk, id_tipo_evento_fk, data_evento, dettaglio_contesto, note, preferito, privato, created_by, data_reminder) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( id_media, id_tipo, data_oggi, 'Evento di test - Reminder futuro', 'Questo evento ha un reminder tra 15 giorni', 0, # preferito = FALSE 0, # privato = FALSE (pubblico) 1, # created_by = user 1 data_reminder_futuro )) print(f"[OK] Evento reminder futuro creato (ID: {cur.lastrowid})") print(f" Data reminder: {data_reminder_futuro}") # 4. EVENTO CON REMINDER PASSATO (2 giorni fa) print("\nCreazione evento REMINDER (passato)...") data_reminder_passato = (datetime.now() - timedelta(days=2)).strftime('%Y-%m-%d') cur.execute(""" INSERT INTO LogAggiornamenti (id_media_fk, id_tipo_evento_fk, data_evento, dettaglio_contesto, note, preferito, privato, created_by, data_reminder) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( id_media, id_tipo, data_oggi, 'Evento di test - Reminder passato', 'Questo evento aveva un reminder 2 giorni fa', 0, # preferito = FALSE 0, # privato = FALSE (pubblico) 1, # created_by = user 1 data_reminder_passato )) print(f"[OK] Evento reminder passato creato (ID: {cur.lastrowid})") print(f" Data reminder: {data_reminder_passato}") # 5. EVENTO PREFERITO + REMINDER + PRIVATO print("\nCreazione evento COMBO (preferito + reminder + privato)...") data_reminder_combo = (datetime.now() + timedelta(days=1)).strftime('%Y-%m-%d') cur.execute(""" INSERT INTO LogAggiornamenti (id_media_fk, id_tipo_evento_fk, data_evento, dettaglio_contesto, note, preferito, privato, created_by, data_reminder) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) """, ( id_media, id_tipo, data_oggi, 'Evento di test - COMBO', 'Evento preferito, con reminder domani e privato', 1, # preferito = TRUE 1, # privato = TRUE 1, # created_by = user 1 data_reminder_combo )) print(f"[OK] Evento combo creato (ID: {cur.lastrowid})") print(f" Preferito: SI, Privato: SI, Reminder: {data_reminder_combo}") conn.commit() # Verifica finale print("\n=== Verifica finale ===") cur.execute("SELECT COUNT(*) FROM LogAggiornamenti WHERE preferito = 1") print(f"Totale eventi preferiti: {cur.fetchone()[0]}") cur.execute("SELECT COUNT(*) FROM LogAggiornamenti WHERE data_reminder IS NOT NULL AND data_reminder != ''") print(f"Totale eventi con reminder: {cur.fetchone()[0]}") print("\n[OK] Eventi di test creati con successo!") print("\nOra ricarica la dashboard - i pulsanti Preferiti e Reminder dovrebbero essere visibili!") except Exception as e: print(f"[ERROR] Errore: {e}") conn.rollback() finally: conn.close() if __name__ == '__main__': create_test_events()