from ..endorsements.endorsement_header import generate_endorsement_page_header_text
from ...config import NEW_PAGE_TAG


@staticmethod
def generate_faq34ab_endorsement_text() -> str:
    endorsement_header_text = generate_endorsement_page_header_text()
    text = (
        f"{endorsement_header_text}"
        "Formulaire d'avenant du Québec\n"
        "F.A.Q. N 34 (A-B)\n"
        "Assurance de personnes\n"
        "(modifications des montants d'assurance ou des personnes assurées)\n"
        "Le titre de l'avenant doit être écrit à la section « Conditions particulières » du contrat "
        "d'assurance. Quant aux informations requises dans l'avenant, elles peuvent être écrites à "
        "cette section ou dans l'avenant même, au choix de l'assureur.\n"
        "Nom de l'assureur : \n"
        "Nom de l'assuré désigné : \n"
        "Avenant à la police d'assurance automobile N :\n"
        "Date de prise d'effet : cet avenant s'applique à partir du à 0 h 01, heure normale "
        "à l'adresse de l'assuré désigné.\n"
        "Véhicule visé : cet avenant s'applique uniquement au véhicule désigné suivant :\n"
        "(numéro de référence écrit à la section « Conditions particulières » du contrat d'assurance)\n"
        "Description de l'avenant\n"
        "Cet avenant modifie le F.A.Q. N 34 intitulé « Assurance de personnes » du contrat d'assurance, "
        "selon l'option applicable.\n"
        "Pour connaître l‘option applicable, voir l'article 4 de la section « Conditions "
        "particulières » du contrat d'assurance.\n"
        "Option 34A – Modifications lorsque l'assuré désigné est un individu\n"
        "Cette option prévoit que pour les personnes désignées au tableau ci-dessous :\n"
        "\t les montants maximums écrits au tableau modifient ceux du F.A.Q. N 34 en les remplaçant "
        "ou, si le cas se présente, en s'ajoutant;\n"
        "seules sont applicables les divisions et les subdivisions pour lesquelles un montant, "
        "une prime d'assurance ou une ristourne est écrit au tableau, ou écrit spécifiquement pour "
        "cet avenant à la section « Conditions particulières » du contrat d'assurance.\n"
        f"{NEW_PAGE_TAG}\n"
        f"{endorsement_header_text}"
        "MONTANTS MAXIMUMS\n"
        "DIVISION 1 | DIVISION 2\n"
        "Nom de la personne assurée | Date de naissance | Subdivision A Indemnités en cas de "
        "décès (capital assuré) | Subdivision B Indemnités en cas de mutilation (capital assuré) | "
        "Subdivision C Remboursement de frais médicaux (montant maximum) | DIVISION 2 Indemnités "
        "en cas d'incapacité totale (montant maximum, par semaine) | Primes d'assurance ou ristournes\n"
        "1. |  | $ | $ | $ | $ | $\n"
        "2. |  | $ | $ | $ | $ | $\n"
        "3. |  | $ | $ | $ | $ | $\n"
        "4. |  | $ | $ | $ | $ | $\n"
        " |  |  |  |  | Total: |  $\n"
        "Option 34B – Modifications lorsque l'assuré désigné est une personne morale, une "
        "société ou une association"
        "Lorsque l'assuré désigné est une personne morale, une société ou une association, le F.A.Q. "
        "N 34 est modifié de la façon suivante :\n"
        "\t seuls les employés, actionnaires, membres ou associés désignés au tableau ci-dessous "
        "sont considérés comme des « assurés désignés »;\n"
        "\t seules sont applicables les divisions et les subdivisions pour lesquelles un montant, "
        "une prime d'assurance ou une ristourne est écrit au tableau ci-dessous, ou écrit spécifiquement "
        "pour cet avenant à la section « Conditions particulières » du contrat d'assurance :\n"
        "MONTANTS MAXIMUMS\n"
        "DIVISION 1 | DIVISION 2\n"
        "Nom de la personne assurée | Date de naissance | Subdivision A Indemnités en cas de "
        "décès (capital assuré) | Subdivision B Indemnités en cas de mutilation (capital assuré) | "
        "Subdivision C Remboursement de frais médicaux (montant maximum) | DIVISION 2 Indemnités "
        "en cas d'incapacité totale (montant maximum, par semaine) | Primes d'assurance ou ristournes\n"
        "1. |  | $ | $ | $ | $ | $\n"
        "2. |  | $ | $ | $ | $ | $\n"
        "3. |  | $ | $ | $ | $ | $\n"
        "4. |  | $ | $ | $ | $ | $\n"
        " |  |  |  |  | Total: |  $\n"
        "Toutes les autres conditions du contrat d'assurance restent les mêmes.\n"
        f"{NEW_PAGE_TAG}\n"
    )

    return text
