Database

23 Firestore collections verified against production — project max-inventory-scanner-b0b53

Infrastructure

Cloud Firestore
23 Collections
Firebase Storage
Files & Exports
Archive DB
Secondary Firestore
4
Core Collections
4
Catalog Collections
6
User & Auth
9
System Collections

Core Collections

Packages
Every package in the system
  • packageID string — Document ID
  • clientID string — Owner reference
  • trackingNumber string — Cleaned tracking #
  • rawTrackingNumber string — Original scan
  • status string — Pipeline stage
  • logistic string — Carrier name
  • containerID string — Assigned container
  • dimensions map — h/l/w
  • scanHistory array — Scan log
  • lastScanned timestamp
  • isMainPackage boolean
  • consolidatedInto string
  • containsPackages array
Clients
Client directory with Square integration
  • clientID string — Document ID
  • firstName, lastName, name string
  • emailAddress string — Contact email
  • phoneNumber string — E.164 format
  • referenceId / showID string — Client #
  • squareCustomerId string
  • location string — Roatan, Utila, etc.
  • discountCode string — Default discount
  • creationSource string
  • needsAdminReview boolean
Invoices
Billing with Square payment sync
  • invoiceID string — Document ID
  • clientID, containerID string
  • squareCustomerId string
  • status string — APPROVED / UNAPPROVED
  • packages array — Line items with costs
  • subTotal, tax, totalCost number
  • automaticallySent number — 0-4 status code
  • isAllUnloaded boolean
  • invoiceSent boolean
  • sentToSquareAt timestamp
Containers
Shipping containers with nested invoices
  • containerName string — e.g. "Container - 01/27/2026"
  • containerCreatedAt timestamp
  • isBackedUp boolean — Archived flag
  • invoices array — [{invoiceID, packages: [{packageID, status}]}]

Catalog Collections

Items
Product catalog with Square tokens
  • itemID string
  • itemName string — e.g. "70 Inch TV"
  • itemCost number
  • categoryID string — Ref to Categories
  • tokenID string — Square catalog ID
Categories
Item categories with tax rules
  • categoryID string
  • categoryName string — e.g. "Paint"
  • isTaxable boolean
  • isDefault boolean
  • tokenID string
Charges
Additional fees
  • chargeID string
  • chargeName string — e.g. "Forklift charge ($100)"
  • chargeCost number
  • tokenID string
Discounts
Discount codes
  • discountID string
  • discountName string — e.g. "Business"
  • discountValue number — 0.1 = 10%
  • isPercentage boolean

User & Auth Collections

User
Staff accounts
  • userID, username, name
  • password, userRole
  • isSuperAdmin, isLoggedIn
  • activeDeviceId, lastActiveAt
Password
Shared app password
  • password string
  • Single document
UserLogs
Session tracking
  • userID string
  • loginTime, logoutTime timestamp
  • isActive boolean
activeDevices
Logged-in devices
  • userId, deviceId
  • loggedInAt timestamp
webPermissions
Web app access control
  • action string
  • allowedUsers array
AppPermissions
Scanner app access control
  • action string
  • userIDs array

System Collections (9)

CollectionPurposeKey Fields
TempSystem timers (password expiry)isPasswordExpired
systemVarsAuto-incrementing IDs and counterslabelCounter.lastNumber, lastRefId per series
webLogsActivity audit trailaction, message, timestamp, userID, isFromApp, isBadScan
ProcessedOperationsInvoice processing idempotencyinvoiceID, processedAt
PubSubQueuePubSub deduplicationoperationID, enqueuedAt
squareAPILogSquare API call auditorderData, invoiceData (full request payloads)
checkResultsDaily data quality resultsissues[], runDate, updatedAt
userDailyDataDaily activity aggregationWritten by dailyDataReport
UserAppVersionApp version trackinguserID, version

Data Relationships

Clients
Packages
Containers
Packages
Invoices
Square API

Storage Buckets

PathContents
loadedPackages/Loaded package manifests and packing lists
prepaid/Prepaid shipment documentation
excelsheets/Generated XLSX reports (loaded packages, prepaid)
json/packages.jsonCombined package data for scanner app

Bucket: max-inventory-scanner-b0b53.appspot.com

📖 Deep dive: Full Data Model Reference — all 23 collections with complete field schemas
← Back to MaxShipping