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". |