from django.core.management.base import BaseCommand

from claims.models import Category, Claim, CounterArgument, Source, Tag


class Command(BaseCommand):
    help = 'Lädt Beispieldaten für Faktenkompass (Kategorien, Behauptungen, Quellen).'

    def handle(self, *args, **options):
        if Category.objects.exists():
            self.stdout.write(self.style.WARNING('Datenbank enthält bereits Daten. Abbruch.'))
            return

        self.stdout.write('Erstelle Beispieldaten…')

        tags = {
            'impfstoff': Tag.objects.create(name='Impfstoff'),
            'co2': Tag.objects.create(name='CO₂'),
            'erneuerbare': Tag.objects.create(name='Erneuerbare Energien'),
            'migration': Tag.objects.create(name='Migration'),
            'inflation': Tag.objects.create(name='Inflation'),
            'forschung': Tag.objects.create(name='Forschung'),
            'gesundheit': Tag.objects.create(name='Gesundheit'),
            'klima': Tag.objects.create(name='Klima'),
        }

        categories = {
            'corona': Category.objects.create(
                name='Corona',
                description='Behauptungen zu COVID-19, Impfungen, Maßnahmen und Langzeitfolgen – mit Quellen aus Medizin und Epidemiologie.',
                icon='bi-virus',
            ),
            'klimawandel': Category.objects.create(
                name='Klimawandel',
                description='Fakten zur globalen Erwärmung, Treibhausgasen und Klimafolgen auf Basis wissenschaftlicher Erkenntnisse.',
                icon='bi-thermometer-half',
            ),
            'energie': Category.objects.create(
                name='Energie',
                description='Aussagen zu Stromerzeugung, erneuerbaren Energien, Atomkraft und Energiesicherheit.',
                icon='bi-lightning-charge',
            ),
            'migration': Category.objects.create(
                name='Migration',
                description='Überprüfbare Informationen zu Zuwanderung, Asyl, Integration und demografischen Entwicklungen.',
                icon='bi-people',
            ),
            'wirtschaft': Category.objects.create(
                name='Wirtschaft',
                description='Behauptungen zu Inflation, Staatsverschuldung, Arbeitsmarkt und wirtschaftlicher Entwicklung.',
                icon='bi-graph-up',
            ),
            'politik': Category.objects.create(
                name='Politik',
                description='Häufige politische Aussagen und deren empirische Überprüfung – sachlich und quellenbasiert.',
                icon='bi-bank',
            ),
            'wissenschaft': Category.objects.create(
                name='Wissenschaft',
                description='Grundlagen wissenschaftlicher Methodik, Peer Review und typische Missverständnisse über Forschung.',
                icon='bi-mortarboard',
            ),
        }

        self._create_corona_claims(categories['corona'], tags)
        self._create_climate_claims(categories['klimawandel'], tags)
        self._create_energy_claims(categories['energie'], tags)
        self._create_migration_claims(categories['migration'], tags)
        self._create_economy_claims(categories['wirtschaft'], tags)
        self._create_politics_claims(categories['politik'], tags)
        self._create_science_claims(categories['wissenschaft'], tags)

        self.stdout.write(self.style.SUCCESS(
            f'Fertig: {Category.objects.count()} Kategorien, '
            f'{Claim.objects.count()} Behauptungen, '
            f'{Source.objects.count()} Quellen.'
        ))

    def _create_corona_claims(self, category, tags):
        c1 = Claim.objects.create(
            category=category,
            title='mRNA-Impfstoffe verändern die menschliche DNA dauerhaft',
            status=Claim.Status.FALSCH,
            short_answer='mRNA-Impfstoffe gelangen nicht in den Zellkern und können die DNA nicht verändern. Die mRNA wird nach wenigen Tagen abgebaut.',
            detailed_explanation=(
                'Die mRNA in COVID-19-Impfstoffen dient als Bauanleitung für das Spike-Protein. '
                'Sie bleibt im Zytoplasma und wird nicht in den Zellkern transportiert, wo die DNA liegt. '
                'Integration in das Erbgut wäre ohne spezielle Hilfsmechanismen, die Impfstoffe nicht enthalten, praktisch nicht möglich.'
            ),
            evidence_level=Claim.EvidenceLevel.SEHR_STARK,
        )
        c1.tags.add(tags['impfstoff'], tags['gesundheit'])
        Source.objects.create(
            claim=c1,
            title='Zusammenfassung zur Sicherheit von COVID-19-Impfstoffen',
            organization='Robert Koch-Institut (RKI)',
            url='https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Impfen/Impfen_node.html',
            description='Offizielle Informationen des RKI zu Wirkweise und Sicherheit der Impfstoffe.',
        )
        CounterArgument.objects.create(
            claim=c1,
            argument='Die mRNA ist künstlich und kann deshalb die Zelle dauerhaft verändern.',
            response='Künstliche mRNA unterscheidet sich in der Wirkung nicht grundlegend von natürlicher mRNA im Körper. Beide werden abgebaut. Es gibt keinen Mechanismus, durch den Impf-mRNA in die DNA integriert wird.',
        )

        c2 = Claim.objects.create(
            category=category,
            title='COVID-19 ist nicht gefährlicher als eine normale Grippe',
            status=Claim.Status.FALSCH,
            short_answer='In den ersten Pandemiejahren war COVID-19 deutlich tödlicher als saisonale Influenza und führte weltweit zu Millionen überzähliger Todesfälle.',
            detailed_explanation='Vergleiche mit der Grippe vereinfachen oft: COVID-19 verursachte höhere Belastungen für Intensivstationen und wies in vulnerablen Gruppen eine höhere Letalität auf.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )
        c2.tags.add(tags['gesundheit'])
        Source.objects.create(
            claim=c2,
            title='COVID-19: Fallzahlen und Sterblichkeit in Deutschland',
            organization='Statistisches Bundesamt (Destatis)',
            url='https://www.destatis.de/DE/Themen/Gesellschaft-Umwelt/Gesundheit/Todesursachen/_inhalt.html',
            description='Amtliche Sterblichkeitsstatistiken und Sonderanalysen zur Pandemie.',
        )

        Claim.objects.create(
            category=category,
            title='Masken im Alltag schützen nachweislich vor Ansteckung mit respirativen Viren',
            status=Claim.Status.WISSENSCHAFTLICHER_KONSENS,
            short_answer='Gut sitzende medizinische Masken und FFP2-Masken reduzieren nachweislich die Übertragung von Tröpfchen und Aerosolen, besonders in Innenräumen.',
            detailed_explanation='Metaanalysen zeigen, dass Masken die Emission und Aufnahme infektiöser Partikel verringern. Der Schutz hängt von Maskentyp, Passform und Nutzung ab.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )

    def _create_climate_claims(self, category, tags):
        c1 = Claim.objects.create(
            category=category,
            title='Der Klimawandel wird hauptsächlich durch natürliche Zyklen verursacht',
            status=Claim.Status.FALSCH,
            short_answer='Die aktuelle Erwärmung lässt sich nicht durch natürliche Zyklen allein erklären. Treibhausgasemissionen sind laut IPCC die dominierende Ursache.',
            detailed_explanation='Klimamodelle mit nur natürlichen Faktoren reproduzieren die gemessene Temperaturanomalie nicht. Mit anthropogenen Emissionen stimmen Beobachtungen und Modelle überein.',
            evidence_level=Claim.EvidenceLevel.SEHR_STARK,
        )
        c1.tags.add(tags['klima'], tags['co2'])
        Source.objects.create(
            claim=c1,
            title='AR6 Synthesis Report: Climate Change 2023',
            organization='Zwischenstaatlicher Ausschuss für Klimaänderungen (IPCC)',
            url='https://www.ipcc.ch/report/ar6/syr/',
            description='Aktueller Synthesebericht des Weltklimarats.',
        )
        CounterArgument.objects.create(
            claim=c1,
            argument='Früher gab es auch warme und kalte Perioden ohne Industrie.',
            response='Natürliche Schwankungen sind bekannt, aber die Geschwindigkeit der aktuellen Erwärmung passt zu Treibhausgasanstieg, nicht zu dominanten natürlichen Zyklen.',
        )

        Claim.objects.create(
            category=category,
            title='Es gibt keinen wissenschaftlichen Konsens zum menschengemachten Klimawandel',
            status=Claim.Status.FALSCH,
            short_answer='Über 97 % der klimabezogenen Fachpublikationen stützen den Konsens, dass der Mensch die Hauptursache der aktuellen Erwärmung ist.',
            detailed_explanation='Große wissenschaftliche Gesellschaften weltweit befürworten diese Einschätzung.',
            evidence_level=Claim.EvidenceLevel.SEHR_STARK,
        )

        Claim.objects.create(
            category=category,
            title='Extremwetterereignisse nehmen in Häufigkeit und Intensität zu',
            status=Claim.Status.TEILWEISE_RICHTIG,
            short_answer='Viele Extremwetterarten zeigen einen Zusammenhang mit dem Klimawandel, aber nicht jedes Ereignis ist direkt darauf zurückzuführen.',
            detailed_explanation='Hitzewellen und starke Niederschläge werden in vielen Regionen häufiger. Attributionsforschung berechnet Wahrscheinlichkeitsveränderungen für Einzelereignisse.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )

    def _create_energy_claims(self, category, tags):
        c1 = Claim.objects.create(
            category=category,
            title='Deutschland kann seinen Strombedarf ausschließlich mit Solar und Wind decken',
            status=Claim.Status.TEILWEISE_RICHTIG,
            short_answer='Langfristig ist ein sehr hoher Anteil erneuerbarer Energien möglich, erfordert aber Speicher, Netzausbau und Flexibilität.',
            detailed_explanation='Studien zeigen Szenarien mit nahezu 100 % erneuerbarem Strom, erfordern aber Infrastruktur und Sektorkopplung.',
            evidence_level=Claim.EvidenceLevel.MITTEL,
        )
        c1.tags.add(tags['erneuerbare'])
        CounterArgument.objects.create(
            claim=c1,
            argument='Wenn die Sonne nicht scheint und der Wind nicht weht, fällt das Netz aus.',
            response='Energiesysteme kombinieren Speicher, Netze, Importe und Reservekapazitäten statt auf eine einzige Quelle zu setzen.',
        )

        Claim.objects.create(
            category=category,
            title='Atomkraft ist in Deutschland klimaneutral und deshalb unverzichtbar',
            status=Claim.Status.IRREFUEHREND,
            short_answer='Atomkraft erzeugt wenig CO₂ im Betrieb, verursacht aber andere Risiken und hohe Folgekosten. Sie ist nicht die einzige klimafreundliche Option.',
            detailed_explanation='Lebenszyklusanalysen zeigen niedrige CO₂-Emissionen, aber Endlagerung und Unfallrisiken sind zentrale Gegenargumente.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )

        Claim.objects.create(
            category=category,
            title='Der Ausbau erneuerbarer Energien treibt die Strompreise allein massiv nach oben',
            status=Claim.Status.IRREFUEHREND,
            short_answer='Strompreise werden von Brennstoffkosten, Netzentgelten und Abgaben beeinflusst. Erneuerbare senken Grenzkosten, verursachen aber Netzausbaukosten.',
            detailed_explanation='In Phasen hoher Gaspreise stiegen Börsenstrompreise stark. Langfristig sind Wind und Solar kostengünstige Neubau-Technologien.',
            evidence_level=Claim.EvidenceLevel.MITTEL,
        )

    def _create_migration_claims(self, category, tags):
        c1 = Claim.objects.create(
            category=category,
            title='Die Mehrheit der Migranten in Deutschland ist arbeitslos und lebt von Sozialleistungen',
            status=Claim.Status.IRREFUEHREND,
            short_answer='Die Erwerbstätigenquote variiert stark nach Herkunft und Aufenthaltsdauer. Pauschale Aussagen sind nicht haltbar.',
            detailed_explanation='Viele Zuwanderer arbeiten nach mehreren Jahren ähnlich häufig wie die Gesamtbevölkerung. Neuankömmlinge weisen anfangs häufiger Arbeitslosigkeit auf.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )
        c1.tags.add(tags['migration'])
        Source.objects.create(
            claim=c1,
            title='Zuwanderung und Arbeitsmarkt',
            organization='Institut für Arbeitsmarkt- und Berufsforschung (IAB)',
            url='https://www.iab.de/',
            description='Forschung des IAB zu Migration und Beschäftigung.',
        )

        Claim.objects.create(
            category=category,
            title='Deutschland hat die höchste Zuwanderung in Europa',
            status=Claim.Status.TEILWEISE_RICHTIG,
            short_answer='Deutschland nimmt absolut viele Zuwanderer auf, liegt pro Kopf aber nicht immer an der Spitze in Europa.',
            detailed_explanation='Eurostat-Daten zeigen Deutschland unter den Ländern mit höchsten absoluten Zahlen. Relativ zur Bevölkerung liegen andere Länder teils höher.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )

    def _create_economy_claims(self, category, tags):
        Claim.objects.create(
            category=category,
            title='Die Inflation in Deutschland wird allein durch Lohnerhöhungen verursacht',
            status=Claim.Status.IRREFUEHREND,
            short_answer='Lohnkosten können Preise mitverursachen, aber Energiepreise, Lieferketten und Geldpolitik spielen ebenfalls eine zentrale Rolle.',
            detailed_explanation='Die Inflation 2022/2023 wurde maßgeblich durch Energie- und Rohstoffpreisschocks getrieben.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )

        Claim.objects.create(
            category=category,
            title='Deutschland ist der größte Exporteur der Welt',
            status=Claim.Status.FALSCH,
            short_answer='Deutschland ist ein führender Exporteur, lag in den letzten Jahren aber hinter China.',
            detailed_explanation='Nach WTO-Daten exportierte China mehr Waren als Deutschland. Deutschland bleibt stark im Maschinen- und Fahrzeugbau.',
            evidence_level=Claim.EvidenceLevel.SEHR_STARK,
        )

    def _create_politics_claims(self, category, tags):
        Claim.objects.create(
            category=category,
            title='Wahlbeteiligung in Deutschland sinkt seit Jahrzehnten kontinuierlich',
            status=Claim.Status.TEILWEISE_RICHTIG,
            short_answer='Bei Bundestagswahlen schwankt die Beteiligung; langfristig gibt es einen leichten Rückgang, aber keine einheitliche Abwärtsspirale.',
            detailed_explanation='Historische Daten zeigen Schwankungen zwischen etwa 70 % und 90 % bei Bundestagswahlen.',
            evidence_level=Claim.EvidenceLevel.STARK,
        )

    def _create_science_claims(self, category, tags):
        c1 = Claim.objects.create(
            category=category,
            title='Eine einzelne Studie beweist wissenschaftlichen Konsens',
            status=Claim.Status.FALSCH,
            short_answer='Einzelstudien sind Ausgangspunkte, kein abschließender Beweis. Konsens entsteht durch Replikation und Synthese vieler Arbeiten.',
            detailed_explanation='Peer Review filtert Fehler, garantiert aber keine Wahrheit. Metaanalysen fassen viele Studien zusammen.',
            evidence_level=Claim.EvidenceLevel.SEHR_STARK,
        )
        c1.tags.add(tags['forschung'])
        CounterArgument.objects.create(
            claim=c1,
            argument='Wenn eine Studie in einer renommierten Zeitschrift steht, ist sie bewiesen.',
            response='Renommierte Journale publizieren auch widerlegte Ergebnisse. Die Qualität hängt von Replikation und Methodik ab.',
        )
