Add note to reactivation request
All checks were successful
Build and Push / build (push) Successful in 1m28s
All checks were successful
Build and Push / build (push) Successful in 1m28s
This commit is contained in:
@@ -93,6 +93,14 @@ const MIGRATION_SQL = `
|
||||
-- is only meaningful for rejected and cancelled rows.
|
||||
ALTER TABLE tenant_requests ADD COLUMN IF NOT EXISTS dismissed_at TIMESTAMPTZ;
|
||||
|
||||
-- Feature 6: free-form customer note attached to the request.
|
||||
-- Currently surfaced only by resume requests (where the customer
|
||||
-- explains why they want reactivation), but the column is generic
|
||||
-- so future flows could reuse it. Distinct from billing_notes
|
||||
-- (provision-only, accounting-related) and admin_notes (admin's
|
||||
-- reason on reject/approve). Optional — nullable.
|
||||
ALTER TABLE tenant_requests ADD COLUMN IF NOT EXISTS customer_notes TEXT;
|
||||
|
||||
-- Bug 37a: resume requests use the same table as provision requests so
|
||||
-- the customer dashboard and admin queue share rendering. Discriminator
|
||||
-- is request_type. Default 'provision' on backfill keeps existing rows
|
||||
@@ -558,14 +566,21 @@ export async function createResumeRequest(params: {
|
||||
// tenant request for traceability rather than storing dummy values.
|
||||
companyName: string;
|
||||
agentName: string;
|
||||
/**
|
||||
* Feature 6: optional free-form note from the customer explaining
|
||||
* why they want reactivation. Surfaced to admin in the queue and
|
||||
* forwarded to the platform notification email so the admin can
|
||||
* decide before opening the request.
|
||||
*/
|
||||
customerNotes?: string | null;
|
||||
}): Promise<TenantRequest> {
|
||||
await ensureSchema();
|
||||
const result = await getPool().query(
|
||||
`INSERT INTO tenant_requests (
|
||||
zitadel_org_id, zitadel_user_id, company_name,
|
||||
contact_name, contact_email, agent_name,
|
||||
tenant_name, request_type, status
|
||||
) VALUES ($1, $2, $3, $4, $5, $6, $7, 'resume', 'pending')
|
||||
tenant_name, request_type, status, customer_notes
|
||||
) VALUES ($1, $2, $3, $4, $5, $6, $7, 'resume', 'pending', $8)
|
||||
RETURNING *`,
|
||||
[
|
||||
params.zitadelOrgId,
|
||||
@@ -575,6 +590,7 @@ export async function createResumeRequest(params: {
|
||||
params.contactEmail,
|
||||
params.agentName,
|
||||
params.tenantName,
|
||||
params.customerNotes ?? null,
|
||||
]
|
||||
);
|
||||
return mapRow(result.rows[0]);
|
||||
@@ -876,6 +892,7 @@ function mapRow(row: any): TenantRequest {
|
||||
packages: row.packages ?? [],
|
||||
billingAddress: row.billing_address ?? {},
|
||||
billingNotes: row.billing_notes,
|
||||
customerNotes: row.customer_notes ?? null,
|
||||
status: row.status as TenantRequestStatus,
|
||||
adminNotes: row.admin_notes,
|
||||
tenantName: row.tenant_name,
|
||||
|
||||
Reference in New Issue
Block a user