Spaces:
Running
Download source/teaql-ts/examples/browser-sqlite/assist/create-customer_order.md from teaql/browser-sqlite-playground: direct link, hf CLI and curl.
- Browser
- Download file 4.1 kB
-
https://huggingface.co/spaces/teaql/browser-sqlite-playground/resolve/main/source/teaql-ts/examples/browser-sqlite/assist/create-customer_order.md
- Command line
-
hf download hf://spaces/teaql/browser-sqlite-playground/source/teaql-ts/examples/browser-sqlite/assist/create-customer_order.md
-
curl -L -o create-customer_order.md https://huggingface.co/spaces/teaql/browser-sqlite-playground/resolve/main/source/teaql-ts/examples/browser-sqlite/assist/create-customer_order.md
TypeScript Assist — Create Customer Order
Use the exact generated Q.customerOrders() entry point. The
trusted UserContext supplies actor, tenant, policy, provider, and audit sink;
none of those values may be accepted from the writable input.
import { UserContext } from '../teaql-ts';
import { Q } from './Q';
import { CustomerOrder } from './models/CustomerOrder';
export interface CreateCustomerOrderInput {
customer: string | number;
status: string | number;
orderNumber: string;
orderDate: string;
totalAmount: number;
}
export async function createCustomerOrder(
input: CreateCustomerOrderInput,
context: UserContext,
): Promise<CustomerOrder> {
const entity = Q.customerOrders()
.comment('what: initialize Customer Order')
.purpose('why: create Customer Order')
.newEntity(context);
entity.updateCustomer(input.customer);
entity.updateStatus(input.status);
entity.updateOrderNumber(input.orderNumber);
entity.updateOrderDate(input.orderDate);
entity.updateTotalAmount(input.totalAmount);
await entity
.auditAs('Create Customer Order for the requested business operation')
.save(context);
return entity;
}
Only the generated updater methods above are writable. Constant relation candidates, when present, are also generated and must be copied exactly:
updateStatusToNew()updateStatusToPaid()updateStatusToCancelled()
Compile the result unchanged. Test persistence and query-back, and prove that blank/missing intent, blank/missing audit reason, unknown fields, and attempted trusted-context overrides fail. Do not edit generated sources.
TeaQL seven-language assist contract
Apply the verified Rust semantic ceiling while using only the exact TYPESCRIPT generated and runtime APIs. Discover APIs through the generated application AGENTS.md and progressive model-aware Assist. Do not inspect generated domain-library source.
- Do not create plurals by appending
sores; use the centralized generated plural. - Human and non-human entities use different generated predicate vocabularies. Preserve forms such as “who are active” and “whose email is”; never infer them from English.
- Configure filters, projection, paging, and other query options before
purpose(...). Comment may appear anywhere in the chain. Purpose enters the executable stage; execution requires both values, but comment does not have to immediately precede purpose. - Every execute/list/stream and every save accepts exactly one context argument:
UserContext. Name that argumentcontext, neverruntime; data services and global policy are injected when the context is built. Reserveruntimefor process-level runtime ownership, provider/pool setup, and module assembly. - Tenant, merchant, identity, permissions, request policy, purpose policy, hard limit, and continuous-page cursor policy come only from trusted context, never dynamic JSON or TFP.
- If the required operation is absent after current entity/action and required field Assist, stop that path and report MISSING_ASSIST. Do not guess an API or search the generated library as a fallback.
- Create each application-owned source file once. After its first compile attempt, repair only the smallest block identified by the exact compiler or test diagnostic. Preserve unrelated code; do not rewrite the complete file as an error-recovery loop.
- Before a repair that would replace more than 25% of an existing application file, stop and report LARGE_REWRITE_REQUEST with the file, exact diagnostic, reason, and estimated scope. Initial creation and model-driven regeneration are not repairs.
Capability: create.
- Validate and allow-list writable business fields; never mass-assign dynamic JSON.
- Create through the generated request/entity API, attach a non-empty audit reason, save with the same UserContext, and return the runtime's native save result.
- Add a negative test proving a missing audit reason cannot write.