liberusoftware / real-estate-media-and-documents
Provider-neutral media and document records for Liberu real-estate applications.
Package info
github.com/liberusoftware/module-real-estate-media-and-documents
Type:liberu-module
pkg:composer/liberusoftware/real-estate-media-and-documents
Requires
- php: ^8.5
- illuminate/database: ^13.38.0
- illuminate/support: ^13.38.0
- liberusoftware/module-manager: ^1.0
- liberusoftware/organizations-teams: ^1.0
- liberusoftware/real-estate-properties: ^1.0
Requires (Dev)
- pestphp/pest: ^5.3.3
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-26 23:19:32 UTC
README
Document template catalogue
The module includes a small catalogue of copyable demonstration templates via DocumentTemplateCatalogue. It includes UK-focused residential tenancy and sales memorandum examples, plus jurisdiction-neutral versions suitable for localization to Spanish, Italian, French, German, Portuguese, Russian, Tajik or Uzbek workflows. Demonstrations are intentionally not seeded automatically: templates belong to a team and must be copied after legal review.
Every legal template is marked as a demonstration, uses explicit variables and sections, and keeps the governing-law text configurable. UK examples are illustrative only and should be reviewed against the current law and the property's jurisdiction.
Provider-neutral media and document records for photos, floorplans, video, certificates, brochures, rights, ordering, retention, reusable transaction templates, and digital signing. The package name is liberusoftware/real-estate-media-and-documents; its source repository intentionally uses the module- prefix.
Transaction document pattern
Templates are reusable, team-scoped definitions. document_type identifies the business document (for example tenancy_agreement or sales_memorandum), version makes published definitions immutable, and variables/sections describe the fields and layout expected by the renderer.
When a transaction document is created, CreateDocumentEnvelope renders the selected published template and stores the exact values, rendered content, and SHA-256 content hash. The envelope is the immutable signing subject; it is not re-rendered after invitations are issued. Participants are ordered by signing_order and carry their own role, identity, invitation, view, and signature state.
SignDocumentEnvelope records the signature method, consent timestamp, signer metadata, signature hash, and the envelope content hash. It prevents signing a completed or voided envelope, prevents duplicate signatures, enforces sequential signing, and moves the envelope to completed only after every participant has signed. This keeps tenancy agreements, sales memoranda, and future document types on the same workflow without coupling them to a particular signature provider.
API endpoints:
POST /api/v1/real-estate/media-and-documents/templates/{template}/envelopesGET /api/v1/real-estate/media-and-documents/envelopes/{envelope}POST /api/v1/real-estate/media-and-documents/envelopes/{envelope}/participants/{participant}/sign