3.2 KiB
3.2 KiB
PDF Placeholder Registry
This registry freezes the placeholder naming contract for quotation PDF templates.
| Placeholder | Type | Ownership | Notes |
|---|---|---|---|
customer_name |
mapped | DB mapping | customer display name |
customer_addr |
mapped | DB mapping | multiline address |
customer_tel |
mapped | DB mapping | customer phone |
customer_email |
mapped | DB mapping | customer email |
customer_att |
mapped | DB mapping | quotation attention |
project_name |
mapped | DB mapping | project name |
site_location |
mapped | DB mapping | project location |
tel_label |
mapped | DB mapping | static label from pdfme.labels.tel |
email_label |
mapped | DB mapping | static label from pdfme.labels.email |
att_label |
mapped | DB mapping | static label from pdfme.labels.att |
project_label |
mapped | DB mapping | static label from pdfme.labels.project |
site_label |
mapped | DB mapping | static label from pdfme.labels.location |
quotation_date |
mapped | token alias | canonical formatted date token |
quotation_date_data |
mapped | DB mapping | active field-name mapping for date |
quotation_code |
mapped | token alias | canonical quotation code token |
quotation_code_data |
mapped | DB mapping | active field-name mapping for code |
quotation_price_data |
mapped | DB mapping | canonical price table string[][] |
quotation_price |
mapped | DB mapping | compatibility scalar token inside price table |
currency |
mapped | DB mapping | compatibility scalar token inside price table |
app1 |
mapped | DB mapping | prepared by name |
app1_position |
mapped | DB mapping | prepared by position |
app2 |
mapped | DB mapping | approved by name |
app2_position |
mapped | DB mapping | approved by position |
app3 |
mapped | DB mapping | authorized by name |
app3_position |
mapped | DB mapping | authorized by position |
topic |
reserved | dynamic topic engine | base runtime topic label template |
data_topic |
reserved | dynamic topic engine | base runtime topic rows template |
item_topic |
legacy reserved token | dynamic topic engine | allowed in schema token inventory, never stored as DB mapping row |
topic_* |
generated | dynamic topic engine | runtime-only generated keys |
item_topic_* |
generated | dynamic topic engine | runtime-only generated keys |
quotation_date_labe |
static visual | designer-owned | tolerated typo-like visual label |
quotation_code_lable |
static visual | designer-owned | tolerated typo-like visual label |
line |
static visual | designer-owned | readonly line artifact, no mapping |
Naming Rules
- do not store
topic_*oritem_topic_*keys incrm_document_template_mappings - keep
topicanddata_topicreserved for runtime schema cloning - treat typo-like names such as
quotation_date_labeandquotation_code_lableas static visual fields, not business placeholders - when the designer removes a field from the next template version, the remap script must not carry that mapping forward
- approved snapshots remain immutable to the template version they were generated from, even after that version becomes inactive