- examples/fixture-invoicing/: FastAPI + Vue + Postgres demo (4-entity invoice fixture)
- cfg/sample/: wraps the fixture (managed.repos points at examples/)
- ctrl/kind-{up,down,status}.sh + per-room k8s render in soleprint/ctrl/k8s/
- build.py: relative repo paths, resilient rmtree, optional k8s render hook
- cfg/.gitignore: stop ignoring sample/ and standalone/ template rooms
Manifests render cleanly but kind cluster has not been run end-to-end yet.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
61 lines
2.4 KiB
JSON
61 lines
2.4 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"title": "Fixture Invoicing Data Model",
|
|
"description": "Tables of the fixture-invoicing app — all data is obviously placeholder.",
|
|
"version": "0.1.0",
|
|
"meta": {
|
|
"purpose": "Browse and QA fixture data while iterating on soleprint tools.",
|
|
"modes": ["sql"]
|
|
},
|
|
"definitions": {
|
|
"Customer": {
|
|
"type": "object",
|
|
"description": "A fixture customer.",
|
|
"table": "customer",
|
|
"properties": {
|
|
"id": {"type": "integer", "column": "id"},
|
|
"name": {"type": "string", "column": "name"},
|
|
"email": {"type": "string", "column": "email"},
|
|
"created_at": {"type": "string", "format": "date-time", "column": "created_at"}
|
|
}
|
|
},
|
|
"Invoice": {
|
|
"type": "object",
|
|
"description": "An invoice issued to a fixture customer.",
|
|
"table": "invoice",
|
|
"properties": {
|
|
"id": {"type": "integer", "column": "id"},
|
|
"number": {"type": "string", "column": "number"},
|
|
"customer_id": {"type": "integer", "column": "customer_id", "fk": "Customer"},
|
|
"issued_at": {"type": "string", "format": "date-time", "column": "issued_at"},
|
|
"due_at": {"type": "string", "format": "date-time", "column": "due_at"},
|
|
"status": {"type": "string", "column": "status"}
|
|
}
|
|
},
|
|
"LineItem": {
|
|
"type": "object",
|
|
"description": "A billable line on an invoice.",
|
|
"table": "line_item",
|
|
"properties": {
|
|
"id": {"type": "integer", "column": "id"},
|
|
"invoice_id": {"type": "integer", "column": "invoice_id", "fk": "Invoice"},
|
|
"description": {"type": "string", "column": "description"},
|
|
"quantity": {"type": "integer", "column": "quantity"},
|
|
"unit_price": {"type": "number", "column": "unit_price"}
|
|
}
|
|
},
|
|
"Payment": {
|
|
"type": "object",
|
|
"description": "A payment recorded against an invoice.",
|
|
"table": "payment",
|
|
"properties": {
|
|
"id": {"type": "integer", "column": "id"},
|
|
"invoice_id": {"type": "integer", "column": "invoice_id", "fk": "Invoice"},
|
|
"amount": {"type": "number", "column": "amount"},
|
|
"method": {"type": "string", "column": "method"},
|
|
"paid_at": {"type": "string", "format": "date-time", "column": "paid_at"}
|
|
}
|
|
}
|
|
}
|
|
}
|