attributePathResolver and the condition builder (templatingData.ts). Inspection worklists use the same attribute keys for MongoDB filtering (worklist.ts → buildMongoCondition).payment: paymentTemplateKeys.filter(...) is commented out in conditionalKeys, and paymentTemplateKeys only includes a Payment List template string (not branchable states).inspection.paid intentionally treats some in-flight payments as paid for report/access semantics — e.g. pending ACH and signed PAC before funding can set paid: true while totalPaid remains 0. Flows that use Paid is false for “send collection email” cannot distinguish unsigned PAC, signed-but-unfunded PAC, pending ACH, and truly unpaid jobs.pacIsnFlexFundStatuses.ts, FlexFund webhooks, client payment helpers) — pending signature, signed, funded, backup-card retry buckets, terminal failures, canceled — but it is not surfaced as a condition attribute automations or worklists can evaluate.Locked
conditionsResolver, attributePathResolver) on inspection-triggered flows, plus inspection-related worklists (same condition attribute for list filtering). Not quote flows.payment.type, payment.status, and PAC isn.orderStatus / funded signals), reusing buckets already defined for PAC in pacIsnFlexFundStatuses.ts where possible.unpaidpending_agreement (PAC unsigned)due_at_closing (PAC signed, not yet funded)funded / collectedcard_pending and card_settled (distinct values)ach_pending and ach_settled (distinct values)backup_card_path / closing_fell_throughkicked_back / terminal failurecanceledrefundedOpen
payment keys in conditionalKeys — which pattern should the builder use?pac_agreement_signed, etc.). Confirm this issue covers state conditions only and does not duplicate trigger work.Backend (attik-backend)
src/util/functions/actionFlows/attributePathResolver.ts and conditionsResolver.ts: add resolver for primary payment condition derived from populated inspection payments.src/routes/worklist.ts (buildMongoCondition): register the new attribute and map it to a queryable field (or derived filter strategy) alongside existing paid, totalPaid, remainingBalance.src/util/functions/payments/pacIsnFlexFundStatuses.ts (PAC_PENDING_STATUSES, PAC_SUCCESS_STATUSES, PAC_BACKUP_CARD_OR_CHARGE_FAILURE_STATUSES, PAC_BUSINESS_UNWIND_FAILED_STATUSES, PAC_CANCELED_STATUSES, mapPACToStatus) as reference for mapping ISN states to condition values.syncTotalsOnInspection / inspection.paid behavior documented in tests/integration/inspection.paidSemantics.test.ts (ATT-1718); new attribute must not assume paid equals collectible state.FullPopulatedDataForFlow includes payment fields needed for evaluation when flows run.Frontend (attik-frontend)
src/components/conditions/templatingData.ts: register new payment-condition attribute in inspectionTemplateKeys / conditionalKeys (and backend mirror in backendTemplatingData.ts if required for parity).Conditions.tsx / worklist builder) for inspection worklists.Out of scope (unless product expands)
inspection.paid semantics again (ATT-1718 — Done).attik-backend/src/util/functions/actionFlows/attributePathResolver.ts, attik-backend/src/routes/worklist.ts, attik-backend/src/util/functions/payments/pacIsnFlexFundStatuses.ts, attik-frontend/src/components/conditions/templatingData.tsPlease authenticate to join the conversation.
Planned
Main App
About 5 hours ago
Linear
Get notified by email when there are changes.
Planned
Main App
About 5 hours ago
Linear
Get notified by email when there are changes.