#!/usr/bin/env python
"""
Script pour créer des données d'exemple pour ECOLUX BTP
Utilise la couleur #1e1810 comme thème principal
"""

import os
import sys
import django

# Configuration Django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projects.settings')
django.setup()

from django.utils import timezone
from app.models import (
    BlogCategory, BlogPost, ProjectCategory, Project, 
    ProjectImage, ProjectVideo
)
from django.contrib.auth.models import User
from userapp.models import CostumUser

def create_sample_data():
    print("🚀 Création des données d'exemple ECOLUX BTP avec couleur #1e1810...")
    
    # Créer un utilisateur administrateur si nécessaire
    if not User.objects.filter(username='admin').exists():
        django_user = User.objects.create_superuser(
            username='admin',
            email='admin@ecolux-btp.com',
            password='admin123',
            first_name='ECOLUX',
            last_name='Admin'
        )
        # Le CostumUser sera créé automatiquement par le signal
        admin_user = CostumUser.objects.get(user=django_user)
        print("✅ Utilisateur admin créé (admin/admin123)")
    else:
        django_user = User.objects.get(username='admin')
        admin_user, created = CostumUser.objects.get_or_create(user=django_user)
        print("✅ Utilisateur admin existe déjà")
    
    # === CATÉGORIES DE BLOG ===
    blog_categories_data = [
        {
            'name': 'Construction', 
            'slug': 'construction',
            'description': 'Actualités et conseils sur la construction au Sénégal',
            'color': '#1e1810'
        },
        {
            'name': 'Diaspora', 
            'slug': 'diaspora',
            'description': 'Guides pour la diaspora sénégalaise',
            'color': '#d4af37'
        },
        {
            'name': 'Réglementation', 
            'slug': 'reglementation',
            'description': 'Normes et réglementations en vigueur',
            'color': '#2e2820'
        },
        {
            'name': 'Tendances', 
            'slug': 'tendances',
            'description': 'Nouvelles tendances en architecture',
            'color': '#1e1810'
        }
    ]
    
    print("\n📝 Création des catégories de blog...")
    for cat_data in blog_categories_data:
        category, created = BlogCategory.objects.get_or_create(
            slug=cat_data['slug'],
            defaults=cat_data
        )
        status = "créée" if created else "existe déjà"
        print(f"   • {category.name}: {status}")
    
    # === CATÉGORIES DE PROJETS ===
    project_categories_data = [
        {
            'name': 'Villas Résidentielles',
            'slug': 'villas-residentielles',
            'description': 'Villas modernes et traditionnelles'
        },
        {
            'name': 'Immeubles',
            'slug': 'immeubles',
            'description': 'Édifices résidentiels et commerciaux'
        },
        {
            'name': 'Rénovation',
            'slug': 'renovation',
            'description': 'Modernisation et réhabilitation'
        },
        {
            'name': 'Projets Diaspora',
            'slug': 'projets-diaspora',
            'description': 'Projets spécialement conçus pour la diaspora'
        }
    ]
    
    print("\n🏗️ Création des catégories de projets...")
    for cat_data in project_categories_data:
        category, created = ProjectCategory.objects.get_or_create(
            slug=cat_data['slug'],
            defaults=cat_data
        )
        status = "créée" if created else "existe déjà"
        print(f"   • {category.name}: {status}")
    
    # === ARTICLES DE BLOG ===
    blog_posts_data = [
        {
            'title': 'Guide Complet : Construire au Sénégal depuis l\'Étranger',
            'slug': 'guide-construire-senegal-etranger',
            'content': '''
            <h2>Introduction</h2>
            <p>Construire au Sénégal depuis l'étranger peut sembler complexe, mais avec les bons conseils et un partenaire de confiance comme ECOLUX BTP, votre projet devient réalisable.</p>
            
            <h3>Les étapes clés</h3>
            <ol>
                <li><strong>Définition du projet</strong> : Budget, localisation, type de construction</li>
                <li><strong>Acquisition du terrain</strong> : Vérifications légales et administratives</li>
                <li><strong>Conception architecturale</strong> : Plans adaptés au climat et aux normes locales</li>
                <li><strong>Suivi de chantier</strong> : Plateforme digitale pour suivre l'avancement</li>
            </ol>
            
            <h3>Nos services spéciaux diaspora</h3>
            <p>ECOLUX BTP propose un accompagnement complet avec :</p>
            <ul>
                <li>Suivi en temps réel via notre plateforme web</li>
                <li>Rapports photo/vidéo hebdomadaires</li>
                <li>Gestion administrative complète</li>
                <li>Livraison clé en main</li>
            </ul>
            ''',
            'excerpt': 'Tous les conseils essentiels pour réussir votre projet immobilier depuis la diaspora. Guide complet avec ECOLUX BTP.',
            'category': 'diaspora',
            'featured': True
        },
        {
            'title': 'Nouvelles Normes de Construction au Sénégal 2024',
            'slug': 'nouvelles-normes-construction-senegal-2024',
            'content': '''
            <h2>Les nouvelles réglementations</h2>
            <p>Le Sénégal a adopté de nouvelles normes de construction en 2024 pour améliorer la qualité et la sécurité des bâtiments.</p>
            
            <h3>Principales modifications</h3>
            <ul>
                <li>Nouvelles exigences sismiques</li>
                <li>Standards d'efficacité énergétique</li>
                <li>Normes d'accessibilité renforcées</li>
                <li>Réglementations environnementales</li>
            </ul>
            
            <p>ECOLUX BTP s'adapte à ces nouvelles normes pour garantir la conformité de tous vos projets.</p>
            ''',
            'excerpt': 'Découvrez les nouvelles réglementations et normes à respecter pour vos constructions au Sénégal.',
            'category': 'reglementation',
            'featured': True
        },
        {
            'title': 'Les 10 Erreurs à Éviter lors de Votre Construction',
            'slug': 'erreurs-eviter-construction',
            'content': '''
            <h2>Notre expertise à votre service</h2>
            <p>Avec 30 ans d'expérience, ECOLUX BTP a identifié les erreurs les plus courantes en construction.</p>
            
            <h3>Top 10 des erreurs</h3>
            <ol>
                <li>Sous-estimer le budget initial</li>
                <li>Négliger l'étude de sol</li>
                <li>Choisir des matériaux inadaptés au climat</li>
                <li>Manquer de suivi de chantier</li>
                <li>Ignorer les normes locales</li>
                <li>Sous-dimensionner les fondations</li>
                <li>Négliger l'étanchéité</li>
                <li>Mauvaise orientation du bâtiment</li>
                <li>Oublier les espaces de rangement</li>
                <li>Ne pas prévoir les extensions futures</li>
            </ol>
            ''',
            'excerpt': 'Évitez les pièges courants grâce à notre expertise de 30 ans en construction au Sénégal.',
            'category': 'construction',
            'featured': False
        }
    ]
    
    print("\n📄 Création des articles de blog...")
    for post_data in blog_posts_data:
        try:
            category = BlogCategory.objects.get(slug=post_data['category'])
            post, created = BlogPost.objects.get_or_create(
                slug=post_data['slug'],
                defaults={
                    'title': post_data['title'],
                    'content': post_data['content'],
                    'excerpt': post_data['excerpt'],
                    'category': category,
                    'author': admin_user,
                    'status': 'PUBLISHED',
                    'featured': post_data['featured'],
                    'published_at': timezone.now(),
                    'meta_description': post_data['excerpt'][:155],
                }
            )
            status = "créé" if created else "existe déjà"
            print(f"   • {post.title}: {status}")
        except BlogCategory.DoesNotExist:
            print(f"   ❌ Catégorie '{post_data['category']}' non trouvée pour l'article '{post_data['title']}'")
    
    # === PROJETS ===
    projects_data = [
        {
            'title': 'Villa Moderne - Almadies',
            'slug': 'villa-moderne-almadies',
            'description': '''
            <h2>Villa de prestige aux Almadies</h2>
            <p>Cette magnifique villa de 4 chambres avec piscine représente l'excellence de notre savoir-faire.</p>
            
            <h3>Caractéristiques</h3>
            <ul>
                <li>4 chambres avec suites parentales</li>
                <li>Piscine à débordement</li>
                <li>Jardin paysager</li>
                <li>Garage double</li>
                <li>Système domotique</li>
            </ul>
            
            <h3>Matériaux utilisés</h3>
            <p>Matériaux haut de gamme adaptés au climat tropical : carrelage en grès cérame, menuiseries en aluminium laqué, toiture en tuiles canal.</p>
            ''',
            'short_description': 'Villa 4 chambres avec piscine',
            'category': 'villas-residentielles',
            'location': 'Almadies, Dakar',
            'surface_built': 350,
            'surface_land': 800,
            'status': 'COMPLETED',
            'featured': True
        },
        {
            'title': 'Immeuble R+3 - Plateau',
            'slug': 'immeuble-r3-plateau',
            'description': '''
            <h2>Immeuble résidentiel moderne</h2>
            <p>Édifice de standing avec 12 appartements luxueux en plein centre de Dakar.</p>
            
            <h3>Configuration</h3>
            <ul>
                <li>12 appartements (T2 et T3)</li>
                <li>Ascenseur moderne</li>
                <li>Parking souterrain</li>
                <li>Terrasse commune</li>
                <li>Système de sécurité</li>
            </ul>
            ''',
            'short_description': '12 appartements luxueux',
            'category': 'immeubles',
            'location': 'Plateau, Dakar',
            'surface_built': 1200,
            'surface_land': 400,
            'status': 'COMPLETED',
            'featured': True
        },
        {
            'title': 'Résidence Diaspora - Saly',
            'slug': 'residence-diaspora-saly',
            'description': '''
            <h2>Villa pour la diaspora</h2>
            <p>Projet spécialement conçu pour un client de la diaspora avec suivi digital complet.</p>
            
            <h3>Spécificités diaspora</h3>
            <ul>
                <li>Suivi de chantier en temps réel</li>
                <li>Rapports hebdomadaires photo/vidéo</li>
                <li>Gestion administrative complète</li>
                <li>Livraison clé en main</li>
                <li>Vue mer exceptionnelle</li>
            </ul>
            ''',
            'short_description': 'Villa 5 chambres vue mer',
            'category': 'projets-diaspora',
            'location': 'Saly, Mbour',
            'surface_built': 400,
            'surface_land': 1000,
            'status': 'COMPLETED',
            'featured': True
        }
    ]
    
    print("\n🏠 Création des projets...")
    for project_data in projects_data:
        try:
            category = ProjectCategory.objects.get(slug=project_data['category'])
            
            project, created = Project.objects.get_or_create(
                slug=project_data['slug'],
                defaults={
                    'title': project_data['title'],
                    'description': project_data['description'],
                    'short_description': project_data['short_description'],
                    'category': category,
                    'location': project_data['location'],
                    'surface_built': project_data['surface_built'],
                    'surface_land': project_data['surface_land'],
                    'status': project_data['status'],
                    'featured': project_data['featured'],
                    'published': True,
                    'completed_date': timezone.now().date(),
                }
            )
            status = "créé" if created else "existe déjà"
            print(f"   • {project.title}: {status}")
            
        except ProjectCategory.DoesNotExist:
            print(f"   ❌ Catégorie '{project_data['category']}' non trouvée pour le projet '{project_data['title']}'")
    
    print("\n🎉 Données d'exemple créées avec succès !")
    print("   📊 Statistiques :")
    print(f"   • Catégories de blog : {BlogCategory.objects.count()}")
    print(f"   • Articles de blog : {BlogPost.objects.count()}")
    print(f"   • Catégories de projets : {ProjectCategory.objects.count()}")
    print(f"   • Projets : {Project.objects.count()}")
    
    print("\n🌐 Votre site ECOLUX BTP est maintenant prêt !")
    print("   Lancez le serveur avec : python manage.py runserver")
    print("   Puis ouvrez : http://127.0.0.1:8000")
    print("   Admin : http://127.0.0.1:8000/myecolux (admin/admin123)")

if __name__ == '__main__':
    create_sample_data()
