This commit includes the temporary Next.js build cache files, public brand logos, and project configuration added in this change.
75 KiB
75 KiB
PB Schema Audit — Unused / Legacy Fields
Generated by scripts/audit-pb-fields.py. For every non-system field in every business collection, counts references in the Next.js app source (src/, scripts/ — pb-exports/ is a schema dump and is excluded). A file is considered to "touch" a collection if it contains the collection name as a string literal (e.g. pb.collection("orders")) or the collection's PB id (pbc_3527180448).
Summary
- Total fields audited: 347
- Unused fields (0 references): 49
- Single-reference fields: 1
- Dead collections (never referenced by app): 3
driver_locations(base) — 8 fields all deadmasterdrilling_consignment(base) — 8 fields all deadpos(base) — 16 fields all dead
categories (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
match_brands |
text | no | ✅ 4 | scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
match_keywords |
text | no | ✅ 5 | scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
match_supplier_tags |
text | no | ✅ 5 | scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
display_order |
number | no | ✅ 7 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
is_active |
bool | no | ✅ 7 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
color |
text | no | ✅ 9 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
slug |
text | yes | ✅ 12 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
name |
text | yes | ✅ 26 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
companies (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
company_email |
no | ✅ 16 | src/app/(app)/companies/page.tsx src/app/(app)/companies/[id]/page.tsx src/components/company-form.tsx src/lib/pb-helpers.ts |
|
company_tel |
number | no | ✅ 16 | src/app/(app)/companies/page.tsx src/app/(app)/companies/[id]/page.tsx src/components/company-form.tsx src/lib/pb-helpers.ts |
vendor |
text | no | ✅ 41 | src/app/(app)/companies/page.tsx src/app/(app)/companies/[id]/page.tsx src/app/api/v1/companies/route.ts src/app/api/v1/companies/[id]/route.ts src/app/api/mcp/route.ts ... +9 more |
address |
text | no | ✅ 52 | src/app/(app)/companies/page.tsx src/app/(app)/companies/[id]/page.tsx src/app/api/v1/companies/route.ts src/app/api/v1/companies/[id]/route.ts src/app/api/mcp/route.ts ... +8 more |
coordinates |
geoPoint | no | ✅ 109 | src/app/(app)/companies/[id]/page.tsx src/app/api/v1/companies/route.ts src/app/api/v1/companies/[id]/route.ts src/app/api/mcp/route.ts src/components/company-form.tsx ... +8 more |
company |
text | no | ✅ 403 | src/app/(app)/companies/page.tsx src/app/(app)/companies/[id]/page.tsx src/app/api/v1/companies/route.ts src/app/api/v1/companies/[id]/route.ts src/app/api/mcp/route.ts ... +13 more |
customers (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
lastvisiteddate |
date | no | ✅ 12 | src/components/customer-form.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.test.ts src/lib/server/management-service.ts scripts/setup-pocketbase.ts ... +4 more |
dateadded |
date | no | ✅ 16 | src/app/(app)/customers/[id]/page.tsx src/components/customer-form.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts ... +6 more |
buyer_email |
text | no | ✅ 33 | src/app/(app)/customers/[id]/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts src/app/api/mcp/route.ts src/components/customer-form.tsx ... +8 more |
alternative_email |
text | no | ✅ 34 | src/app/(app)/customers/[id]/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts src/app/api/mcp/route.ts src/components/customer-form.tsx ... +8 more |
coordinates |
geoPoint | no | ✅ 100 | src/app/(app)/customers/[id]/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts src/app/api/mcp/route.ts src/components/customer-form.tsx ... +10 more |
rep |
relation | no | ✅ 121 | src/app/(app)/customers/page.tsx src/app/(app)/customers/[id]/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts src/app/api/mcp/route.ts ... +11 more |
description |
text | no | ✅ 158 | src/app/(app)/customers/page.tsx src/app/(app)/customers/[id]/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts src/app/api/v1/quotes/[id]/pdf/route.ts ... +16 more |
number |
text | no | ✅ 228 | src/app/(app)/customers/page.tsx src/app/(app)/customers/[id]/page.tsx src/app/(app)/dashboard/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts ... +19 more |
company |
relation | no | ✅ 396 | src/app/(app)/customers/page.tsx src/app/(app)/customers/[id]/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts src/app/api/v1/delivery-notes/route.ts ... +17 more |
customer |
text | no | ✅ 542 | src/app/(app)/customers/page.tsx src/app/(app)/customers/[id]/page.tsx src/app/(app)/dashboard/page.tsx src/app/api/v1/customers/route.ts src/app/api/v1/customers/[id]/route.ts ... +20 more |
delivery_notes (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
delivery_date |
date | no | ✅ 6 | src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-19-create-delivery-notes.ts |
created_by |
relation | no | ✅ 10 | src/app/api/invoicing/delivery-note/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-19-create-delivery-notes.ts |
customer_po |
text | no | ✅ 12 | src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-19-create-delivery-notes.ts |
signed_copy |
file | no | ✅ 23 | src/app/api/v1/delivery-notes/[id]/signed-copy/route.ts src/lib/server/delivery-notes-service.ts scripts/migrations/2026-07-19-delivery-notes-signed-copy.ts |
delivery_note_number |
text | yes | ✅ 57 | src/app/api/invoicing/delivery-note/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-19-create-delivery-notes.ts |
notes |
text | no | ✅ 69 | src/app/api/v1/delivery-notes/[id]/signed-copy/route.ts src/app/api/invoicing/delivery-note/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts ... +2 more |
company |
relation | no | ✅ 88 | src/app/api/invoicing/delivery-note/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-19-create-delivery-notes.ts |
order |
relation | no | ✅ 132 | src/app/api/invoicing/delivery-note/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-19-create-delivery-notes.ts |
customer |
relation | no | ✅ 138 | src/app/api/invoicing/delivery-note/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-19-delivery-notes-signed-copy.ts ... +1 more |
status |
select | yes | ✅ 168 | src/app/api/v1/delivery-notes/[id]/signed-copy/route.ts src/app/api/invoicing/delivery-note/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts ... +1 more |
driver_locations (base) ⚰️ DEAD COLLECTION
| field | type | required | refs | used where |
|---|---|---|---|---|
accuracy |
number | no | ❌ unused | — |
geoPoint |
geoPoint | no | ❌ unused | — |
heading |
number | no | ❌ unused | — |
latitude |
number | no | ❌ unused | — |
longitude |
number | no | ❌ unused | — |
relation |
relation | no | ❌ unused | — |
speed |
number | no | ❌ unused | — |
timestamp |
date | no | ❌ unused | — |
dupicate_custmers (view) ⚰️ DEAD COLLECTION
| field | type | required | refs | used where |
|---|---|---|---|---|
customer |
text | no | ❌ unused | — |
total_count |
number | no | ❌ unused | — |
letterhead_settings (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
address |
text | no | ✅ 4 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
bank_branch_code |
text | no | ✅ 4 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
bank_name |
text | no | ✅ 4 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
default_markup_percent |
number | no | ✅ 4 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
footer_text |
text | no | ✅ 4 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
is_active |
bool | no | ✅ 4 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
phone |
text | no | ✅ 4 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
bank_account_number |
text | no | ✅ 5 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
registration_number |
text | no | ✅ 5 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
vat_number |
text | no | ✅ 5 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
terms |
text | no | ✅ 7 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
accent_color |
text | no | ✅ 9 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
display_name |
text | no | ✅ 9 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
company |
text | no | ✅ 14 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
logo |
file | no | ✅ 16 | src/lib/letterhead.ts src/lib/pdf/render.test.ts scripts/dev/debug-image-test.tsx scripts/dev/generate-sample-pdf.ts |
masterdrilling_consignment (base) ⚰️ DEAD COLLECTION
| field | type | required | refs | used where |
|---|---|---|---|---|
category |
select | no | ❌ unused | — |
cost_price |
text | no | ❌ unused | — |
description |
text | no | ❌ unused | — |
markup |
text | no | ❌ unused | — |
product_code |
number | no | ❌ unused | — |
product_code_descrip |
text | no | ❌ unused | — |
selling_price |
text | no | ❌ unused | — |
supplier |
relation | no | ❌ unused | — |
order_counters (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
last_seq |
number | no | ✅ 13 | src/lib/server/orders-service.ts src/lib/server/orders-service.test.ts scripts/migrations/2026-07-10-restore-counters.ts |
year |
number | yes | ✅ 61 | src/lib/server/orders-service.ts src/lib/server/orders-service.test.ts scripts/migrations/2026-07-10-restore-counters.ts |
month |
number | yes | ✅ 77 | src/lib/server/orders-service.ts src/lib/server/orders-service.test.ts scripts/migrations/2026-07-10-restore-counters.ts |
order_items (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
delivered_at |
date | no | ❌ unused | — |
delivery_status |
select | no | ❌ unused | — |
drv_assigned_at |
date | no | ❌ unused | — |
invoice_status |
select | no | ❌ unused | — |
qb_invoice_pdf_ |
text | no | ❌ unused | — |
qty_assigned |
number | no | ❌ unused | — |
qty_delivered |
number | no | ❌ unused | — |
qty_processed |
number | no | ❌ unused | — |
legacy_order_item_id |
text | no | ⚠️ 1 ref | scripts/migrations/2026-07-20-delivery-tracking.ts |
markup_percent |
number | no | ✅ 3 | src/lib/pb-helpers.ts src/lib/server/orders-service.ts src/lib/server/orders-service.test.ts |
driver_status |
select | no | ✅ 4 | src/app/api/v1/order-items/[id]/status/route.test.ts src/app/api/mcp/route.test.ts src/lib/pb-helpers.ts |
drv_collected_at |
date | no | ✅ 4 | src/app/(app)/collection-confirm/page.tsx scripts/migrations/2026-07-07-order-items-collection-photo.ts |
qb_invoice_pdf |
file | no | ✅ 9 | src/app/(app)/invoicing/page.tsx src/app/api/invoicing/print-bundle/route.ts |
order_item_attachements |
file | no | ✅ 16 | src/app/(app)/collection-confirm/page.tsx src/app/api/invoicing/delivery-note-print/route.ts src/app/api/invoicing/delivery-note/route.ts src/app/api/invoicing/delivery-note-pdf/route.ts |
markup |
number | no | ✅ 19 | src/lib/pb-helpers.ts src/lib/server/orders-service.ts src/lib/server/order-completion.test.ts src/lib/server/orders-service.test.ts scripts/setup-pocketbase.ts |
problem_notes |
text | no | ✅ 19 | src/app/(app)/collection-confirm/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts src/lib/server/driver-stops.ts |
quote_item |
relation | no | ✅ 19 | src/app/(app)/orders/[id]/process/page.tsx src/lib/pb-helpers.ts src/lib/server/orders-service.ts src/lib/server/delivery-notes-service.ts src/lib/server/orders-service.test.ts ... +1 more |
matched_price_list_id |
text | no | ✅ 21 | src/app/(app)/orders/[id]/process/page.tsx scripts/migrations/2026-07-06-order-items-pricing-fields.ts |
pricing_notes |
text | no | ✅ 23 | src/app/(app)/orders/[id]/process/page.tsx src/app/api/mcp/route.test.ts scripts/migrations/2026-07-06-order-items-pricing-fields.ts |
drv_status |
select | no | ✅ 25 | src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/[id]/page.tsx src/app/api/v1/order-items/[id]/status/route.test.ts src/app/api/mcp/route.test.ts ... +5 more |
order_item_details |
json | no | ✅ 28 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/invoicing/page.tsx src/app/api/invoicing/delivery-note-print/route.ts src/app/api/invoicing/delivery-note-print-tracking/route.ts src/app/api/invoicing/delivery-note/route.ts ... +2 more |
problem_flag |
bool | no | ✅ 28 | src/app/(app)/collection-confirm/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts src/lib/pb-helpers.ts src/lib/server/driver-stops.ts |
problem_type |
select | no | ✅ 28 | src/app/(app)/collection-confirm/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts src/lib/pb-helpers.ts src/lib/server/driver-stops.ts |
stock_booked_from |
relation | no | ✅ 31 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/api/v1/stock/fulfill/route.test.ts src/app/api/v1/stock/fulfill/route.ts src/app/api/v1/stock/surplus-book/route.test.ts ... +2 more |
pricing_source |
text | no | ✅ 33 | src/app/(app)/orders/[id]/process/page.tsx src/lib/server/delivery-notes-service.ts src/lib/server/delivery-notes-service.test.ts scripts/migrations/2026-07-06-order-items-pricing-fields.ts |
ready_for_collection |
bool | no | ✅ 41 | src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/api/v1/driver/stops/route.test.ts src/lib/server/purchase-orders-service.ts ... +3 more |
po_description |
text | no | ✅ 46 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx ... +9 more |
assigned_at |
date | no | ✅ 63 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/[id]/process/page.tsx ... +6 more |
delivery_note_number |
text | no | ✅ 70 | src/app/(app)/invoicing/page.tsx src/app/api/invoicing/delivery-note-print/route.ts src/app/api/invoicing/delivery-note-print-tracking/route.ts src/app/api/invoicing/delivery-note/route.ts src/app/api/invoicing/delivery-note-pdf/route.ts ... +5 more |
surplus_qty |
number | no | ✅ 70 | src/app/(app)/collection-confirm/page.tsx src/app/api/v1/stock/surplus-book/route.test.ts src/app/api/v1/stock/surplus-book/route.ts src/lib/server/stock-surplus.test.ts src/lib/server/stock-surplus.ts ... +1 more |
purchase_order |
relation | no | ✅ 71 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/[id]/page.tsx ... +16 more |
drv_id |
relation | no | ✅ 72 | src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/api/v1/driver/stops/route.test.ts ... +9 more |
qty_collected |
number | no | ✅ 76 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/invoicing/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts src/app/api/v1/stock/surplus-book/route.test.ts ... +7 more |
order_qty |
number | no | ✅ 87 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/(app)/invoicing/page.tsx src/app/api/v1/driver/stops/route.test.ts ... +17 more |
sku |
text | no | ✅ 87 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/process/page.tsx ... +11 more |
driver |
relation | no | ✅ 105 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/[id]/process/page.tsx ... +11 more |
cost_price |
number | no | ✅ 109 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx ... +14 more |
selling_price |
number | no | ✅ 132 | src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/(app)/invoicing/page.tsx ... +12 more |
quantity |
number | no | ✅ 215 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx ... +24 more |
item_status |
select | yes | ✅ 227 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/page.tsx ... +38 more |
notes |
text | no | ✅ 232 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx ... +21 more |
description |
text | yes | ✅ 296 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/page.tsx ... +26 more |
supplier |
relation | no | ✅ 467 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/new/page.tsx ... +33 more |
order |
relation | no | ✅ 628 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/orders/page.tsx ... +40 more |
orders (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
order_attachements |
file | no | ❌ unused | — |
quote_match_confidence |
number | no | ✅ 3 | src/lib/pb-helpers.ts src/lib/server/orders-service.ts scripts/setup-pocketbase.ts |
is_repair_order |
bool | no | ✅ 4 | src/lib/pb-helpers.ts src/lib/server/orders-service.ts src/lib/server/orders-service.test.ts scripts/setup-pocketbase.ts |
potential_quote_confidence |
number | no | ✅ 12 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/orders/[id]/page.tsx src/lib/pb-helpers.ts src/lib/server/orders-service.ts scripts/setup-pocketbase.ts ... +1 more |
quote_match_method |
text | no | ✅ 12 | src/app/(app)/orders/[id]/page.tsx src/lib/pb-helpers.ts scripts/migrations/2026-06-27-add-order-quote-match-fields.ts |
quote_matching_attempted |
bool | no | ✅ 12 | src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/lib/pb-helpers.ts src/lib/server/orders-service.ts src/lib/server/orders-service.test.ts ... +1 more |
invoiced |
bool | no | ✅ 22 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/lib/pb-helpers.ts src/lib/server/orders-service.ts ... +4 more |
quote_reference_text |
text | no | ✅ 22 | src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/lib/pb-helpers.ts scripts/migrations/2026-06-27-add-order-quote-match-fields.ts scripts/dev/seed-and-test-matcher.ts |
potential_quote |
relation | no | ✅ 30 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/[id]/page.tsx src/app/api/v1/orders/[id]/matched-attachments/route.ts src/lib/pb-helpers.ts ... +3 more |
order_number |
text | yes | ✅ 79 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx ... +9 more |
notes |
text | no | ✅ 111 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx src/app/api/v1/orders/[id]/matched-attachments/route.ts src/app/api/mcp/route.ts ... +7 more |
company |
relation | yes | ✅ 244 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx ... +11 more |
customer |
relation | no | ✅ 327 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/dashboard/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx ... +12 more |
quote |
relation | no | ✅ 510 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/dashboard/page.tsx src/app/(app)/orders/page.tsx src/app/(app)/orders/new/page.tsx src/app/(app)/orders/[id]/page.tsx ... +13 more |
pos (base) ⚰️ DEAD COLLECTION
| field | type | required | refs | used where |
|---|---|---|---|---|
brand |
text | no | ❌ unused | — |
category |
text | no | ❌ unused | — |
cost_price |
number | no | ❌ unused | — |
description |
text | no | ❌ unused | — |
markup |
number | no | ❌ unused | — |
search_text |
text | no | ❌ unused | — |
selling_price |
number | no | ❌ unused | — |
sku |
text | no | ❌ unused | — |
sku_normalised |
text | no | ❌ unused | — |
source_file |
text | no | ❌ unused | — |
source_file_id |
relation | no | ❌ unused | — |
specifications |
json | no | ❌ unused | — |
stock_qty |
number | no | ❌ unused | — |
subcategory |
text | no | ❌ unused | — |
supplier |
text | no | ❌ unused | — |
unit |
text | no | ❌ unused | — |
price_list (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
source_file_id |
relation | no | ❌ unused | — |
stock_qty |
number | no | ❌ unused | — |
source_file |
text | no | ✅ 16 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts scripts/migrations/2026-06-30-backfill-price-list-search-text.ts scripts/migrations/2026-06-30-add-price-list-source-file.ts |
markup |
number | no | ✅ 21 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts scripts/dev/seed-test-grinders.ts |
specifications |
json | no | ✅ 21 | src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-06-30-backfill-price-list-search-text.ts scripts/migrations/2026-06-30-add-price-list-search-text.ts scripts/dev/seed-test-grinders.ts |
subcategory |
text | no | ✅ 21 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-06-30-add-price-list-search-text.ts scripts/utils/resolve-price-list-ids.ts ... +1 more |
sku_normalised |
text | no | ✅ 26 | src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-06-30-add-price-list-sku-normalised.ts scripts/utils/resolve-price-list-ids.ts scripts/dev/seed-test-grinders.ts |
cost_price |
number | no | ✅ 29 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/utils/resolve-price-list-ids.ts scripts/dev/seed-test-grinders.ts |
unit |
text | no | ✅ 31 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/utils/resolve-price-list-ids.ts scripts/dev/seed-test-grinders.ts |
selling_price |
number | no | ✅ 33 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/utils/resolve-price-list-ids.ts scripts/dev/seed-test-grinders.ts |
search_text |
text | no | ✅ 39 | src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-06-30-backfill-price-list-search-text.ts scripts/migrations/2026-06-30-add-price-list-search-text.ts scripts/dev/seed-test-grinders.ts |
category |
text | no | ✅ 59 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts scripts/migrations/2026-06-30-add-price-list-search-text.ts ... +2 more |
sku |
text | no | ✅ 64 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-06-30-add-price-list-sku-normalised.ts scripts/migrations/2026-06-30-add-price-list-search-text.ts ... +2 more |
description |
text | no | ✅ 65 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts scripts/migrations/2026-06-30-add-price-list-search-text.ts ... +2 more |
brand |
text | no | ✅ 67 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts scripts/migrations/2026-06-30-add-price-list-search-text.ts ... +2 more |
supplier |
text | no | ✅ 77 | src/components/pricelist-catalogue.tsx src/lib/pb-helpers.ts src/lib/server/price-list-match.ts scripts/migrations/2026-06-30-backfill-price-list-search-text.ts scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts ... +3 more |
purchase_orders (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
last_reply_at |
date | no | ✅ 5 | scripts/setup-pocketbase.ts scripts/migrations/2026-07-06-purchase-orders-send-fields.ts |
email_message_id |
text | no | ✅ 7 | src/lib/server/purchase-orders-service.ts scripts/migrations/2026-07-06-purchase-orders-send-fields.ts |
total_amount |
number | no | ✅ 8 | src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/api/v1/purchase-orders/[id]/pdf/route.ts scripts/setup-pocketbase.ts scripts/migrations/2026-06-28-add-purchase-order-pdfs.ts |
email_error |
text | no | ✅ 14 | src/app/(app)/orders/[id]/page.tsx src/app/api/v1/purchase-orders/[id]/send-email/route.ts src/lib/server/purchase-orders-service.ts scripts/migrations/2026-07-06-purchase-orders-send-fields.ts |
email_payload |
json | no | ✅ 24 | src/app/(app)/orders/[id]/page.tsx src/app/api/v1/purchase-orders/[id]/send-email/route.ts src/lib/server/purchase-orders-service.ts scripts/migrations/2026-07-06-purchase-orders-send-fields.ts |
order_item |
relation | no | ✅ 24 | src/app/(app)/orders/[id]/process/page.tsx src/lib/pb-helpers.ts src/lib/server/purchase-orders-service.ts scripts/backfill-po-items.mjs |
po_number |
text | yes | ✅ 27 | src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/api/v1/purchase-orders/[id]/pdf/route.ts src/app/api/v1/purchase-orders/[id]/send-email/route.ts src/lib/pb-helpers.ts ... +3 more |
documents_history |
json | no | ✅ 41 | src/app/(app)/orders/[id]/page.tsx src/app/api/v1/purchase-orders/[id]/pdf/route.ts src/app/api/v1/purchase-orders/[id]/send-email/route.ts scripts/migrations/2026-07-06-purchase-orders-documents-field.ts scripts/migrations/2026-07-09-po-additional-attachments.ts ... +1 more |
documents |
file | no | ✅ 75 | src/app/(app)/orders/[id]/page.tsx src/app/api/v1/purchase-orders/[id]/pdf/route.ts src/app/api/v1/purchase-orders/[id]/send-email/route.ts src/app/api/v1/purchase-orders/[id]/attachments/upload/route.ts src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts ... +3 more |
order |
relation | yes | ✅ 211 | src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/api/v1/purchase-orders/[id]/pdf/route.ts src/app/api/v1/purchase-orders/[id]/send-email/outcome/route.ts src/app/api/mcp/route.ts ... +4 more |
supplier |
relation | yes | ✅ 230 | src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/api/v1/purchase-orders/[id]/pdf/route.ts src/app/api/v1/purchase-orders/[id]/send-email/route.ts src/app/api/v1/purchase-orders/[id]/attachments/upload/route.ts ... +7 more |
status |
select | no | ✅ 234 | src/app/(app)/orders/[id]/page.tsx src/app/(app)/orders/[id]/process/page.tsx src/app/api/v1/purchase-orders/[id]/pdf/route.ts src/app/api/v1/purchase-orders/[id]/send-email/route.ts src/app/api/v1/purchase-orders/[id]/send-email/outcome/route.ts ... +11 more |
quote_attachments (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
uploaded_at |
autodate | no | ✅ 22 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/attachments/route.ts src/app/api/v1/orders/[id]/matched-attachments/route.ts src/components/delivery-notes/preview-dialog.tsx src/lib/pb-helpers.ts ... +2 more |
size_bytes |
number | no | ✅ 25 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/attachments/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/app/api/v1/orders/[id]/matched-attachments/route.ts ... +3 more |
quote_item |
relation | no | ✅ 26 | src/app/api/v1/orders/[id]/matched-attachments/route.ts src/lib/pb-helpers.ts src/lib/server/delivery-notes-service.ts scripts/migrations/2026-07-06-quote-attachments-quote-item-and-kind.ts |
content_type |
text | no | ✅ 29 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/attachments/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/app/api/v1/orders/[id]/matched-attachments/route.ts ... +3 more |
email_message_id |
text | no | ✅ 31 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts ... +2 more |
direction |
select | no | ✅ 55 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/attachments/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/app/api/v1/orders/[id]/matched-attachments/route.ts src/lib/pb-helpers.ts ... +3 more |
filename |
text | yes | ✅ 81 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/attachments/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts ... +6 more |
kind |
select | no | ✅ 95 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/app/api/v1/orders/[id]/matched-attachments/route.ts src/components/delivery-notes/preview-dialog.tsx ... +6 more |
file |
file | yes | ✅ 110 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/attachments/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts ... +8 more |
quote |
relation | no | ✅ 675 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/attachments/route.ts src/app/api/v1/quotes/[id]/attachments/upload/route.ts src/app/api/v1/orders/[id]/matched-attachments/route.ts ... +10 more |
quote_counters (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
last_seq |
number | no | ✅ 11 | src/lib/server/quotes-service.ts scripts/migrations/2026-07-10-restore-counters.ts |
year |
number | yes | ✅ 46 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/create-quote-attachments-and-replies.ts scripts/migrations/2026-07-10-restore-counters.ts |
month |
number | yes | ✅ 51 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/create-quote-attachments-and-replies.ts scripts/migrations/2026-07-10-restore-counters.ts |
quote_item_attachments (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
uploaded_at |
autodate | no | ✅ 4 | src/app/api/v1/sprint/items/[id]/attachments/route.ts |
content_type |
text | no | ✅ 9 | src/app/api/v1/quotes/items/[id]/attachments/upload/route.ts src/app/api/v1/sprint/items/[id]/attachments/route.ts src/app/api/v1/sprint/items/[id]/attachments/upload/route.ts |
size_bytes |
number | no | ✅ 9 | src/app/api/v1/quotes/items/[id]/attachments/upload/route.ts src/app/api/v1/sprint/items/[id]/attachments/route.ts src/app/api/v1/sprint/items/[id]/attachments/upload/route.ts |
notes |
text | no | ✅ 10 | src/app/api/v1/quotes/items/[id]/attachments/upload/route.ts src/app/api/v1/sprint/items/[id]/attachments/route.ts src/app/api/v1/sprint/items/[id]/attachments/upload/route.ts |
quote_item |
relation | yes | ✅ 10 | src/app/api/v1/quotes/items/[id]/attachments/upload/route.ts src/app/api/v1/sprint/attachment-counts/route.ts src/app/api/v1/sprint/items/[id]/attachments/route.ts src/app/api/v1/sprint/items/[id]/attachments/upload/route.ts |
filename |
text | yes | ✅ 17 | src/app/api/v1/quotes/items/[id]/attachments/upload/route.ts src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts src/app/api/v1/sprint/items/[id]/attachments/route.ts src/app/api/v1/sprint/items/[id]/attachments/upload/route.ts |
source |
select | yes | ✅ 23 | src/app/api/v1/quotes/items/[id]/attachments/upload/route.ts src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts src/app/api/v1/sprint/items/[id]/attachments/route.ts src/app/api/v1/sprint/items/[id]/attachments/upload/route.ts |
file |
file | yes | ✅ 37 | src/app/api/v1/quotes/items/[id]/attachments/upload/route.ts src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts src/app/api/v1/sprint/items/[id]/attachments/route.ts src/app/api/v1/sprint/items/[id]/attachments/upload/route.ts |
quote_items (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
supplier_reply_count |
number | no | ✅ 3 | scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
outbound_sent_at |
date | no | ✅ 4 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
supplier_replied_at |
date | no | ✅ 4 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
outbound_message_id |
text | no | ✅ 5 | src/app/(app)/sprint/page.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
quote_pdf_id |
text | no | ✅ 5 | src/lib/pdf/render.test.ts scripts/setup-pocketbase.ts scripts/dev/debug-logo.ts scripts/dev/generate-sample-pdf.ts |
quote_description |
text | no | ✅ 7 | src/app/(app)/sprint/page.tsx src/components/sprint-item-pricing-modal.tsx |
claimed_at |
date | no | ✅ 15 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/sprint/items/[id]/claim/route.ts src/components/sprint-item-pricing-modal.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
claim_expires_at |
date | no | ✅ 22 | src/app/(app)/sprint/page.tsx src/app/api/v1/sprint/items/[id]/claim/route.ts src/components/sprint-item-pricing-modal.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
quote_reference |
text | no | ✅ 23 | src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pb-helpers.ts ... +5 more |
matched_price_list_id |
text | no | ✅ 28 | src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/[id]/re-price/route.ts src/app/api/v1/quotes/[id]/items/[itemId]/lookup/route.ts src/app/api/mcp/route.ts src/lib/pdf/render.test.ts ... +3 more |
claim_status |
select | no | ✅ 32 | src/app/(app)/sprint/page.tsx src/app/api/v1/sprint/items/[id]/claim/route.ts src/components/sprint-item-pricing-modal.tsx scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts |
claimed_by |
text | no | ✅ 40 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/sprint/items/[id]/claim/route.ts src/components/sprint-item-pricing-modal.tsx src/lib/pdf/render.test.ts ... +4 more |
pricing_notes |
text | no | ✅ 40 | src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/[id]/re-price/route.ts src/app/api/v1/quotes/[id]/items/[itemId]/lookup/route.ts src/app/api/mcp/route.ts src/lib/pdf/render.test.ts ... +2 more |
user_edited |
bool | no | ✅ 42 | src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/items/rewrite/route.ts src/app/api/mcp/route.ts src/components/rewrite-quote-modal.tsx ... +8 more |
is_processed |
bool | no | ✅ 43 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/pdf/route.ts ... +9 more |
pricing_source |
text | no | ✅ 50 | src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/re-price/route.ts src/app/api/v1/quotes/[id]/items/[itemId]/lookup/route.ts src/app/api/mcp/route.ts ... +7 more |
category |
relation | no | ✅ 51 | src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/items/[itemId]/lookup/route.ts src/lib/pb-helpers.ts scripts/migrations/2026-07-02-add-sprint-categories-and-claims.ts ... +1 more |
quantity |
number | no | ✅ 92 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts ... +17 more |
quote_number |
text | no | ✅ 107 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts ... +15 more |
markup |
number | no | ✅ 118 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts ... +14 more |
sku |
text | no | ✅ 118 | src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/re-price/route.ts src/app/api/v1/quotes/[id]/items/[itemId]/lookup/route.ts src/app/api/mcp/route.ts ... +7 more |
notes |
text | no | ✅ 151 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/items/rewrite/route.ts src/app/api/v1/quotes/[id]/create-from-template/route.ts ... +21 more |
cost_price |
number | no | ✅ 170 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts ... +22 more |
selling_price |
number | no | ✅ 178 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts ... +22 more |
supplier |
relation | no | ✅ 216 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts ... +24 more |
description |
text | no | ✅ 341 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/items/rewrite/route.ts src/app/api/v1/quotes/[id]/create-from-template/route.ts ... +29 more |
quote |
relation | yes | ✅ 901 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/sprint/page.tsx src/app/api/v1/quotes/items/rewrite/route.ts src/app/api/v1/quotes/[id]/create-from-template/route.ts ... +28 more |
quote_replies (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
quoted_text |
text | no | ✅ 5 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
body_html |
text | no | ✅ 6 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
from_name |
text | no | ✅ 9 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
in_reply_to |
text | no | ✅ 12 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
received_at |
date | yes | ✅ 15 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
body_plain |
text | no | ✅ 19 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
email_message_id |
text | no | ✅ 23 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/create-quote-attachments-and-replies.ts |
from_email |
yes | ✅ 37 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
|
subject |
text | yes | ✅ 74 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts |
quote |
relation | yes | ✅ 197 | src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/create-quote-attachments-and-replies.ts |
quotes (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
email_tracking_id |
text | no | ✅ 4 | src/lib/pdf/render.test.ts scripts/setup-pocketbase.ts scripts/dev/debug-logo.ts scripts/dev/generate-sample-pdf.ts |
email_opened_at |
date | no | ✅ 5 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts scripts/setup-pocketbase.ts scripts/dev/debug-logo.ts scripts/dev/generate-sample-pdf.ts |
email_bcc |
text | no | ✅ 6 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts scripts/migrations/2026-06-23-add-quote-email-composition-fields.ts |
email_message |
text | no | ✅ 6 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts scripts/migrations/2026-06-23-add-quote-email-composition-fields.ts |
attach_auth_letters |
bool | no | ✅ 7 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/2026-06-23-add-quote-email-composition-fields.ts |
email_body |
text | no | ✅ 7 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/setup-pocketbase.ts ... +2 more |
email_cc |
text | no | ✅ 7 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/2026-06-23-add-quote-email-composition-fields.ts |
email_delivered_at |
date | no | ✅ 7 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/setup-pocketbase.ts ... +2 more |
email_subject_outbound |
text | no | ✅ 7 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/2026-06-23-add-quote-email-composition-fields.ts |
has_new_reply |
bool | no | ✅ 7 | src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/setup-pocketbase.ts scripts/dev/debug-logo.ts ... +1 more |
email_outbound_attachment_ids |
text | no | ✅ 8 | src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/2026-06-23-add-quote-outbound-email-fields.ts |
approved_by |
text | no | ✅ 9 | src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts scripts/setup-pocketbase.ts scripts/dev/debug-logo.ts ... +1 more |
email_opened |
bool | no | ✅ 9 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pdf/render.test.ts scripts/setup-pocketbase.ts ... +2 more |
email_outbound_message_id |
text | no | ✅ 9 | src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/2026-06-23-add-quote-outbound-email-fields.ts |
template_source_id |
relation | no | ✅ 9 | src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pb-helpers.ts src/lib/pdf/render.test.ts scripts/migrations/2026-06-23-add-quote-template-fields.ts ... +1 more |
generated_from_template_id |
relation | no | ✅ 10 | src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pb-helpers.ts src/lib/pdf/render.test.ts ... +2 more |
email_delivered |
bool | no | ✅ 11 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts ... +4 more |
email_sender |
no | ✅ 12 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/setup-pocketbase.ts ... +2 more |
|
last_reply_at |
date | no | ✅ 13 | src/app/(app)/quotes/page.tsx src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts ... +3 more |
pdf_generated_at |
date | no | ✅ 13 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/pdf/route.ts src/app/api/v1/quotes/[id]/clone/route.ts ... +4 more |
email_subject |
text | no | ✅ 15 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/setup-pocketbase.ts ... +3 more |
has_attachments |
bool | no | ✅ 15 | src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/setup-pocketbase.ts scripts/smoke/upload-attachment.ts ... +2 more |
email_failed_at |
date | no | ✅ 16 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/setup-pocketbase.ts ... +2 more |
external_number |
text | no | ✅ 18 | src/app/api/v1/quotes/lookup/route.ts src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pb-helpers.ts ... +5 more |
company_letterhead |
select | no | ✅ 19 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts ... +8 more |
sending_started_at |
date | no | ✅ 22 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/2026-06-23-add-quote-outbound-email-fields.ts |
email_error |
text | no | ✅ 23 | src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts scripts/migrations/2026-06-23-add-quote-outbound-email-fields.ts |
quote_date |
date | no | ✅ 25 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pb-helpers.ts ... +4 more |
validity_days |
number | no | ✅ 26 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts src/lib/pb-helpers.ts ... +5 more |
email_message_id |
text | no | ✅ 28 | src/app/(app)/quotes/[id]/page.tsx src/app/api/v1/quotes/[id]/pdf/route.ts src/lib/pdf/render.test.ts src/lib/server/quotes-service.ts src/lib/server/quotes-service.test.ts ... +3 more |
quote_reference |
text | no | ✅ 28 | src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/lookup/route.ts src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts ... +6 more |
claimed_by |
text | no | ✅ 32 | src/app/(app)/quotes/page.tsx src/app/(app)/quotes/[id]/page.tsx src/lib/pdf/render.test.ts scripts/setup-pocketbase.ts scripts/dev/debug-logo.ts ... +1 more |
follow_up_due |
date | no | ✅ 32 | src/app/(app)/quotes/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/dashboard/page.tsx src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/clone/route.ts ... +4 more |
rfq_number |
text | no | ✅ 39 | src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/lookup/route.ts src/app/api/v1/quotes/[id]/create-from-template/route.ts ... +11 more |
is_template |
bool | no | ✅ 46 | src/app/(app)/quotes/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/dashboard/page.tsx src/app/api/v1/quotes/lookup/route.ts src/app/api/v1/quotes/[id]/create-from-template/route.ts ... +6 more |
delivery_note |
relation | no | ✅ 81 | src/app/(app)/quotes/page.tsx src/app/(app)/quotes/[id]/page.tsx src/lib/pb-helpers.ts src/lib/server/quotes-service.ts src/lib/server/delivery-notes-service.ts ... +2 more |
markup |
number | no | ✅ 97 | src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts src/app/api/v1/quotes/[id]/save-as-template/route.ts src/app/api/v1/quotes/[id]/re-price/route.ts ... +10 more |
quote_number |
text | no | ✅ 132 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/page.tsx src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx ... +23 more |
notes |
text | no | ✅ 149 | src/app/(app)/quotes/page.tsx src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/api/v1/quotes/[id]/create-from-template/route.ts ... +19 more |
description |
text | no | ✅ 230 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/page.tsx src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx ... +21 more |
company |
relation | no | ✅ 289 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/page.tsx src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx ... +19 more |
status |
select | no | ✅ 474 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/page.tsx src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx ... +27 more |
customer |
relation | yes | ✅ 519 | src/app/(app)/customers/[id]/page.tsx src/app/(app)/quotes/page.tsx src/app/(app)/quotes/approvals/page.tsx src/app/(app)/quotes/[id]/page.tsx src/app/(app)/quotes/[id]/process/page.tsx ... +24 more |
raw_price_list (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
log_summary |
text | no | ✅ 8 | src/app/(app)/pricelist/page.tsx src/lib/pb-helpers.ts |
file_name |
text | no | ✅ 9 | src/app/(app)/pricelist/page.tsx scripts/migrations/2026-06-30-add-pricelist-notes.ts |
supplier_file |
file | no | ✅ 10 | src/app/(app)/pricelist/page.tsx src/lib/pb-helpers.ts scripts/migrations/2026-06-30-add-raw-price-list.ts |
supplier_name |
relation | no | ✅ 16 | src/app/(app)/pricelist/page.tsx src/lib/pb-helpers.ts scripts/migrations/2026-06-30-backfill-price-list-search-text.ts scripts/migrations/2026-06-30-add-raw-price-list.ts |
notes |
text | no | ✅ 41 | src/app/(app)/pricelist/page.tsx src/lib/pb-helpers.ts scripts/migrations/2026-06-30-add-pricelist-notes.ts |
status |
select | no | ✅ 79 | src/app/(app)/pricelist/page.tsx src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts src/lib/pb-helpers.ts |
repairs (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
fault_description |
text | yes | ✅ 4 | src/lib/pb-helpers.ts |
item_description |
text | yes | ✅ 4 | src/lib/pb-helpers.ts |
repair_number |
text | yes | ✅ 5 | src/lib/pb-helpers.ts |
notes |
text | no | ✅ 12 | src/lib/pb-helpers.ts |
company |
relation | no | ✅ 53 | src/lib/pb-helpers.ts |
status |
select | yes | ✅ 56 | src/lib/pb-helpers.ts |
customer |
relation | no | ✅ 64 | src/lib/pb-helpers.ts |
order |
relation | no | ✅ 81 | src/lib/pb-helpers.ts |
rfq_outbound (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
email_body |
text | no | ✅ 2 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
email_subject |
text | yes | ✅ 2 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
raw_email_id |
text | no | ✅ 2 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
sent_at |
date | no | ✅ 2 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
email_message_id |
text | no | ✅ 3 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
quote_item |
relation | yes | ✅ 4 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
status |
text | no | ✅ 4 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
supplier |
relation | no | ✅ 5 | scripts/migrations/2026-06-30-create-rfq-outbound.ts |
stock_items (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
location |
text | no | ✅ 33 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock/page.test.tsx src/app/(app)/stock/page.tsx src/app/(app)/stock/[id]/page.tsx ... +5 more |
target_qty |
number | no | ✅ 40 | src/app/(app)/stock-orders/reorder/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock/page.tsx src/app/(app)/stock/[id]/page.tsx scripts/migrations/2026-07-15-add-stock-items-target-qty.ts |
is_active |
bool | no | ✅ 50 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/reorder/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock/page.test.tsx src/app/(app)/stock/page.tsx ... +16 more |
unit |
text | no | ✅ 50 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/reorder/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/page.test.tsx ... +14 more |
min_qty |
number | no | ✅ 56 | src/app/(app)/stock-orders/reorder/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock/page.test.tsx src/app/(app)/stock/page.tsx src/app/(app)/stock/[id]/page.tsx ... +8 more |
sku |
text | no | ✅ 101 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock/page.test.tsx src/app/(app)/stock/page.tsx ... +12 more |
notes |
text | no | ✅ 179 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/page.test.tsx ... +18 more |
current_qty |
number | no | ✅ 184 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/reorder/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx ... +20 more |
description |
text | no | ✅ 201 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/page.test.tsx ... +21 more |
supplier |
relation | no | ✅ 293 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/reorder/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx ... +22 more |
name |
text | yes | ✅ 447 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/reorder/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock/page.test.tsx ... +21 more |
stock_ledger (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
reference_id |
text | no | ✅ 25 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/[id]/page.tsx src/app/api/v1/stock/fulfill/route.test.ts src/app/api/v1/stock/fulfill/route.ts ... +9 more |
reference_type |
text | no | ✅ 27 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/[id]/page.tsx src/app/api/v1/stock/fulfill/route.test.ts src/app/api/v1/stock/fulfill/route.ts ... +9 more |
created_by |
relation | no | ✅ 28 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/[id]/page.tsx src/app/api/v1/stock/fulfill/route.ts src/app/api/v1/stock/surplus-book/route.test.ts ... +8 more |
change_qty |
number | yes | ✅ 39 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/[id]/page.tsx src/app/api/v1/stock/fulfill/route.test.ts src/app/api/v1/stock/fulfill/route.ts ... +9 more |
stock_item |
relation | yes | ✅ 105 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/page.tsx src/app/(app)/stock/[id]/page.tsx ... +12 more |
notes |
text | no | ✅ 107 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/page.tsx src/app/(app)/stock/[id]/page.tsx ... +10 more |
reason |
select | no | ✅ 158 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/[id]/page.tsx src/app/api/v1/stock/fulfill/route.test.ts src/app/api/v1/stock/fulfill/route.ts ... +9 more |
stock_purchase_items (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
problem_notes |
text | no | ✅ 22 | src/app/(app)/collection-confirm/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts src/lib/server/driver-stops.ts scripts/migrations/2026-07-17-add-stock-purchase-problem-fields.ts |
problem_type |
text | no | ✅ 32 | src/app/(app)/collection-confirm/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts src/lib/server/driver-stops.ts scripts/migrations/2026-07-17-add-stock-purchase-problem-fields.ts |
problem_flag |
bool | no | ✅ 33 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts src/lib/server/driver-stops.ts ... +1 more |
cost_price |
number | no | ✅ 35 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/[id]/page.tsx ... +5 more |
assigned_at |
date | no | ✅ 57 | src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/api/v1/driver/stops/route.test.ts ... +3 more |
drv_id |
relation | no | ✅ 67 | src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/api/v1/driver/stops/route.test.ts src/app/api/v1/driver/stops/[id]/status/route.test.ts ... +3 more |
quantity_received |
number | no | ✅ 73 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/(app)/stock/[id]/page.tsx ... +7 more |
quantity |
number | yes | ✅ 108 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/stock-orders/new/page.tsx ... +10 more |
notes |
text | no | ✅ 109 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx ... +8 more |
stock_item |
relation | yes | ✅ 117 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/stock-orders/new/page.tsx ... +10 more |
description |
text | yes | ✅ 123 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.test.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx ... +10 more |
purchase |
relation | yes | ✅ 241 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/stock-orders/page.tsx ... +13 more |
status |
select | no | ✅ 281 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/collection-pool/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/stock-orders/page.tsx ... +12 more |
stock_purchases (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
email_message_id |
text | no | ✅ 10 | src/lib/server/stock-purchases-migration.test.ts src/lib/server/stock-purchases-service.ts scripts/migrations/2026-07-14-create-stock-purchases.ts |
documents_history |
json | no | ✅ 14 | src/app/api/v1/stock-purchases/[id]/pdf/route.ts src/app/api/v1/stock-purchases/[id]/send-email/route.ts scripts/migrations/2026-07-16-add-stock-purchase-documents-history.ts |
email_error |
text | no | ✅ 17 | src/app/api/v1/stock-purchases/[id]/send-email/route.ts src/lib/server/stock-purchases-migration.test.ts src/lib/server/stock-purchases-service.ts scripts/migrations/2026-07-14-create-stock-purchases.ts |
email_payload |
json | no | ✅ 20 | src/app/api/v1/stock-purchases/[id]/send-email/route.ts src/lib/server/stock-purchases-migration.test.ts src/lib/server/stock-purchases-service.ts scripts/migrations/2026-07-14-create-stock-purchases.ts |
documents |
file | no | ✅ 30 | src/app/api/v1/stock-purchases/[id]/pdf/route.ts src/app/api/v1/stock-purchases/[id]/send-email/route.ts src/app/api/v1/files/[collection]/[recordId]/[filename]/route.ts src/lib/server/stock-purchases-service.ts scripts/migrations/2026-07-15-stock-purchase-line-state.ts ... +1 more |
purchase_number |
text | yes | ✅ 63 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx ... +6 more |
notes |
text | no | ✅ 71 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx src/app/api/v1/stock-purchases/[id]/pdf/route.ts ... +4 more |
supplier |
relation | yes | ✅ 171 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx ... +8 more |
status |
select | yes | ✅ 248 | src/app/(app)/collection-confirm/page.test.tsx src/app/(app)/collection-confirm/page.tsx src/app/(app)/stock-orders/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock-orders/[id]/page.tsx ... +11 more |
suppliers (base)
| field | type | required | refs | used where |
|---|---|---|---|---|
geoPoint |
geoPoint | no | ✅ 13 | src/app/api/v1/suppliers/route.ts src/app/api/mcp/route.ts src/lib/server/management-service.ts scripts/setup-pocketbase.ts scripts/smoke/management-flow.ts |
closingtime |
text | no | ✅ 19 | src/app/api/v1/suppliers/route.ts src/app/api/v1/suppliers/[id]/route.ts src/app/api/mcp/route.ts src/components/supplier-form.tsx src/lib/pb-helpers.ts ... +3 more |
supplieraddress |
text | no | ✅ 27 | src/app/(app)/suppliers/page.tsx src/app/api/v1/suppliers/route.ts src/app/api/v1/suppliers/[id]/route.ts src/app/api/mcp/route.ts src/components/supplier-map.tsx ... +5 more |
suppliernumber |
text | no | ✅ 33 | src/app/(app)/suppliers/page.tsx src/app/api/v1/suppliers/route.ts src/app/api/v1/suppliers/[id]/route.ts src/app/api/mcp/route.ts src/components/supplier-map.tsx ... +5 more |
supply_tags |
text | no | ✅ 34 | src/app/(app)/suppliers/page.tsx src/app/api/v1/suppliers/route.ts src/app/api/v1/suppliers/[id]/route.ts src/app/api/mcp/route.ts src/components/supplier-map.tsx ... +5 more |
suppliername |
text | no | ✅ 87 | src/app/(app)/suppliers/page.tsx src/app/(app)/quotes/[id]/process/page.tsx src/app/(app)/collection-map/page.tsx src/app/(app)/stock-orders/new/page.tsx src/app/(app)/stock/page.tsx ... +19 more |
coordinates |
text | no | ✅ 96 | src/app/(app)/collection-map/page.tsx src/app/api/v1/suppliers/route.ts src/app/api/v1/suppliers/[id]/route.ts src/app/api/mcp/route.ts src/components/supplier-map.tsx ... +5 more |
users (auth)
| field | type | required | refs | used where |
|---|---|---|---|---|
accont_status |
bool | no | ❌ unused | — |
avatar |
file | no | ❌ unused | — |
permissions |
select | no | ❌ unused | — |
user_type |
select | no | ❌ unused | — |
name |
text | no | ✅ 309 | src/app/api/v1/users/lookup/route.ts src/components/auth-provider.tsx src/components/ui/user-search.tsx src/lib/server/management-service.ts scripts/setup-pocketbase.ts ... +7 more |
Unused fields only (candidates for removal)
| collection | field | type | required |
|---|---|---|---|
driver_locations |
accuracy |
number | no |
driver_locations |
geoPoint |
geoPoint | no |
driver_locations |
heading |
number | no |
driver_locations |
latitude |
number | no |
driver_locations |
longitude |
number | no |
driver_locations |
relation |
relation | no |
driver_locations |
speed |
number | no |
driver_locations |
timestamp |
date | no |
dupicate_custmers |
customer |
text | no |
dupicate_custmers |
total_count |
number | no |
masterdrilling_consignment |
category |
select | no |
masterdrilling_consignment |
cost_price |
text | no |
masterdrilling_consignment |
description |
text | no |
masterdrilling_consignment |
markup |
text | no |
masterdrilling_consignment |
product_code |
number | no |
masterdrilling_consignment |
product_code_descrip |
text | no |
masterdrilling_consignment |
selling_price |
text | no |
masterdrilling_consignment |
supplier |
relation | no |
order_items |
delivered_at |
date | no |
order_items |
delivery_status |
select | no |
order_items |
drv_assigned_at |
date | no |
order_items |
invoice_status |
select | no |
order_items |
qb_invoice_pdf_ |
text | no |
order_items |
qty_assigned |
number | no |
order_items |
qty_delivered |
number | no |
order_items |
qty_processed |
number | no |
orders |
order_attachements |
file | no |
pos |
brand |
text | no |
pos |
category |
text | no |
pos |
cost_price |
number | no |
pos |
description |
text | no |
pos |
markup |
number | no |
pos |
search_text |
text | no |
pos |
selling_price |
number | no |
pos |
sku |
text | no |
pos |
sku_normalised |
text | no |
pos |
source_file |
text | no |
pos |
source_file_id |
relation | no |
pos |
specifications |
json | no |
pos |
stock_qty |
number | no |
pos |
subcategory |
text | no |
pos |
supplier |
text | no |
pos |
unit |
text | no |
price_list |
source_file_id |
relation | no |
price_list |
stock_qty |
number | no |
users |
accont_status |
bool | no |
users |
avatar |
file | no |
users |
permissions |
select | no |
users |
user_type |
select | no |
Single-reference fields (likely legacy / dead-code)
| collection | field | type | file |
|---|---|---|---|
order_items |
legacy_order_item_id |
text | scripts/migrations/2026-07-20-delivery-tracking.ts |
Dead collections (never referenced anywhere in the app)
These collections exist in PB but no app file touches them. Every non-system field on them is unused. Safe to inspect for deletion once you confirm the data is not needed by anything external (n8n flows, MCP, manual admin, etc).
driver_locations(base, 8 user fields)masterdrilling_consignment(base, 8 user fields)pos(base, 16 user fields)