users
1 row per account- PK id TEXT
- email TEXT UNIQUE
- password_hash TEXT
- totp_secret TEXT
- plan TEXT
- created_at TEXT
Entity-relationship overview of the core VaultLister 3.0 schema. All ID columns are TEXT (UUID). The database is SQLite 3 in WAL mode with FTS5 for full-text search on inventory.
Legend
Relationship map
users │ ├─[1:N]──────────────► inventory │ │ │ └─[1:N]────────► listings │ │ ├─[1:N]──────────────────────────────────────────┘ │ ├─[1:N]──────────────► sales │ ├─[1:N]──────────────► offers │ ├─[1:N]──────────────► shops │ └─[1:N]──────────────► sessions
Relationships
| Parent entity | Cardinality | Child entity | Description |
|---|---|---|---|
| users | 1 : N | inventory | Each user owns zero or more InventoryItems. Deleting a user cascades to their inventory. |
| users | 1 : N | listings | Each user owns zero or more Listings across all platforms. A Listing also belongs to one InventoryItem. |
| inventory | 1 : N | listings | One InventoryItem can have one Listing per platform (up to 9). Status syncs back when a sale occurs. |
| users | 1 : N | sales | Each Sale belongs to one user and is linked to the originating Listing and InventoryItem. |
| users | 1 : N | offers | Each Offer belongs to one user. Offers are associated with a Listing and a platform buyer ID. |
| users | 1 : N | shops | Each user can have one shop profile per platform (e.g., Poshmark closet, eBay store). |
| users | 1 : N | sessions | Auth sessions for JWT refresh token tracking. Supports multiple devices (Remember Me). |
Core entities