Přeskočit obsah

Datový model a Architektura

Entity Relationship Diagram (ERD)

Vztahy mezi entitami zapojenými do procesu podepisování. Modul Signi rozšiřuje standardní entitu Document a využívá vazby na User a Contact.

erDiagram
    Document ||--o{ User : "Internal Signers (Navrhovatelé)"
    Document ||--o{ Contact : "External Signers (Podepisující)"
    Document ||--|| Attachment : "Zdrojový soubor (fileId)"
    Document ||--|| Attachment : "Podepsaný soubor (signedDocumentId)"

    Document {
        string signiId "ID kontraktu v Signi"
        bool isSend "Příznak odeslání"
        bool isSigned "Příznak podepsání"
        date sendDate "Datum odeslání"
        datetime signatureDate "Datum dokončení"
        enum signatureLocation "Remote / In-person"
        url signiDocumentLink "Odkaz do Signi UI"
    }

    User {
        string emailAddress
        string firstName
        string lastName
    }

    Contact {
        string emailAddress
        string firstName
        string lastName
    }

Technická architektura

Integrace je realizována jako rozšíření EspoCRM backendu, které komunikuje s REST API služby Signi.

  • Backend: PHP (Services, Controllers, Jobs)
  • Frontend: JavaScript (Custom View Handlers, Actions)
  • Storage: MySQL (Metadata stavů), FileSystem (PDF soubory)
  • Externí služba: Signi API (SaaS)

Klíčové komponenty

Komponenta Třída / Soubor Popis
Service Espo\Modules\Signi\Services\Signi Hlavní logika komunikace s API, odesílání a kontrola.
Controller Espo\Modules\Signi\Controllers\Signi API endpointy pro frontend (Odeslání, Storno).
Job Espo\Modules\Signi\Jobs\IsContractSigned Periodická kontrola stavu dokumentů a stahování podepsaných verzí.
Client Action client/src/actions/send.js Logika tlačítka "Send to Signi", validace UI.
Client Action client/src/actions/storno.js Logika tlačítka "Storno signing".