#!/usr/bin/env python
"""
Script pour créer des données d'exemple pour la plateforme ECOLUX BTP
Exécutez ce script avec: python manage.py shell < create_sample_data.py
"""

from django.contrib.auth import get_user_model
from app.models import BlogCategory, BlogPost, ProjectCategory, Project, ProjectImage
from django.utils import timezone
from datetime import date, timedelta
import random

User = get_user_model()

# Créer un utilisateur admin si n'existe pas
admin_user, created = User.objects.get_or_create(
    username='admin_ecolux',
    defaults={
        'email': 'admin@ecoluxbtp.com',
        'first_name': 'Admin',
        'last_name': 'ECOLUX',
        'is_staff': True,
        'is_superuser': True,
    }
)
if created:
    admin_user.set_password('ecolux2024')
    admin_user.save()
    print("✅ Utilisateur admin créé: admin_ecolux / ecolux2024")

# Créer les catégories de blog
blog_categories_data = [
    {
        'name': 'Construction Résidentielle',
        'description': 'Tout sur la construction de villas, maisons et résidences',
        'color': '#3B82F6',
    },
    {
        'name': 'Construction Commerciale',
        'description': 'Bureaux, magasins, centres commerciaux et bâtiments professionnels',
        'color': '#10B981',
    },
    {
        'name': 'Conseils & Astuces',
        'description': 'Conseils pratiques pour réussir votre projet de construction',
        'color': '#F59E0B',
    },
    {
        'name': 'Actualités BTP',
        'description': 'Dernières nouvelles du secteur du BTP au Sénégal',
        'color': '#EF4444',
    },
    {
        'name': 'Réglementation',
        'description': 'Normes, lois et réglementations de construction',
        'color': '#8B5CF6',
    },
]

blog_categories = []
for cat_data in blog_categories_data:
    category, created = BlogCategory.objects.get_or_create(
        name=cat_data['name'],
        defaults=cat_data
    )
    blog_categories.append(category)
    if created:
        print(f"✅ Catégorie blog créée: {category.name}")

# Créer les catégories de projets
project_categories_data = [
    {
        'name': 'Villas',
        'description': 'Villas résidentielles modernes et traditionnelles',
        'icon': '🏡',
    },
    {
        'name': 'Immeubles',
        'description': 'Immeubles résidentiels et appartements',
        'icon': '🏢',
    },
    {
        'name': 'Bureaux',
        'description': 'Espaces de bureaux et bâtiments professionnels',
        'icon': '🏢',
    },
    {
        'name': 'Commerces',
        'description': 'Magasins, centres commerciaux et espaces commerciaux',
        'icon': '🏪',
    },
    {
        'name': 'Rénovations',
        'description': 'Projets de rénovation et de modernisation',
        'icon': '🔧',
    },
]

project_categories = []
for cat_data in project_categories_data:
    category, created = ProjectCategory.objects.get_or_create(
        name=cat_data['name'],
        defaults=cat_data
    )
    project_categories.append(category)
    if created:
        print(f"✅ Catégorie projet créée: {category.name}")

# Créer des articles de blog
blog_posts_data = [
    {
        'title': 'Guide Complet : Construire au Sénégal depuis l\'Étranger',
        'excerpt': 'Tous les conseils essentiels pour réussir votre projet immobilier depuis la diaspora. De la planification à la réception des travaux.',
        'content': '''
        <h2>Introduction</h2>
        <p>Construire au Sénégal depuis l'étranger peut sembler complexe, mais avec une bonne préparation et les bons partenaires, votre projet peut être un succès.</p>
        
        <h2>Étapes Clés</h2>
        <h3>1. Planification et Budget</h3>
        <p>La première étape consiste à définir clairement vos besoins et votre budget. Il est recommandé de prévoir une marge de 10-15% pour les imprévus.</p>
        
        <h3>2. Choix du Terrain</h3>
        <p>Le choix du terrain est crucial. Vérifiez la disponibilité des réseaux (eau, électricité), l'accessibilité et la situation juridique du terrain.</p>
        
        <h3>3. Partenaires Locaux</h3>
        <p>Avoir un partenaire de confiance sur place est essentiel. ECOLUX BTP vous accompagne dans toutes les étapes de votre projet.</p>
        
        <h2>Suivi à Distance</h2>
        <p>Grâce aux nouvelles technologies, le suivi de votre chantier à distance est désormais possible avec des rapports réguliers, photos et vidéos.</p>
        ''',
        'category': blog_categories[0],  # Construction Résidentielle
        'featured': True,
        'tags': 'diaspora, construction, guide, sénégal',
        'meta_description': 'Guide complet pour construire au Sénégal depuis l\'étranger. Conseils pratiques pour la diaspora.',
    },
    {
        'title': 'Nouvelles Normes de Construction au Sénégal 2024',
        'excerpt': 'Découvrez les nouvelles réglementations et normes de construction qui entrent en vigueur en 2024 au Sénégal.',
        'content': '''
        <h2>Nouvelles Réglementations 2024</h2>
        <p>Le Sénégal a mis à jour ses normes de construction pour améliorer la qualité et la sécurité des bâtiments.</p>
        
        <h2>Points Clés</h2>
        <ul>
        <li>Nouvelles normes antisismiques</li>
        <li>Réglementations environnementales renforcées</li>
        <li>Standards d'accessibilité améliorés</li>
        <li>Nouvelles exigences pour les matériaux</li>
        </ul>
        
        <h2>Impact sur les Projets</h2>
        <p>Ces nouvelles normes visent à améliorer la qualité des constructions et la sécurité des occupants.</p>
        ''',
        'category': blog_categories[4],  # Réglementation
        'featured': False,
        'tags': 'réglementation, normes, 2024, sénégal',
        'meta_description': 'Nouvelles normes de construction au Sénégal en 2024. Tout ce que vous devez savoir.',
    },
    {
        'title': 'Les 10 Erreurs à Éviter lors de Votre Construction',
        'excerpt': 'Évitez les pièges courants grâce à notre expertise de 30 ans dans la construction au Sénégal.',
        'content': '''
        <h2>Les Erreurs les Plus Courantes</h2>
        
        <h3>1. Sous-estimer le Budget</h3>
        <p>L'erreur la plus fréquente est de sous-estimer le coût total du projet. Prévoyez toujours une marge de sécurité.</p>
        
        <h3>2. Négliger l'Étude de Sol</h3>
        <p>Une étude géotechnique est essentielle pour adapter les fondations au terrain.</p>
        
        <h3>3. Choisir les Mauvais Matériaux</h3>
        <p>La qualité des matériaux détermine la durabilité de votre construction.</p>
        
        <h3>4. Manque de Suivi</h3>
        <p>Un suivi régulier du chantier est indispensable pour respecter les délais et la qualité.</p>
        
        <h2>Comment les Éviter</h2>
        <p>Faire appel à des professionnels expérimentés comme ECOLUX BTP vous permet d'éviter ces écueils.</p>
        ''',
        'category': blog_categories[2],  # Conseils & Astuces
        'featured': True,
        'tags': 'erreurs, conseils, construction, qualité',
        'meta_description': '10 erreurs courantes en construction et comment les éviter. Conseils d\'experts.',
    },
    {
        'title': 'Choisir ses Matériaux de Construction au Sénégal',
        'excerpt': 'Guide pratique pour bien choisir ses matériaux de construction adaptés au climat sénégalais.',
        'content': '''
        <h2>Matériaux Adaptés au Climat</h2>
        <p>Le choix des matériaux doit tenir compte du climat tropical du Sénégal.</p>
        
        <h2>Recommandations par Type</h2>
        
        <h3>Fondations</h3>
        <p>Privilégiez des fondations profondes avec un bon drainage pour éviter les remontées d'humidité.</p>
        
        <h3>Murs</h3>
        <p>Les blocs de béton restent le meilleur choix pour leur résistance et leur isolation thermique.</p>
        
        <h3>Toiture</h3>
        <p>Les toitures en tuiles ou en tôle galvanisée sont recommandées pour leur résistance aux intempéries.</p>
        
        <h2>Fournisseurs Locaux</h2>
        <p>ECOLUX BTP travaille avec des fournisseurs certifiés pour garantir la qualité des matériaux.</p>
        ''',
        'category': blog_categories[2],  # Conseils & Astuces
        'featured': False,
        'tags': 'matériaux, choix, climat, qualité',
        'meta_description': 'Comment choisir les bons matériaux de construction pour le climat sénégalais.',
    },
]

for post_data in blog_posts_data:
    post, created = BlogPost.objects.get_or_create(
        title=post_data['title'],
        defaults={
            **post_data,
            'author': admin_user,
            'status': 'PUBLISHED',
            'published_at': timezone.now() - timedelta(days=random.randint(1, 30)),
        }
    )
    if created:
        print(f"✅ Article créé: {post.title}")

# Créer des projets
projects_data = [
    {
        'title': 'Villa Moderne aux Almadies',
        'short_description': 'Villa contemporaine de 4 chambres avec piscine et jardin paysager',
        'description': '''Cette magnifique villa moderne située aux Almadies offre un cadre de vie exceptionnel. 
        Construite sur un terrain de 800m², elle dispose de 4 chambres, 3 salles de bains, 
        un salon spacieux, une cuisine équipée et une piscine. Les finitions haut de gamme 
        et l'architecture contemporaine en font une résidence d'exception.''',
        'location': 'Almadies, Dakar',
        'client_name': 'Famille Diop',
        'surface_built': 350,
        'surface_land': 800,
        'floors_count': 'RDC + R+1',
        'rooms_count': 7,
        'budget': 180000000,
        'status': 'COMPLETED',
        'featured': True,
        'start_date': date(2023, 3, 1),
        'completed_date': date(2024, 1, 15),
        'category': project_categories[0],  # Villas
    },
    {
        'title': 'Immeuble R+3 au Plateau',
        'short_description': 'Immeuble résidentiel de 12 appartements avec ascenseur',
        'description': '''Immeuble moderne de 4 niveaux (RDC + R+3) comprenant 12 appartements 
        de standing avec ascenseur. Chaque appartement dispose de 2 ou 3 chambres, 
        salon, cuisine équipée et balcon. Parking au rez-de-chaussée pour 8 véhicules. 
        Construction aux normes avec matériaux de qualité.''',
        'location': 'Plateau, Dakar',
        'client_name': 'Société Immobilière SENICO',
        'surface_built': 1200,
        'surface_land': 400,
        'floors_count': 'RDC + R+3',
        'rooms_count': 36,
        'budget': 450000000,
        'status': 'COMPLETED',
        'featured': True,
        'start_date': date(2022, 8, 1),
        'completed_date': date(2023, 10, 30),
        'category': project_categories[1],  # Immeubles
    },
    {
        'title': 'Résidence Diaspora à Saly',
        'short_description': 'Villa 5 chambres avec vue mer pour la diaspora',
        'description': '''Projet spécialement conçu pour un client de la diaspora, cette villa 
        de 5 chambres offre une vue imprenable sur l'océan. Architecture moderne avec 
        des matériaux nobles, grandes baies vitrées, terrasse panoramique et piscine à débordement. 
        Suivi intégral du projet à distance avec reporting régulier.''',
        'location': 'Saly, Mbour',
        'client_name': 'M. Mamadou Ba (France)',
        'surface_built': 400,
        'surface_land': 1000,
        'floors_count': 'RDC + R+1',
        'rooms_count': 8,
        'budget': 200000000,
        'status': 'COMPLETED',
        'featured': True,
        'start_date': date(2023, 5, 1),
        'completed_date': date(2024, 3, 20),
        'category': project_categories[0],  # Villas
    },
    {
        'title': 'Centre Commercial Thiès',
        'short_description': 'Centre commercial moderne avec 15 boutiques',
        'description': '''Centre commercial moderne de 15 boutiques réparties sur 2 niveaux. 
        Espaces commerciaux modulables, climatisation centralisée, ascenseur, 
        parking pour 30 véhicules. Architecture contemporaine avec façade vitrée 
        et éclairage LED. Livré clé en main avec tous les équipements.''',
        'location': 'Thiès Centre',
        'client_name': 'Groupe Commercial WALO',
        'surface_built': 800,
        'surface_land': 600,
        'floors_count': 'RDC + R+1',
        'rooms_count': 17,
        'budget': 320000000,
        'status': 'IN_PROGRESS',
        'featured': False,
        'start_date': date(2024, 1, 15),
        'completed_date': None,
        'category': project_categories[3],  # Commerces
    },
    {
        'title': 'Rénovation Villa Coloniale',
        'short_description': 'Rénovation complète d\'une villa coloniale à Gorée',
        'description': '''Projet de rénovation complète d'une villa coloniale historique à Gorée. 
        Travaux de réhabilitation respectant l'architecture d'origine tout en intégrant 
        les conforts modernes. Réfection de la toiture, rénovation électrique et plomberie, 
        restauration des façades, aménagement intérieur contemporain.''',
        'location': 'Île de Gorée',
        'client_name': 'Mairie de Gorée',
        'surface_built': 250,
        'surface_land': 300,
        'floors_count': 'RDC + R+1',
        'rooms_count': 6,
        'budget': 85000000,
        'status': 'COMPLETED',
        'featured': False,
        'start_date': date(2023, 10, 1),
        'completed_date': date(2024, 4, 10),
        'category': project_categories[4],  # Rénovations
    },
]

for project_data in projects_data:
    project, created = Project.objects.get_or_create(
        title=project_data['title'],
        defaults=project_data
    )
    if created:
        print(f"✅ Projet créé: {project.title}")

print("\n🎉 Données d'exemple créées avec succès!")
print("Connectez-vous à l'admin Django pour voir et modifier le contenu:")
print("- URL: /admin/")
print("- Utilisateur: admin_ecolux")
print("- Mot de passe: ecolux2024")
print("\nN'oubliez pas d'ajouter des images aux projets et articles via l'interface d'administration.")
