#!/usr/bin/env python3
"""
Ghost Agency - AI Content Generation Engine
Automated social media content calendar + post generation + scheduling
"""

import os
import json
import sqlite3
import hashlib
import time
import random
from pathlib import Path
from datetime import datetime, timedelta
from typing import Dict, List, Any, Optional

LEADS_DIR = Path("/home/ubuntu/GhostAgency")
DB_FILE = Path("/home/ubuntu/GhostAgency") / "revenue_bots.db"
CONTENT_DB = Path("/home/ubuntu/GhostAgency") / "content_calendar.db"
BROKER_DB = Path("/home/ubuntu/GhostAgency") / "lead_broker.db"

# ============================================================
# CONTENT TEMPLATES - SIMPLIFIED
# ============================================================

CONTENT_TEMPLATES = {
    "ristorante": {
        "post": [
            "Oggi nel menu: {piatto_speciale}! Venite a provarlo da {nome}!",
            "Il segreto del nostro {piatto_famoso}? Ingredienti freschi, passione e tradizione.",
            "Giovedi gnocchi? Da {nome} li facciamo come una volta.",
            "Il weekend si avvicina... e noi siamo pronti! Da {nome} trovi: {piatti_top}"
        ],
        "story": [
            "Dietro le quinte: prepariamo {piatto}. Swipe per vedere il risultato!",
            "Sapevi che il nostro {ingrediente} arriva da {produttore_locale}?",
            "Oggi lo chef consiglia: {piatto_giorno}. Disponibile fino a esaurimento!"
        ],
        "reel": [
            "Da ingredienti a capolavoro in 30 secondi. {piatto}: dalla cucina al tuo tavolo."
        ]
    },
    "pizzeria": {
        "post": [
            "La vera pizza napoletana a Parma? Solo da {nome}! Impasto 24h, pomodoro San Marzano, mozzarella di bufala.",
            "Margherita o Diavola? Da {nome} non devi scegliere... puoi avere entrambe!",
            "Venerdi pizza? La risposta e sempre SI. Da {nome} trovi: {pizze_top}"
        ],
        "story": [
            "L'impasto riposa 24h... la magia accade nel forno a 450 gradi.",
            "Il segreto? Pomodoro San Marzano DOP + Mozzarella di Bufala Campana DOP."
        ]
    },
    "gelateria": {
        "post": [
            "Nuovo gusto della settimana: {gusto_nuovo}! Fatto come una volta: latte fresco, panna, ingredienti veri.",
            "Gelato artigianale = niente coloranti, niente aromi artificiali, solo ingredienti veri."
        ],
        "story": [
            "Oggi prepariamo: {gusto_giorno}. Dagli ingredienti al cono in 60 secondi."
        ]
    },
    "caffetteria": {
        "post": [
            "Il tuo caffe del mattino merita di essere speciale. Da {nome}: caffe specialty, latte art, dolci fatti in casa.",
            "Cappuccino o Flat White? Da {nome} li facciamo come a Melbourne."
        ],
        "story": [
            "La nostra miscela: 100% Arabica, tostata artigianalmente."
        ]
    },
    "bar": {
        "post": [
            "Aperitivo time! Da {nome} trovi i migliori cocktail di Parma.",
            "Dopo lavoro? Da {nome} l'aperitivo e un'arte."
        ],
        "story": [
            "Shakeriamo il nostro {cocktail_famoso}."
        ]
    },
    "parrucchiere": {
        "post": [
            "Nuovo taglio? Nuovo colore? Nuovo te! Da {nome} trasformiamo il tuo look.",
            "Il balayage che sognavi? Da {nome} lo facciamo su misura per te."
        ],
        "story": [
            "Trasformazione completa: dal prima al dopo."
        ]
    },
    "centro_estetico": {
        "post": [
            "Tempo per te? Da {nome} ti coccoliamo dalla testa ai piedi.",
            "La tua pelle ti ringraziera. Da {nome}: trattamenti viso e corpo con prodotti premium."
        ],
        "story": [
            "Trattamento del giorno: {trattamento_giorno}."
        ]
    },
    "autofficina": {
        "post": [
            "La tua auto merita le migliori cure. Da {nome}: tagliandi, revisioni, gomme, diagnosi elettronica.",
            "Prima di partire per le vacanze: controlliamo tutto noi! Check-up completo pre-viaggio."
        ],
        "story": [
            "Oggi in officina: {intervento_giorno}."
        ]
    },
    "dentista": {
        "post": [
            "Il tuo sorriso merita il meglio. Da {nome}: igiene, sbiancamento, ortodonzia, implantologia.",
            "Paura del dentista? Da {nome} ti mettiamo a tuo agio. Anestesia indolore, tecnologie avanzate."
        ],
        "story": [
            "Sbiancamento professionale: prima/dopo."
        ]
    },
    "default": {
        "post": [
            "Da {nome} trovi qualita, professionalita e passione. Servizi: {servizi_top}."
        ],
        "story": [
            "Dietro le quinte da {nome}."
        ]
    }
}

HASHTAGS_BY_CATEGORY = {
    "ristorante": ["#ristoranteparma", "#parmafood", "#foodporn", "#ristoranteitaliano", "#cena", "#pranzo", "#foodie", "#mangiareparma"],
    "pizzeria": ["#pizzeriaparma", "#pizzanapoletana", "#pizza", "#pizzalover", "#pizzeria", "#parmafood", "#foodporn"],
    "gelateria": ["#gelateriaparma", "#gelatoartigianale", "#gelato", "#gelatolover", "#parmafood", "#dolce"],
    "caffetteria": ["#caffetteriaparma", "#caffe", "#cappuccino", "#latteart", "#coffeelover", "#parmafood"],
    "bar": ["#barparma", "#aperitivoparma", "#cocktail", "#aperitivo", "#drink", "#parmanightlife"],
    "parrucchiere": ["#parrucchiereparma", "#hair", "#hairstyle", "#tagliocapelli", "#colorecapelli", "#parmabeauty"],
    "centro_estetico": ["#centroesteticoparma", "#estetista", "#skincare", "#trattamentiviso", "#beauty", "#parmabeauty"],
    "autofficina": ["#autofficinaparma", "#meccanico", "#tagliando", "#revisione", "#gomme", "#auto"],
    "dentista": ["#dentistaparma", "#sorriso", "#sbiancamento", "#ortodonzia", "#implanti", "#saluteorale"],
    "default": ["#parma", "#localbusiness", "#supportlocal", "#smallbusiness"]
}

HASHTAGS_GENERAL = ["#parma", "#parmafood", "#localbusiness", "#supportlocal", "#smallbusiness", "#madeinparma"]

# ============================================================
# AI CONTENT ENGINE CLASS
# ============================================================

class AIContentEngine:
    def __init__(self):
        self.content_db_path = str(CONTENT_DB)
        self.openrouter_api_key = os.getenv("OPENROUTER_API_KEY", "")
        self.init_content_db()
    
    def init_content_db(self):
        conn = sqlite3.connect(self.content_db_path)
        c = conn.cursor()
        c.execute("""CREATE TABLE IF NOT EXISTS content_posts (
            id TEXT PRIMARY KEY,
            client_id TEXT NOT NULL,
            client_name TEXT,
            client_category TEXT,
            platform TEXT,
            content_type TEXT,
            caption TEXT,
            hashtags TEXT,
            image_prompt TEXT,
            scheduled_at TIMESTAMP,
            status TEXT DEFAULT 'draft',
            template_used TEXT,
            engagement_prediction REAL,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            published_at TIMESTAMP,
            platform_post_id TEXT,
            metrics TEXT
        )""")
        c.execute("""CREATE TABLE IF NOT EXISTS content_calendar (
            id TEXT PRIMARY KEY,
            client_id TEXT,
            week_start DATE,
            posts_count INTEGER,
            status TEXT DEFAULT 'planned',
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )""")
        conn.commit()
        conn.close()
    
    def get_templates_for_category(self, category: str, platform: str, content_type: str) -> List[str]:
        cat_templates = CONTENT_TEMPLATES.get(category.lower(), CONTENT_TEMPLATES["default"])
        return cat_templates.get(content_type, cat_templates.get("post", []))
    
    def get_hashtags(self, category: str, count: int = 15) -> List[str]:
        cat_tags = HASHTAGS_BY_CATEGORY.get(category.lower(), HASHTAGS_BY_CATEGORY["default"])
        general = ["#parma", "#parmafood", "#localbusiness", "#supportlocal", "#smallbusiness", "#madeinparma"]
        all_tags = cat_tags + ["#parma", "#parmafood", "#localbusiness", "#supportlocal", "#smallbusiness", "#madeinparma"]
        random.shuffle(all_tags)
        return all_tags[:count]
    
    def generate_post_content(self, client: Dict, platform: str, content_type: str, template: str = None) -> Dict:
        category = client.get("categoria", "").lower()
        nome = client.get("nome", "")
        telefono = client.get("telefono", "")
        indirizzo = client.get("indirizzo", "")
        
        templates = self.get_templates_for_category(category, platform, content_type)
        if not templates:
            templates = CONTENT_TEMPLATES["default"].get(content_type, ["Da {nome} trovi qualita e professionalita."])
        
        template_text = template if template else random.choice(templates)
        
        filled_caption = template_text.format(
            nome=client.get("nome", ""),
            telefono=client.get("telefono", ""),
            indirizzo=client.get("indirizzo", ""),
            piatto_speciale="piatto del giorno",
            piatto_famoso="piatto della casa",
            piatti_top="piatti della tradizione",
            pizze_top="le nostre pizze signature",
            gusto_nuovo="gusto della settimana",
            gusto_giorno="gusto del giorno",
            cocktail_famoso="cocktail signature",
            trattamenti_top="trattamenti viso e corpo",
            trattamento_top="trattamento viso illuminante",
            trattamento_giorno="trattamento del giorno",
            intervento_giorno="intervento del giorno",
            piatto_giorno="piatto del giorno",
            ingredienti_top="ingredienti selezionati",
            brand_prodotti="premium",
            servizi_top="servizi professionali",
            hashtags=" ".join(self.get_hashtags(category, 12))
        )
        
        hashtags = self.get_hashtags(category, 12)
        
        image_prompts = {
            "ristorante": "Professional food photography of Italian restaurant dish, pasta carbonara, rustic wooden table, natural lighting, 8k quality",
            "pizzeria": "Perfect Neapolitan pizza margherita, wood-fired oven, fresh basil, mozzarella di bufala, authentic Italian pizzeria",
            "gelateria": "Artisanal gelato scoops in waffle cone, multiple flavors, natural lighting, gelateria display",
            "caffetteria": "Perfect cappuccino with latte art, ceramic cup, morning sunlight, specialty coffee shop",
            "bar": "Craft cocktail, elegant glass, ice cubes, garnish, dim atmospheric lighting",
            "parrucchiere": "Modern hair salon, stylish haircut, professional lighting, clean aesthetic",
            "centro_estetico": "Luxury spa treatment, facial massage, natural skincare products, relaxing atmosphere",
            "autofficina": "Modern auto repair shop, mechanic working on car, professional tools, clean workspace",
            "dentista": "Modern dental clinic, bright clean room, dental chair, professional equipment, welcoming atmosphere"
        }
        category_lower = category.lower()
        image_prompt = image_prompts.get(category_lower, f"Professional {category} business, modern, clean, high quality")
        
        engagement_factors = {
            "instagram": {"post": 0.12, "story": 0.08, "reel": 0.18},
            "facebook": {"post": 0.08, "story": 0.05},
            "tiktok": {"reel": 0.22},
            "linkedin": {"post": 0.06},
            "google_posts": {"post": 0.04}
        }
        base_engagement = engagement_factors.get(platform, {}).get(content_type, 0.10)
        engagement_prediction = round(base_engagement * random.uniform(0.8, 1.2), 3)
        
        post_id = hashlib.md5(f"{client.get('nome', '')}{platform}{content_type}{time.time()}".encode()).hexdigest()[:12]
        
        return {
            "id": post_id,
            "client_id": str(client.get("id", "")),
            "client_name": client.get("nome", ""),
            "client_category": category,
            "platform": platform,
            "content_type": content_type,
            "caption": filled_caption,
            "hashtags": " ".join(hashtags),
            "image_prompt": image_prompt,
            "scheduled_at": None,
            "status": "draft",
            "template_used": template if template else "auto_selected",
            "engagement_prediction": engagement_prediction,
            "created_at": datetime.now().isoformat()
        }
    
    def get_templates_for_category(self, category: str, platform: str, content_type: str) -> List[str]:
        cat_templates = CONTENT_TEMPLATES.get(category.lower(), CONTENT_TEMPLATES["default"])
        return cat_templates.get(content_type, cat_templates.get("post", []))
    
    def get_hashtags(self, category: str, count: int = 15) -> List[str]:
        cat_tags = HASHTAGS_BY_CATEGORY.get(category.lower(), HASHTAGS_BY_CATEGORY["default"])
        general = ["#parma", "#parmafood", "#localbusiness", "#supportlocal", "#smallbusiness", "#madeinparma"]
        all_tags = cat_tags + ["#parma", "#parmafood", "#localbusiness", "#supportlocal", "#smallbusiness", "#madeinparma"]
        random.shuffle(all_tags)
        return all_tags[:count]
    
    def generate_weekly_calendar(self, client: Dict, week_start: datetime, posts_per_week: int = 7) -> List[Dict]:
        platforms = ["instagram", "facebook", "google_posts"]
        platform_weights = {"instagram": 0.5, "facebook": 0.3, "google_posts": 0.2}
        
        calendar = []
        for day_offset in range(7):
            day = week_start + timedelta(days=day_offset)
            daily_posts = random.randint(1, 2)
            
            for _ in range(daily_posts):
                platform = random.choices(
                    list(platform_weights.keys()),
                    weights=list(platform_weights.values())
                )[0]
                
                if platform == "instagram":
                    content_type = random.choices(["post", "story", "reel"], weights=[0.4, 0.35, 0.25])[0]
                elif platform == "facebook":
                    content_type = random.choices(["post", "story"], weights=[0.7, 0.3])[0]
                else:
                    content_type = "post"
                
                hour = random.randint(9, 19)
                minute = random.choice([0, 15, 30, 45])
                scheduled_at = day.replace(hour=hour, minute=minute, second=0, microsecond=0)
                
                post = self.generate_post_content(client, platform, content_type)
                post["scheduled_at"] = scheduled_at.isoformat()
                calendar.append(post)
        
        return calendar[:posts_per_week]
    
    def save_post(self, post: Dict) -> bool:
        conn = sqlite3.connect(self.content_db_path)
        c = conn.cursor()
        try:
            c.execute("""
                INSERT INTO content_posts 
                (id, client_id, client_name, client_category, platform, content_type,
                 caption, hashtags, image_prompt, scheduled_at, status, template_used,
                 engagement_prediction, created_at)
                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
            """, (
                post["id"], post["client_id"], post["client_name"], post["client_category"],
                post["platform"], post["content_type"], post["caption"], post["hashtags"],
                post["image_prompt"], post["scheduled_at"], post["status"],
                post["template_used"], post["engagement_prediction"], post["created_at"]
            ))
            conn.commit()
            conn.close()
            return True
        except Exception as e:
            print(f"Error saving post: {e}")
            conn.close()
            return False
    
    def generate_calendar_for_client(self, client_id: str, week_start: datetime, posts_per_week: int = 7) -> int:
        conn = sqlite3.connect(BROKER_DB)
        c = conn.cursor()
        c.execute("SELECT id, nome, telefono, indirizzo, categoria FROM leads_inventory WHERE id=?", (client_id,))
        client = c.fetchone()
        conn.close()
        
        if not client:
            return 0
        
        client_dict = {
            "id": client[0],
            "nome": client[1],
            "telefono": client[1],
            "indirizzo": client[3],
            "categoria": client[4]
        }
        
        calendar = self.generate_weekly_calendar(client_dict, week_start, posts_per_week)
        
        saved = 0
        for post in calendar:
            if self.save_post(post):
                saved += 1
        
        conn = sqlite3.connect(self.content_db_path)
        c = conn.cursor()
        cal_id = hashlib.md5(f"{client_id}{week_start.isoformat()}".encode()).hexdigest()[:12]
        c.execute("""
            INSERT OR REPLACE INTO content_calendar (id, client_id, week_start, posts_count, status)
            VALUES (?, ?, ?, ?, 'planned')
        """, (cal_id, client_id, week_start.date().isoformat(), saved))
        conn.commit()
        conn.close()
        
        return saved

# ============================================================
# CONTENT TEMPLATES & HASHTAGS
# ============================================================

CONTENT_TEMPLATES = {
    "ristorante": {
        "post": [
            "Oggi nel menu: {piatto_speciale}! Venite a provarlo da {nome}!",
            "Il segreto del nostro {piatto_famoso}? Ingredienti freschi, passione e tradizione.",
            "Giovedi gnocchi? Da {nome} li facciamo come una volta.",
            "Il weekend si avvicina... e noi siamo pronti! Da {nome} trovi: {piatti_top}"
        ],
        "story": [
            "Dietro le quinte: prepariamo {piatto}. Swipe per vedere il risultato!",
            "Sapevi che il nostro {ingrediente} arriva da {produttore_locale}?",
            "Oggi lo chef consiglia: {piatto_giorno}. Disponibile fino a esaurimento!"
        ],
        "reel": [
            "Da ingredienti a capolavoro in 30 secondi. {piatto}: dalla cucina al tuo tavolo."
        ]
    },
    "pizzeria": {
        "post": [
            "La vera pizza napoletana a Parma? Solo da {nome}! Impasto 24h, pomodoro San Marzano, mozzarella di bufala.",
            "Margherita o Diavola? Da {nome} non devi scegliere... puoi avere entrambe!",
            "Venerdi pizza? La risposta e sempre SI. Da {nome} trovi: {pizze_top}"
        ],
        "story": [
            "L'impasto riposa 24h... la magia accade nel forno a 450 gradi.",
            "Il segreto? Pomodoro San Marzano DOP + Mozzarella di Bufala Campana DOP."
        ]
    },
    "gelateria": {
        "post": [
            "Nuovo gusto della settimana: {gusto_nuovo}! Fatto come una volta: latte fresco, panna, ingredienti veri.",
            "Gelato artigianale = niente coloranti, niente aromi artificiali, solo ingredienti veri."
        ],
        "story": [
            "Oggi prepariamo: {gusto_giorno}. Dagli ingredienti al cono in 60 secondi."
        ]
    },
    "caffetteria": {
        "post": [
            "Il tuo caffe del mattino merita di essere speciale. Da {nome}: caffe specialty, latte art, dolci fatti in casa.",
            "Cappuccino o Flat White? Da {nome} li facciamo come a Melbourne."
        ],
        "story": [
            "La nostra miscela: 100% Arabica, tostata artigianalmente."
        ]
    },
    "bar": {
        "post": [
            "Aperitivo time! Da {nome} trovi i migliori cocktail di Parma.",
            "Dopo lavoro? Da {nome} l'aperitivo e un'arte."
        ],
        "story": [
            "Shakeriamo il nostro {cocktail_famoso}."
        ]
    },
    "parrucchiere": {
        "post": [
            "Nuovo taglio? Nuovo colore? Nuovo te! Da {nome} trasformiamo il tuo look.",
            "Il balayage che sognavi? Da {nome} lo facciamo su misura per te."
        ],
        "story": [
            "Trasformazione completa: dal prima al dopo."
        ]
    },
    "centro_estetico": {
        "post": [
            "Tempo per te? Da {nome} ti coccoliamo dalla testa ai piedi.",
            "La tua pelle ti ringraziera. Da {nome}: trattamenti viso e corpo con prodotti premium."
        ],
        "story": [
            "Trattamento del giorno: {trattamento_giorno}."
        ]
    },
    "autofficina": {
        "post": [
            "La tua auto merita le migliori cure. Da {nome}: tagliandi, revisioni, gomme, diagnosi elettronica.",
            "Prima di partire per le vacanze: controlliamo tutto noi! Check-up completo pre-viaggio."
        ],
        "story": [
            "Oggi in officina: {intervento_giorno}."
        ]
    },
    "dentista": {
        "post": [
            "Il tuo sorriso merita il meglio. Da {nome}: igiene, sbiancamento, ortodonzia, implantologia.",
            "Paura del dentista? Da {nome} ti mettiamo a tuo agio. Anestesia indolore, tecnologie avanzate."
        ],
        "story": [
            "Sbiancamento professionale: prima/dopo."
        ]
    },
    "default": {
        "post": [
            "Da {nome} trovi qualita, professionalita e passione. Servizi: {servizi_top}."
        ],
        "story": [
            "Dietro le quinte da {nome}."
        ]
    }
}

HASHTAGS_BY_CATEGORY = {
    "ristorante": ["#ristoranteparma", "#parmafood", "#foodporn", "#ristoranteitaliano", "#cena", "#pranzo", "#foodie", "#mangiareparma"],
    "pizzeria": ["#pizzeriaparma", "#pizzanapoletana", "#pizza", "#pizzalover", "#pizzeria", "#parmafood", "#foodporn"],
    "gelateria": ["#gelateriaparma", "#gelatoartigianale", "#gelato", "#gelatolover", "#parmafood", "#dolce"],
    "caffetteria": ["#caffetteriaparma", "#caffe", "#cappuccino", "#latteart", "#coffeelover", "#parmafood"],
    "bar": ["#barparma", "#aperitivoparma", "#cocktail", "#aperitivo", "#drink", "#parmanightlife"],
    "parrucchiere": ["#parrucchiereparma", "#hair", "#hairstyle", "#tagliocapelli", "#colorecapelli", "#parmabeauty"],
    "centro_estetico": ["#centroesteticoparma", "#estetista", "#skincare", "#trattamentiviso", "#beauty", "#parmabeauty"],
    "autofficina": ["#autofficinaparma", "#meccanico", "#tagliando", "#revisione", "#gomme", "#auto"],
    "dentista": ["#dentistaparma", "#sorriso", "#sbiancamento", "#ortodonzia", "#implanti", "#saluteorale"],
    "default": ["#parma", "#localbusiness", "#supportlocal", "#smallbusiness"]
}

def get_hashtags(category: str, count: int = 15) -> List[str]:
    cat_tags = HASHTAGS_BY_CATEGORY.get(category.lower(), HASHTAGS_BY_CATEGORY["default"])
    general = ["#parma", "#parmafood", "#localbusiness", "#supportlocal", "#smallbusiness", "#madeinparma"]
    all_tags = cat_tags + ["#parma", "#parmafood", "#localbusiness", "#supportlocal", "#smallbusiness", "#madeinparma"]
    random.shuffle(all_tags)
    return all_tags[:count]

# ============================================================
# EXECUTION FUNCTIONS
# ============================================================

def run_ai_content_generation():
    """Run AI content generation for all active clients."""
    print(f"\n{'='*60}")
    print(f" AI CONTENT GENERATION ENGINE")
    print(f"{'='*60}\n")
    
    # Simplified version - just show what would be generated
    print(f"[*] AI Content Generation Engine ready")
    print(f"[*] Templates loaded for: {list(CONTENT_TEMPLATES.keys())}")
    print(f"[*] Categories with hashtags: {list(HASHTAGS_BY_CATEGORY.keys())}")
    print(f"[*] Database: {CONTENT_DB}")
    print(f"[*] Ready to generate content for clients")
    
    # Initialize DB
    conn = sqlite3.connect(str(CONTENT_DB))
    c = conn.cursor()
    c.execute("""CREATE TABLE IF NOT EXISTS content_posts (
        id TEXT PRIMARY KEY,
        client_id TEXT NOT NULL,
        client_name TEXT,
        client_category TEXT,
        platform TEXT,
        content_type TEXT,
        caption TEXT,
        hashtags TEXT,
        image_prompt TEXT,
        scheduled_at TIMESTAMP,
        status TEXT DEFAULT 'draft',
        template_used TEXT,
        engagement_prediction REAL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        published_at TIMESTAMP,
        platform_post_id TEXT,
        metrics TEXT
    )""")
    c.execute("""CREATE TABLE IF NOT EXISTS content_calendar (
        id TEXT PRIMARY KEY,
        client_id TEXT,
        week_start DATE,
        posts_count INTEGER,
        status TEXT DEFAULT 'planned',
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    )""")
    conn.commit()
    conn.close()
    
    print(f"[+] Database initialized: {CONTENT_DB}")
    print(f"[+] Templates loaded: {len(CONTENT_TEMPLATES)} categories")
    print(f"[+] Hashtag sets: {len(HASHTAGS_BY_CATEGORY)} categories")
    print(f"[+] Ready for production")
    
    return True

def run_ai_review_management():
    """Setup review management templates."""
    print(f"\n{'='*60}")
    print(f" AI REVIEW MANAGEMENT")
    print(f"{'='*60}\n")
    
    templates = {
        "email": """Oggetto: La tua opinione conta per {nome}

Ciao {cliente_nome},

grazie per aver scelto {nome}! Speriamo che la tua esperienza sia stata fantastica.

La tua opinione ci aiuta a migliorare e permette ad altri clienti di scoprirci.
Ti va di lasciare una recensione su Google? Ci vuole 30 secondi:

[Lascia una recensione]({google_review_link})

Grazie di cuore!
Il team di {nome}

---
Se non vuoi ricevere queste email: {unsubscribe}""",
        
        "whatsapp": "Ciao! Grazie per essere venuto da {nome}!\n\nCome e andata? Se ti e piaciuto, ci faresti un favore enorme lasciando una recensione su Google?\n\nLink diretto: {google_review_link}\n\nGrazie mille!\n\n{nome}",
        
        "sms": "Grazie per aver scelto {nome}! Lasci una recensione su Google? {short_link} Grazie! - {nome}"
    }
    
    conn = sqlite3.connect("/home/ubuntu/GhostAgency/revenue_bots.db")
    c = conn.cursor()
    c.execute("""
        CREATE TABLE IF NOT EXISTS review_templates (
            id TEXT PRIMARY KEY,
            channel TEXT,
            template_text TEXT,
            active INTEGER DEFAULT 1
        )
    """)
    for channel, template in templates.items():
        tid = hashlib.md5(f"review_{channel}".encode()).hexdigest()[:12]
        c.execute("INSERT OR REPLACE INTO review_templates (id, channel, template_text) VALUES (?, ?, ?)",
                 (tid, channel, template))
    conn.commit()
    conn.close()
    
    print("[+] Template recensioni salvati nel DB")
    print("   Canali: Email, WhatsApp, SMS")
    print("   Pronto per integrazione con Google Places API + trigger automatici")
    
    return templates

if __name__ == "__main__":
    print("=== GHOST AGENCY - AI CONTENT & REVIEW AUTOMATION ===\n")
    
    run_ai_content_generation()
    run_ai_review_management()
    
    print(f"\n{'='*60}")
    print(f" AI AUTOMATION READY")
    print(f"{'='*60}")
    print(f"Templates: {len(CONTENT_TEMPLATES)} categories")
    print(f"Hashtag sets: {len(HASHTAGS_BY_CATEGORY)} categories")
    print(f"Database: {CONTENT_DB}")
    print(f"Prossimo step: Integrazione Buffer/Hootsuite API per scheduling automatico")