Add cloudhost-platform Helm chart and registry ingress manifests.
Deploy backend, frontend, PostgreSQL, and Redis on Kubernetes with optional Ingress/TLS, SQL migration hooks, and public registry exposure at repo.3fase.ir. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
CREATE TABLE IF NOT EXISTS invoices (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"invoiceNumber" VARCHAR NOT NULL UNIQUE,
|
||||
"userId" UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
||||
"applicationId" UUID REFERENCES applications(id) ON DELETE SET NULL,
|
||||
reason VARCHAR NOT NULL DEFAULT 'manual',
|
||||
status VARCHAR NOT NULL DEFAULT 'issued',
|
||||
"paymentMethod" VARCHAR,
|
||||
subtotal DECIMAL(14, 2) NOT NULL DEFAULT 0,
|
||||
total DECIMAL(14, 2) NOT NULL DEFAULT 0,
|
||||
"paidAmount" DECIMAL(14, 2) NOT NULL DEFAULT 0,
|
||||
"dueAmount" DECIMAL(14, 2) NOT NULL DEFAULT 0,
|
||||
"dueDate" TIMESTAMPTZ,
|
||||
"paidAt" TIMESTAMPTZ,
|
||||
"gatewayTrackingCode" VARCHAR,
|
||||
"gatewayReference" VARCHAR,
|
||||
"adminNote" VARCHAR,
|
||||
"statusReason" VARCHAR,
|
||||
metadata JSONB,
|
||||
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
"updatedAt" TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS invoice_lines (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
"invoiceId" UUID NOT NULL REFERENCES invoices(id) ON DELETE CASCADE,
|
||||
label VARCHAR NOT NULL,
|
||||
description VARCHAR,
|
||||
quantity INT NOT NULL DEFAULT 1,
|
||||
"unitAmount" DECIMAL(14, 2) NOT NULL DEFAULT 0,
|
||||
amount DECIMAL(14, 2) NOT NULL DEFAULT 0,
|
||||
metadata JSONB,
|
||||
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
ALTER TABLE wallet_transactions
|
||||
ADD COLUMN IF NOT EXISTS "invoiceId" UUID REFERENCES invoices(id) ON DELETE SET NULL;
|
||||
|
||||
ALTER TABLE wallet_transactions
|
||||
ADD COLUMN IF NOT EXISTS "gatewayTrackingCode" VARCHAR;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_invoices_user_status_created
|
||||
ON invoices ("userId", status, "createdAt" DESC);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_invoices_application
|
||||
ON invoices ("applicationId");
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_invoice_lines_invoice
|
||||
ON invoice_lines ("invoiceId");
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_wallet_transactions_invoice
|
||||
ON wallet_transactions ("invoiceId");
|
||||
Reference in New Issue
Block a user