import React from "react";
import { Document, Page, Text, View, Font, Image } from "@react-pdf/renderer";
import { presidentSignatureBase64 } from "../data/presidentSignatureBase64";
import { RenderCompanyLogo, SignatureForm, Styles } from "./SharedElements";

Font.register({
  family: "Helvetica",
  fonts: [
    { src: "https://fonts.gstatic.com/s/helvetica/v15/Helvetica-Regular.ttf" },
    {
      src: "https://fonts.gstatic.com/s/helvetica/v15/Helvetica-Bold.ttf",
      fontWeight: "bold",
    },
  ],
});

const Contract = ({
  domiciliationData = {},
  appConfig = {},
  contractFields = {},
} = {}) => {
  const { company } = appConfig;

  const {
    intro_contrat,
    raison_sociale,
    forme_juridique,
    qualite,
    civilite,
    prenoms,
    nom_de_jeune_fille_si_madame,
    nom,
    adresse,
    code_postal,
    ville,
    adresse_de_domiciliation,
    date_souhaitee_du_debut_de_la_domiciliation,
  } = contractFields;

  const sections = [
    {
      title: "Contrat de domiciliation",
      content: <RenderCompanyLogo logoBase64={company?.logoBase64} />,
    },
    {
      title: null,
      content: (
        <Text style={Styles.textParagraph}>{`
Entre les soussignés :
${intro_contrat}
Ci-après désignée « le domiciliataire »
D’une part et,
La société ${raison_sociale} ${forme_juridique} représentée par son  ${qualite} , ${civilite} ${prenoms} ${nom_de_jeune_fille_si_madame} ${nom} demeurant ${adresse} ${code_postal} ${ville}.
Ci-après désignée « Le domicilié »
Il a été arrêté et convenu ce qui suit :
Article préliminaire : consentement des parties
Le Domicilié déclare avoir pris connaissance de tous les documents afférents à la présente (annexes, autorisation du pli du courrier et attestation comptable) et déclare donner acceptation expresse pour la totalité des clauses figurants dans les documents.

Article 1 : OBJET DU CONTRAT
Le présent contrat a pour objet la domiciliation du siège social du Domicilié conformément aux dispositions des articles R123-167 à R 123-171 du Code de Commerce.

Article 2 : OBLIGATION DES PARTIES
2.1 Obligations du domiciliataire
2.1.1 Obligations légales.
Conformément aux dispositions législatives des articles R 123-167 à R 123-171 du code de Commerce, le Domiciliataire s’engage, pendant toute la durée du présent contrat, à :
	•	Etre immatriculé au Registre du Commerce et des Sociétés ou au Répertoire des Métiers, durant l’occupation des locaux.
	•	Mettre à la disposition du Domicilié des locaux dotés d’une pièce destinée à assurer la confidentialité nécessaire et à permettre une réunion régulière des organes de direction, d’administration ou de surveillance de l’entreprise ainsi que la tenue, la conservation et consultation des livres, registres et documents prescrits par la loi (Décret N°85.1280 du 5 décembre 1985, Article 2.6.1 modifié par Décret 2007-750 du 9 mai 2007).
	•	Détenir, pour le Domicilié, un dossier contenant les pièces justificatives relatives au domicile de son représentant légal, ses coordonnées téléphoniques ainsi que les lieux d’activité et de détention des documents comptables lorsqu’ils ne sont pas conservés chez elle.
	•	Informer le greffier du tribunal, à l’expiration du contrat ou en cas de résiliation anticipée de celui-ci, de la cessation de la domiciliation de l’entreprise dans ses locaux.
	•	Communiquer aux huissiers de justice, munis d’un titre exécutoire, les renseignements propres à joindre le domicilié.
	•	Fournir, chaque trimestre, au centre des impôts et aux organismes de recouvrement des cotisations et contributions de sécurité sociale compétents, une liste des personnes qui se sont domiciliées dans ses locaux au cours de cette période ou qui ont mis fin à leur domiciliation ainsi que chaque année, une liste des personnes domiciliées au 1er

  2.1.2 Prestations
Le domiciliataire s’engage à fournir au Domicilié les prestations de services suivantes :
Domiciliation commerciale.
Cette prestation permet au domicilié de fixer son siège social dans les locaux du Domiciliataire situés au ${adresse_de_domiciliation}.
Domiciliation postale.
La prestation sus évoquée permet uniquement au Domicilié de recevoir son courrier (recommandé et pli spécial avec autorisation) , sans pour autant en faire une utilisation dans sa communication commerciale qui serait susceptible de publicité mensongère ou trompeuse, le tout conformément aux dispositions législatives en vigueur et notamment l’article L-121-1 du Code de la consommation.
La mise à disposition des locaux.
Cette prestation permet au domicilié de bénéficier de locaux dotés d’une pièce destinée à assurer la confidentialité nécessaire et y permettre une réunion régulière des organes chargés de la direction, de l’administration ou de la surveillance de l’entreprise ainsi que la tenue, la conservation et la consultation des livres, registres et documents prescrits par les lois et règlements. Cette prestation est soumise à une rémunération supplémentaire proposée sur devis.

2.2 Obligations du Domicilié
2.2.1. Obligations générales
Dès la signature du présent contrat et durant toute la durée de celui-ci, le domicilié s’engage à :
	•	Justifier de son inscription au Registre du Commerce ou des Métiers ou toutes autres administrations compétentes dans les trois mois qui suivent la date d’engagement de la domiciliation, faute de quoi le Domiciliataire se réserve le droit de commander les documents justificatifs au frais du domicilié, au coût de 20 € HT (Vingt euros hors-taxes) pour le K-bis et de 40 € HT (quarante euros hors-taxes) pour les statuts.
	•	certifier l’exactitude des renseignements fournis à l’appui de la signature du contrat avec le Domiciliataire, certifier ne pas être en situation de liquidation de biens, redressement judiciaire en ce qui concerne l’entreprise ou les entreprises qu’il dirige, que ces établissements soient l’objet ou non dudit contrat, certifier ne pas être à titre personnel frappé de faillite personnelle ou d’interdiction de gérer, attester l’exactitude de tous les renseignements fournis au Domiciliataire tant en ce qui concerne son état civil que l’entreprise représentée.
Dans tous les cas, le Domicilié sera responsable de ses dettes après son départ du ${adresse_de_domiciliation}.
Tout renseignement fourni par le Domicilié pourra être communiqué sur demande aux représentants des organismes officiels et le domicilié en donne dès à présent son accord.
	•	Utiliser effectivement et exclusivement les locaux, soit comme siège de l’entreprise, soit si le siège est situé à l’étranger comme agence, succursale ou représentation ;
	•	Tenir informé le Domiciliataire de toute modification concernant son activité ;
En cas de changement, soit d’adresse, soit d’état civil personnel, soit de dénomination sociale, soit de nom commercial, soit de sigle (afin d’éviter les homonymes), soit de forme juridique ou d’objet, soit de dirigeant, soit de l’utilisateur des prestations fournies au titre du présent contrat, le Domicilié devra fournir tous les documents afférents à ces modifications au Domiciliataire et présenter son successeur ou le nouvel utilisateur, avant de déclarer tout changement auprès du Greffe du Tribunal de Commerce ou de la Chambre des Métiers ou de toute autre administration compétente.
	•	Déclarer tout changement statutaire et/ou relatif à sa forme juridique et son objet, ainsi qu’au nom et au domicile personnel des personnes ayant le pouvoir de l’engager à titre habituel ; donner mandat au Domiciliataire, qui l’accepte, de recevoir en son nom toute notification. Faute d’exécution d’une telle obligation, le domicilié s’acquittera dun règlement de 30 € HT (trente euros hors-taxes) correspondant aux frais de recherches des informations à fournir.
Les colis et plis spéciaux (DHL, CHRONOPOST, UPS, ...) ne seront acceptés qu’après signature d’un pouvoir de réception, aux conditions indiquées sur ledit document.
Le Domicilié s’engage à signer la procuration postale fournie avec le contrat au bénéfice du Domiciliataire afin de pouvoir réceptionner en son nom ou au nom de son entreprise les envois recommandés.
2.2.2. Obligations particulières relatives à la formule choisie par le domicilié
- Le domicilié s’engage à respecter les modalités d’exécution et obligations contractuelles qui figurent en annexe du présent contrat.
- Lesdites annexes reflètent l’offre à laquelle le domicilié a souscrit et doivent être considérées comme partie intégrante du présent contrat et doivent être à cet égard signées par les parties.
2.2.3. Redevance
En contrepartie des obligations auxquelles le Domiciliataire sest engagé à l’article 2.1, le domicilié s’engage à régler une redevance mensuelle dont le montant figure en annexe conformément à l’offre choisie. Ladite redevance est payable par prélèvement bancaire automatique, dit “ mandat SEPA “ le dix du mois en cours. Elle couvre les différentes prestations décrites dans chacune des offres à l’exception de la mise à disposition des locaux qui fait l’objet d’une tarification supplémentaire et des éventuels frais de réexpédition.
Lesdits frais de réexpédition du courrier prévus dans certaines offres seront facturés en sus au Domicilié et payables par prélèvement bancaire automatique, dit “ Mandat SEPA “ le dix du mois en cours. Une facture dématérialisée sera adressée mensuellement au gérant du Domicilié.
En cas d’anomalie ou erreur de prélèvement, ou en cas de règlement autre que le prélèvement mensuel ou le règlement de l’offre à l’année, la somme forfaitaire mensuelle sera majorée au tarif bancaire en vigueur par incident ou erreur commise, au titre des frais administratifs.
Pour les règlements par chèque, prélèvement ou carte bancaire remis à l’encaissement et impayés, des frais au tarif bancaire en vigueur seront imputés automatiquement sur la prochaine facture de domiciliation.
Le Domicilié donne dès à présent son accord pour une révision chaque année du tarif mensuel des prestations de services définies à l’Article 2.1.2. en fonction du taux d’inflation (indice IPC) ou de l’évolution des services auxquels il souscrit, ainsi que pour le mode de règlement proposé par le Domiciliataire.
Le domicilié sera tenu informé de la révision du tarif mensuel des prestations de services, un mois avant ladite révision.
Ce contrat est ferme et définitif à la signature et aucun remboursement même partiel ne saurait être revendiqué par le domicilié.

Article 3 : Accès à l’espace et utilisation des locaux
Sauf autorisation exceptionnelle mentionnée dans les conditions particulières ou par avenant à ce présent contrat, le Domicilié n’aura en aucun cas le droit de sous louer ou donner accès à l’espace à un tiers, hors prestations permises par le présent contrat.

Article 4 : Durée du contrat
Le présent contratest consenti pour une durée minimale de 3 mois à compter du ${date_souhaitee_du_debut_de_la_domiciliation}.
4.1. Renouvellement
Le présent contrat peut être renouvelé, par tacite reconduction, sauf résiliation notifiée par l’une ou l’autre des parties par lettre recommandée avec accusé de réception et expédiée au moins 30 (trente) jours avant le terme annuel.
4.2. Résiliation
Avant le terme de ce préavis, le Domicilié devra impérativement, pour valider sa résiliation définitive de contrat, adresser par courrier, une photocopie de son nouveau Kbis ou tout document remis par l’administration compétente, justifiant le transfert de siège social ou de sa radiation.
En l’absence de ce justificatif, le Domiciliataire se réserve le droit de poursuivre le contrat de domiciliation dans les termes initiaux.
L’adresse de correspondance est :
I DOM YOU ${adresse_de_domiciliation}
À l’expiration du présent contrat ou en cas de résiliation de celui-ci, le Domiciliataire s’engage à informer le greffe du Tribunal de Commerce de Paris de la cessation de la domiciliation.
Au terme de ce contrat, le courrier sera refusé par le Domiciliataire avec l’annotation « N’habite Pas à l’Adresse Indiquée ».

Article 5 : Dépôt de garantie
Le Domicilié verse, à la date de signature du présent contrat, à titre de dépôt de garantie, un montant correspondant à 3mois de redevance, en sus du mois correspondant à l’offre souscrite.
Le dépôt de garantie sera encaissé par le Domiciliataire dès sa remise par le Domicilié.
À chaque réajustement de la redevance, le dépôt de garantie sera diminué ou majoré de manière à toujours correspondre à 3 mois de redevance, hors taxes.
Ce dépôt de garantie est destiné, en cas de résiliation du contrat, au paiement des sommes dues pour la fourniture des services, l’exécution parfaite des clauses du présent contrat et des sommes dues par le Domicilié dont le Domiciliataire pourrait être rendu responsable.
En effet, ce dépôt de garantie pourra être utilisé soit pour défaut de règlement, soit pour la conséquence de dommages occasionnés par le Domicilié ou ses commettants.
Ledit dépôt de garantie ne saurait en aucun cas dispenser le Domicilié de payer toutes les redevances jusqu’au terme prévu.
Dans l’hypothèse où le dépôt de garantie versé par le Domicilié est inférieur au montant des remises en état opérées par le Domiciliataire au terme du contrat, le Domicilié s’engage à rembourser au Domiciliataire la différence entre la valeur des remises en état justifiée sur facture et le dépôt de garantie.
À la fin du contrat, ce dépôt de garantie sera remboursé déduction faite des sommes qui pourraient être dues au Domiciliataire.
Les sommes versées à titre de dépôt de garantie ne sauraient produire d’intérêt au profit du Domicilié.

Article 6 : Responsabilité des Parties
Dans la limite maximale admise par le droit français, le Domiciliataire décline toute responsabilité à l’égard du Domicilié en raison de la perte ou d’un dommage subi par le client en relation avec le présent contrat, avec les prestations, le ou les espaces, à moins que la perte ou le dommage ne résulte d’un acte intentionnel ou d’une négligence du Domiciliataire.
Le Domiciliataire décline toute responsabilité en raison de la perte résultant d’un manquement relatif à la fourniture d’une prestation par suite d’une panne mécanique, d’une grève, de la déchéance des droits du Domiciliataire sur les espaces ou pour toute autre raison à moins que le Domiciliataire n’ait agi intentionnellement ou par négligence.
En tout état de cause, le Domiciliataire ne sera responsable d’une perte ou dun dommage que si le Domicilié len avise par écrit et lui octroie un délai qui ne peut être inférieur à 20 (vingt) jours pour y remédier.
Si le Domicilié considère que le Domiciliataire a failli dans la fourniture des prestations prévues à l’article 2.1.2 des conditions particulières du contrat, le Domicilié devra en aviser le Domiciliataire par écrit et lui octroyer un délai qui ne peut être inférieur à 20 (vingt) jours afin que le Domiciliataire puisse y remédier.
En tout état de cause, seuls les préjudices directs pourront permettre l’engagement de la responsabilité des parties, étant précisé que pour ce qui est de la responsabilité du Domiciliataire, cette dernière ne pourra être supérieure au total du montant des sommes encaissées par ce dernier et payées par le Domicilié dans le cadre de l’exécution du contrat.

Article 7 : Assurance
Le Domicilié est responsable du matériel qu’il entrepose ${adresse_de_domiciliation}
Le Domiciliataire ne pourra être tenu responsable d’un vol dans les locaux.
Il est donc vivement conseillé au Domicilié de s’assurer pour son activité professionnelle (assurance civile professionnelle) et pour les espaces qu’il occupe (assurance multirisques bureaux).

Article 8 : Élection de domicile
Les parties font élection de domicile au ${adresse_de_domiciliation}.

Article 9 : Différend - Attribution de juridiction
Tout litige pouvant survenir entre les parties à l’occasion de l’exécution du présent contrat devra être porté devant le Tribunal de Commerce de Paris.

Article 10 : Confidentialité
Les parties s’engagent à traiter comme confidentielles toutes informations qu’elles seraient amenées à obtenir dans le cadre de ce contrat.`}</Text>
      ),
    },
    SignatureForm(),
    {
      title: "Pour le responsable",
      content: (
        <>
          <Image
            src={`data:image/png;base64,${presidentSignatureBase64}`}
            style={{ width: 200 }}
          />
        </>
      ),
    },
  ].filter(({ condition = true }) => condition);

  return (
    <Document>
      <Page style={Styles.body}>
        {sections.map((section, index) => (
          <View key={index} style={Styles.section}>
            {section.title && (
              <Text style={Styles.sectionTitle}>{section.title}</Text>
            )}
            {section.content}
          </View>
        ))}
      </Page>
    </Document>
  );
};

export default Contract;
