Skip to main content

Data Schema

Document Status: Placeholder - To be completed in Phase 4

Overview

LC DocCheck uses Azure Cosmos DB with a serverless deployment. Data is organised in a nested document structure optimised for the access patterns of LC compliance checking.

Database Structure

ContainerPartition KeyDescription
salesorders/idMain container for all sales order data
settings/userIdUser preferences and settings

Sales Order Document Structure

{
"id": "uuid",
"partitionKey": "uuid",
"orderNumber": "SO-2024-001",
"status": "active",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T14:22:00Z",

"lc_document": {
"id": "uuid",
"lc_number": "LC123456",
"issue_date": "2024-01-10",
"expiry_date": "2024-04-10",
"amount": 50000.00,
"currency": "USD",
"applicant_name": "Buyer Corp",
"beneficiary_name": "Seller Ltd",
"goods_description_raw": "...",
"documents_required_raw": "...",
"extracted_at": "2024-01-15T10:35:00Z"
},

"pi_document": {
"id": "uuid",
"pi_number": "PI-2024-001",
"date": "2024-01-05",
"total_value": 48500.00,
"currency": "USD",
"extracted_at": "2024-01-15T10:40:00Z"
},

"shipments": [
{
"id": "uuid",
"shipment_number": "SH-001",
"status": "pending",
"documents": {
"bill_of_lading": { ... },
"commercial_invoice": { ... },
"packing_list": { ... }
}
}
],

"comparisons": [
{
"id": "uuid",
"type": "lc_pi",
"status": "completed",
"overall_status": "discrepant",
"rule_results": [ ... ],
"compared_at": "2024-01-15T11:00:00Z"
}
]
}

Field Naming Convention

  • Cosmos DB: snake_case (e.g., lc_number, issue_date)
  • UI/Templates: camelCase via schema adapters (e.g., lcNumber, issueDate)

Document Types

Letter of Credit (LC)

~85 fields extracted from SWIFT MT700 format.

Proforma Invoice (PI)

~25 fields for invoice terms and line items.

Shipping Documents

  • Bill of Lading: ~45 fields
  • Commercial Invoice: ~30 fields
  • Packing List: ~25 fields
  • Certificate of Origin: ~20 fields

See Also