POS — Data model
15 tables · auto-generated from migrations-v2/*.sql — do not edit by hand.
ER diagram
%%{init: {"theme":"base","themeVariables":{"darkMode":true,"background":"#1e1e1e","primaryColor":"#2d2d30","primaryBorderColor":"#569cd6","primaryTextColor":"#d4d4d4","lineColor":"#6796c6","secondaryColor":"#3a3d41","secondaryBorderColor":"#dcdcaa","secondaryTextColor":"#d4d4d4","tertiaryColor":"#252526","tertiaryBorderColor":"#569cd6","noteBkgColor":"#3a3d41","noteTextColor":"#dcdcaa","clusterBkg":"#252526","clusterBorder":"#569cd6","titleColor":"#569cd6","attributeBackgroundColorOdd":"#252526","attributeBackgroundColorEven":"#2d2d30"},"er":{"useMaxWidth":false}}}%%
erDiagram
POS_APPLIED_PROMOTION {
integer id PK
text company_id FK
integer order_id FK
text program_ref
text rule_ref
text reward_ref
text benefit_json
text affected_line_refs
}
POS_CASH_COUNT {
integer id PK
text company_id FK
integer session_id FK
text count_type
numeric total
text lines_json
text counted_by
integer counted_at
}
POS_CASH_MOVEMENT {
integer id PK
text company_id FK
integer session_id FK
text direction
text reason_code
numeric amount
text note
text actor
}
POS_CONSOLIDATION_RUN {
integer id PK
text company_id FK
integer session_id FK
text state
integer progress_done
integer progress_total
text error_class
text error_message
}
POS_DEVICE_SEQUENCE {
integer id PK
text company_id FK
integer terminal_id FK
text sequence_name
integer next_value
integer lease_start
integer lease_end
integer updated_at
}
POS_ERECEIPT_SUBMISSION {
integer id PK
text company_id FK
integer order_id FK
text doc_type
text state
text provider_adapter
text signed_artifact_ref
integer submitted_at
}
POS_ORDER {
integer id PK
text company_id FK
integer session_id FK
integer terminal_id FK
integer profile_id FK
integer customer_party_id FK
integer origin_order_id FK
integer kernel_document_id FK
}
POS_ORDER_LINE {
integer id PK
text company_id FK
integer order_id FK
integer item_id FK
integer item_variant_id FK
integer serial_lot_bundle_id FK
integer returned_against_line_id FK
integer line_no
}
POS_PAYMENT {
integer id PK
text company_id FK
integer order_id FK
integer payment_method_id FK
text tender_kind
numeric amount
numeric tendered_amount
numeric change_amount
}
POS_PAYMENT_METHOD {
integer id PK
text company_id FK
text code
text name
text kind
text settlement_posting_group_code
integer requires_external_ref
integer opens_drawer
}
POS_PROFILE {
integer id PK
text company_id FK
integer branch_party_id FK
integer default_location_id FK
text code
text name
text default_tax_code
integer tax_included
}
POS_SESSION {
integer id PK
text company_id FK
integer profile_id FK
integer terminal_id FK
text session_uuid
text opened_by
text closed_by
numeric opening_float
}
POS_SETTLEMENT_EXPECTATION {
integer id PK
text company_id FK
integer session_id FK
integer payment_method_id FK
numeric expected_amount
text expected_value_date
text state
integer created_at
}
POS_SYNC_ENVELOPE {
integer id PK
text company_id FK
integer terminal_id FK
text envelope_uuid
text payload_kind
text payload_doc_uuid
integer attempt_count
text state
}
POS_TERMINAL {
integer id PK
text company_id FK
integer profile_id FK
text code
text label
text device_key_hash
text status
integer last_seen_at
}
POS_ORDER ||--o{ POS_APPLIED_PROMOTION : order
POS_SESSION ||--o{ POS_CASH_COUNT : session
POS_SESSION ||--o{ POS_CASH_MOVEMENT : session
POS_SESSION ||--o{ POS_CONSOLIDATION_RUN : session
POS_TERMINAL ||--o{ POS_DEVICE_SEQUENCE : terminal
POS_ORDER ||--o{ POS_ERECEIPT_SUBMISSION : order
POS_SESSION ||--o{ POS_ORDER : session
POS_TERMINAL ||--o{ POS_ORDER : terminal
POS_PROFILE ||--o{ POS_ORDER : profile
POS_ORDER ||--o{ POS_ORDER : origin_order
POS_ORDER ||--o{ POS_ORDER_LINE : order
POS_ORDER_LINE ||--o{ POS_ORDER_LINE : returned_against_line
POS_ORDER ||--o{ POS_PAYMENT : order
POS_PAYMENT_METHOD ||--o{ POS_PAYMENT : payment_method
POS_PROFILE ||--o{ POS_SESSION : profile
POS_TERMINAL ||--o{ POS_SESSION : terminal
POS_SESSION ||--o{ POS_SETTLEMENT_EXPECTATION : session
POS_PAYMENT_METHOD ||--o{ POS_SETTLEMENT_EXPECTATION : payment_method
POS_TERMINAL ||--o{ POS_SYNC_ENVELOPE : terminal
POS_PROFILE ||--o{ POS_TERMINAL : profile
Cross-module references
POS_APPLIED_PROMOTION.company_id → COMPANY (core)
POS_CASH_COUNT.company_id → COMPANY (core)
POS_CASH_MOVEMENT.company_id → COMPANY (core)
POS_CONSOLIDATION_RUN.company_id → COMPANY (core)
POS_DEVICE_SEQUENCE.company_id → COMPANY (core)
POS_ERECEIPT_SUBMISSION.company_id → COMPANY (core)
POS_ORDER.company_id → COMPANY (core)
POS_ORDER.customer_party_id → PARTY (core)
POS_ORDER.kernel_document_id → DOCUMENT (core)
POS_ORDER_LINE.company_id → COMPANY (core)
POS_ORDER_LINE.item_id → ITEM (core)
POS_ORDER_LINE.item_variant_id → ITEM_VARIANT (core)
POS_ORDER_LINE.serial_lot_bundle_id → IDENTITY_BUNDLE (core)
POS_PAYMENT.company_id → COMPANY (core)
POS_PAYMENT_METHOD.company_id → COMPANY (core)
POS_PROFILE.company_id → COMPANY (core)
POS_PROFILE.branch_party_id → PARTY (core)
POS_PROFILE.default_location_id → LOCATION (core)
POS_SESSION.company_id → COMPANY (core)
POS_SETTLEMENT_EXPECTATION.company_id → COMPANY (core)
POS_SYNC_ENVELOPE.company_id → COMPANY (core)
POS_TERMINAL.company_id → COMPANY (core)
Data dictionary
erp_pos_applied_promotion · 11 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| order_id |
integer |
FK |
erp_pos_order |
| program_ref |
text |
|
|
| rule_ref |
text |
|
|
| reward_ref |
text |
|
|
| benefit_json |
text |
|
|
| affected_line_refs |
text |
|
|
| coupon_code |
text |
|
|
| authorization_mode |
text |
|
|
| created_at |
integer |
|
|
erp_pos_cash_count · 9 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| session_id |
integer |
FK |
erp_pos_session |
| count_type |
text |
|
|
| total |
numeric |
|
|
| lines_json |
text |
|
|
| counted_by |
text |
|
|
| counted_at |
integer |
|
|
| created_at |
integer |
|
|
erp_pos_cash_movement · 10 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| session_id |
integer |
FK |
erp_pos_session |
| direction |
text |
|
|
| reason_code |
text |
|
|
| amount |
numeric |
|
|
| note |
text |
|
|
| actor |
text |
|
|
| moved_at |
integer |
|
|
| created_at |
integer |
|
|
erp_pos_consolidation_run · 13 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| session_id |
integer |
FK |
erp_pos_session |
| state |
text |
|
|
| progress_done |
integer |
|
|
| progress_total |
integer |
|
|
| error_class |
text |
|
|
| error_message |
text |
|
|
| resulting_invoice_ref |
text |
|
|
| resulting_journal_ref |
text |
|
|
| reversal_ref |
text |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_device_sequence · 8 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| terminal_id |
integer |
FK |
erp_pos_terminal |
| sequence_name |
text |
|
|
| next_value |
integer |
|
|
| lease_start |
integer |
|
|
| lease_end |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_ereceipt_submission · 12 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| order_id |
integer |
FK |
erp_pos_order |
| doc_type |
text |
|
|
| state |
text |
|
|
| provider_adapter |
text |
|
|
| signed_artifact_ref |
text |
|
|
| submitted_at |
integer |
|
|
| accepted_at |
integer |
|
|
| rejection_reason |
text |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_order · 29 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| order_uuid |
text |
|
|
| idempotency_key |
text |
|
|
| session_id |
integer |
FK |
erp_pos_session |
| terminal_id |
integer |
FK |
erp_pos_terminal |
| profile_id |
integer |
FK |
erp_pos_profile |
| kind |
text |
|
|
| state |
text |
|
|
| customer_party_id |
integer |
FK |
erp_party |
| device_sequence_no |
integer |
|
|
| provisional_receipt_no |
text |
|
|
| official_receipt_no |
text |
|
|
| fiscal_doc_type |
text |
|
|
| buyer_tax_json |
text |
|
|
| net_total |
numeric |
|
|
| vat_total |
numeric |
|
|
| gross_total |
numeric |
|
|
| discount_total |
numeric |
|
|
| rounding_adjustment |
numeric |
|
|
| currency_code |
text |
|
|
| origin_order_id |
integer |
FK |
erp_pos_order |
| channel |
text |
|
|
| kernel_document_id |
integer |
FK |
erp_document |
| finalized_device_at |
integer |
|
|
| server_received_at |
integer |
|
|
| posted_at |
integer |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_order_line · 19 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| order_id |
integer |
FK |
erp_pos_order |
| line_no |
integer |
|
|
| item_id |
integer |
FK |
erp_item |
| item_variant_id |
integer |
FK |
erp_item_variant |
| description |
text |
|
|
| qty |
numeric |
|
|
| uom |
text |
|
|
| conversion_factor |
numeric |
|
|
| unit_price |
numeric |
|
|
| price_source |
text |
|
|
| discount_json |
text |
|
|
| tax_json |
text |
|
|
| serial_lot_bundle_id |
integer |
FK |
erp_identity_bundle |
| returned_against_line_id |
integer |
FK |
erp_pos_order_line |
| warranty_until |
text |
|
|
| cogs_amount |
numeric |
|
|
| created_at |
integer |
|
|
erp_pos_payment · 12 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| order_id |
integer |
FK |
erp_pos_order |
| payment_method_id |
integer |
FK |
erp_pos_payment_method |
| tender_kind |
text |
|
|
| amount |
numeric |
|
|
| tendered_amount |
numeric |
|
|
| change_amount |
numeric |
|
|
| external_ref |
text |
|
|
| capture_state |
text |
|
|
| captured_at |
integer |
|
|
| created_at |
integer |
|
|
erp_pos_payment_method · 14 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| code |
text |
|
|
| name |
text |
|
|
| kind |
text |
|
|
| settlement_posting_group_code |
text |
|
|
| requires_external_ref |
integer |
|
|
| opens_drawer |
integer |
|
|
| settlement_expected |
integer |
|
|
| provider_adapter |
text |
|
|
| allowed_refund |
integer |
|
|
| status |
text |
|
|
| policy_json |
text |
|
|
| created_at |
integer |
|
|
erp_pos_profile · 17 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| code |
text |
|
|
| name |
text |
|
|
| branch_party_id |
integer |
FK |
erp_party |
| default_location_id |
integer |
FK |
erp_location |
| default_tax_code |
text |
|
|
| tax_included |
integer |
|
|
| consolidation_mode |
text |
|
|
| stock_posting_point |
text |
|
|
| negative_stock_policy |
text |
|
|
| variance_threshold |
numeric |
|
|
| offline_cap_seconds |
integer |
|
|
| currency_code |
text |
|
|
| policy_json |
text |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_session · 19 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| session_uuid |
text |
|
|
| profile_id |
integer |
FK |
erp_pos_profile |
| terminal_id |
integer |
FK |
erp_pos_terminal |
| opened_by |
text |
|
|
| closed_by |
text |
|
|
| opening_float |
numeric |
|
|
| state |
text |
|
|
| opened_at |
integer |
|
|
| closed_at |
integer |
|
|
| expected_cash |
numeric |
|
|
| counted_cash |
numeric |
|
|
| cash_variance |
numeric |
|
|
| variance_approval_ref |
text |
|
|
| closing_journal_ref |
text |
|
|
| z_report_json |
text |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_settlement_expectation · 9 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| session_id |
integer |
FK |
erp_pos_session |
| payment_method_id |
integer |
FK |
erp_pos_payment_method |
| expected_amount |
numeric |
|
|
| expected_value_date |
text |
|
|
| state |
text |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_sync_envelope · 11 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| envelope_uuid |
text |
|
|
| terminal_id |
integer |
FK |
erp_pos_terminal |
| payload_kind |
text |
|
|
| payload_doc_uuid |
text |
|
|
| attempt_count |
integer |
|
|
| state |
text |
|
|
| last_error |
text |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|
erp_pos_terminal · 12 cols
| column |
type |
key |
references |
| id |
integer |
PK |
|
| company_id |
text |
FK |
erp_company |
| profile_id |
integer |
FK |
erp_pos_profile |
| code |
text |
|
|
| label |
text |
|
|
| device_key_hash |
text |
|
|
| status |
text |
|
|
| last_seen_at |
integer |
|
|
| app_version |
text |
|
|
| schema_version |
text |
|
|
| created_at |
integer |
|
|
| updated_at |
integer |
|
|