import wagtail_factories
from wagtail.rich_text import RichText

from vbv_lernwelt.learnpath.models import (
    Circle,
    LearningContentAssignment,
    LearningContentAttendanceCourse,
    LearningContentDocumentList,
    LearningContentFeedback,
    LearningContentLearningModule,
    LearningContentMediaLibrary,
    LearningContentPlaceholder,
    LearningContentRichText,
    LearningContentTest,
    LearningContentVideo,
    LearningPath,
    LearningSequence,
    LearningUnit,
    Topic,
)
from vbv_lernwelt.media_library.tests.media_library_factories import (
    LearnMediaBlockFactory,
)


class LearningPathFactory(wagtail_factories.PageFactory):
    title = "Versicherungsvermittler/-in"

    class Meta:
        model = LearningPath


class TopicFactory(wagtail_factories.PageFactory):
    title = "Gewinnen von Kunden"
    is_visible = True

    class Meta:
        model = Topic


class CircleFactory(wagtail_factories.PageFactory):
    title = "Basis"
    description = """
In diesem Circle erfährst du wie der Lehrgang aufgebaut ist. Zudem lernst du die wichtigsten Grundlagen, damit du
erfolgreich mit deinem Lernpfad und in deinem Job (durch-)starten kannst.
    """.strip()
    goals = """
    <p class="mt-4">In diesem Circle erfährst du wie der Lehrgang aufgebaut ist. Zudem lernst du die wichtigsten Grundlagen,
    damit du erfolgreich mit deinem Lernpfad und in deinem Job (durch-)starten kannst.</p>
    <p class="mt-4">Du baust das Grundlagenwissen für die folgenden Themenfelder auf:</p>
     <ul>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Aufbau von myVBV und wie du dich im Lernpfad zurechtfindest</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Worauf die Ausbildung und die Zulassungsprüfung zum/zur Versicherungsvermittler/-in VBV basieren</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Organisation deiner Lernreise und deiner Zusammenarbeit mit deiner Lernbegleitung und einem
        Lernpartner/einer Lernpartnerin</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Tipps und Tricks zur Organisation eines erfolgreichen Arbeitsalltags</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Umgang mit den sozialen Medien und Datenschutz</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Basiswissen Versicherungswirtschaft</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>Basiswissen Versicherungsrecht</li>
    </ul>
    <p class="mt-4">Du arbeitest an folgenden Leistungskriterien aus dem Qualifikationsprofil:</p>
    <h3>Arbeitsalltag/Lerneinheit: «Lucas Auftritt in den sozialen Medien und der Umgang mit sensiblen Daten»</h3>
    <p class="mt-4">Ich bin fähig, …</p>
     <ul>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>A3.1: … in Zusammenarbeit mit den IT-Spezialisten und der Marketingabteilung die Inhalte für den zu
        realisierenden Medienauftritt zielgruppengerecht festzulegen</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>A3.2: … für die verschiedenen Kundensegmente die passenden sozialen Medien zu definieren</li>
        <li class="flex items-center"><it-icon-check class="hidden h-12 w-12 flex-none text-sky-500 lg:inline-block it-icon"></it-icon-check>A3.3. … die Inhalte compliant zu halten</li>
    </ul>
    """

    class Meta:
        model = Circle


class LearningSequenceFactory(wagtail_factories.PageFactory):
    title = "Anwenden"
    icon = "it-icon-ls-apply"

    class Meta:
        model = LearningSequence


class LearningUnitFactory(wagtail_factories.PageFactory):
    title = "Fahrzeug"
    title_hidden = False

    class Meta:
        model = LearningUnit


class LearningContentAttendanceCourseFactory(wagtail_factories.PageFactory):
    title = "Platzhalter Inhalt"
    minutes = 0
    description = RichText("Platzhalter Beschreibung")
    content_url = ""

    class Meta:
        model = LearningContentAttendanceCourse


class LearningContentVideoFactory(wagtail_factories.PageFactory):
    title = "Platzhalter Video"
    minutes = 0
    content_url = "https://www.youtube.com/embed/qhPIfxS2hvI"
    description = RichText("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")

    class Meta:
        model = LearningContentVideo


class LearningContentPlaceholderFactory(wagtail_factories.PageFactory):
    title = "Platzhalter Video"
    minutes = 0
    content_url = ""
    description = RichText("Platzhalter")

    class Meta:
        model = LearningContentPlaceholder


class LearningContentFeedbackFactory(wagtail_factories.PageFactory):
    title = "Feedback"
    minutes = 0
    content_url = ""
    description = RichText("")

    class Meta:
        model = LearningContentFeedback


class LearningContentLearningModuleFactory(wagtail_factories.PageFactory):
    title = "Beispiel Lernmodul"
    minutes = 0
    content_url = ""
    description = RichText("")

    class Meta:
        model = LearningContentLearningModule


class LearningContentMediaLibraryFactory(wagtail_factories.PageFactory):
    title = "Mediathek"
    minutes = 0
    content_url = ""
    description = RichText("")

    class Meta:
        model = LearningContentMediaLibrary


class LearningContentTestFactory(wagtail_factories.PageFactory):
    title = "Fachcheck"
    minutes = 0
    content_url = ""
    description = RichText("")

    class Meta:
        model = LearningContentTest


class LearningContentRichTextFactory(wagtail_factories.PageFactory):
    title = "Rich Text"
    minutes = 0
    content_url = ""
    description = RichText("")

    class Meta:
        model = LearningContentRichText


class LearningContentAssignmentFactory(wagtail_factories.PageFactory):
    title = "Geleitete Fallarbeit"
    minutes = 0
    content_url = ""
    description = RichText("")

    class Meta:
        model = LearningContentAssignment


class LearningContentDocumentListFactory(wagtail_factories.PageFactory):
    title = "Dokumente"
    minutes = 0
    content_url = ""
    description = RichText("")
    documents = [
        ("document", LearnMediaBlockFactory()),
        ("document", LearnMediaBlockFactory()),
    ]

    class Meta:
        model = LearningContentDocumentList
