@kohost/api-client 7.7.1 → 7.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/bills.d.ts +74 -0
- package/dist/lib/bills.js +83 -0
- package/dist/lib/bills.js.map +1 -0
- package/dist/lib/deviceNotifications.js +1 -4
- package/dist/lib/deviceNotifications.js.map +1 -1
- package/dist/lib/index.d.ts +4 -0
- package/dist/lib/index.js +27 -2
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/kfcStatsWindow.d.ts +37 -0
- package/dist/lib/kfcStatsWindow.js +46 -0
- package/dist/lib/kfcStatsWindow.js.map +1 -0
- package/dist/lib/lowerBoundTable.d.ts +11 -0
- package/dist/lib/lowerBoundTable.js +28 -0
- package/dist/lib/lowerBoundTable.js.map +1 -0
- package/dist/lib/money.d.ts +61 -0
- package/dist/lib/money.js +80 -0
- package/dist/lib/money.js.map +1 -0
- package/dist/lib/policy-resolvers.js +5 -4
- package/dist/lib/policy-resolvers.js.map +1 -1
- package/dist/lib/ticketRichText.d.ts +35 -0
- package/dist/lib/ticketRichText.js +86 -0
- package/dist/lib/ticketRichText.js.map +1 -0
- package/dist/models/bill.d.ts +17 -0
- package/dist/models/bill.js +37 -0
- package/dist/models/bill.js.map +1 -0
- package/dist/models/billingCategory.d.ts +17 -0
- package/dist/models/billingCategory.js +22 -0
- package/dist/models/billingCategory.js.map +1 -0
- package/dist/models/index.d.ts +2 -1
- package/dist/models/index.js +5 -3
- package/dist/models/index.js.map +1 -1
- package/dist/models/organization.js +4 -0
- package/dist/models/organization.js.map +1 -1
- package/dist/models/ticket.js +5 -0
- package/dist/models/ticket.js.map +1 -1
- package/dist/schemas/bill.d.ts +255 -0
- package/dist/schemas/bill.js +248 -0
- package/dist/schemas/bill.js.map +1 -0
- package/dist/schemas/billingCategory.d.ts +46 -0
- package/dist/schemas/billingCategory.js +38 -0
- package/dist/schemas/billingCategory.js.map +1 -0
- package/dist/schemas/definitions.d.ts +2 -2
- package/dist/schemas/definitions.js +3 -1
- package/dist/schemas/definitions.js.map +1 -1
- package/dist/schemas/index.d.ts +2 -1
- package/dist/schemas/index.js +3 -2
- package/dist/schemas/organization.d.ts +112 -1
- package/dist/schemas/organization.js +93 -0
- package/dist/schemas/organization.js.map +1 -1
- package/dist/schemas/property.d.ts +32 -0
- package/dist/schemas/property.js +26 -0
- package/dist/schemas/property.js.map +1 -1
- package/dist/schemas/ticket.d.ts +381 -3
- package/dist/schemas/ticket.js +419 -1
- package/dist/schemas/ticket.js.map +1 -1
- package/dist/useCases/acknowledgeCostDivergence.d.ts +39 -0
- package/dist/useCases/acknowledgeCostDivergence.js +47 -0
- package/dist/useCases/acknowledgeCostDivergence.js.map +1 -0
- package/dist/useCases/addBillLine.d.ts +36 -0
- package/dist/useCases/addBillLine.js +47 -0
- package/dist/useCases/addBillLine.js.map +1 -0
- package/dist/useCases/addStaffFunctionMember.d.ts +39 -0
- package/dist/useCases/addStaffFunctionMember.js +47 -0
- package/dist/useCases/addStaffFunctionMember.js.map +1 -0
- package/dist/useCases/cancelWorkItem.d.ts +39 -0
- package/dist/useCases/cancelWorkItem.js +47 -0
- package/dist/useCases/cancelWorkItem.js.map +1 -0
- package/dist/useCases/clearWorkItemNoCharge.d.ts +39 -0
- package/dist/useCases/clearWorkItemNoCharge.js +47 -0
- package/dist/useCases/clearWorkItemNoCharge.js.map +1 -0
- package/dist/useCases/createBill.d.ts +27 -0
- package/dist/useCases/createBill.js +47 -0
- package/dist/useCases/createBill.js.map +1 -0
- package/dist/useCases/createBillingCategory.d.ts +27 -0
- package/dist/useCases/createBillingCategory.js +47 -0
- package/dist/useCases/createBillingCategory.js.map +1 -0
- package/dist/useCases/decideApproval.d.ts +39 -0
- package/dist/useCases/decideApproval.js +47 -0
- package/dist/useCases/decideApproval.js.map +1 -0
- package/dist/useCases/deleteBill.d.ts +36 -0
- package/dist/useCases/deleteBill.js +47 -0
- package/dist/useCases/deleteBill.js.map +1 -0
- package/dist/useCases/deleteStaffUser.d.ts +36 -0
- package/dist/useCases/deleteStaffUser.js +47 -0
- package/dist/useCases/deleteStaffUser.js.map +1 -0
- package/dist/useCases/describeBill.d.ts +36 -0
- package/dist/useCases/describeBill.js +47 -0
- package/dist/useCases/describeBill.js.map +1 -0
- package/dist/useCases/describeConciergeFacilitiesViewer.d.ts +27 -0
- package/dist/useCases/describeConciergeFacilitiesViewer.js +47 -0
- package/dist/useCases/describeConciergeFacilitiesViewer.js.map +1 -0
- package/dist/useCases/describeConciergeStatsFilters.d.ts +27 -0
- package/dist/useCases/describeConciergeStatsFilters.js +47 -0
- package/dist/useCases/describeConciergeStatsFilters.js.map +1 -0
- package/dist/useCases/describeConciergeStatsHeatmap.d.ts +27 -0
- package/dist/useCases/describeConciergeStatsHeatmap.js +47 -0
- package/dist/useCases/describeConciergeStatsHeatmap.js.map +1 -0
- package/dist/useCases/describeConciergeStatsSummary.d.ts +27 -0
- package/dist/useCases/describeConciergeStatsSummary.js +47 -0
- package/dist/useCases/describeConciergeStatsSummary.js.map +1 -0
- package/dist/useCases/describeConciergeStatsTickets.d.ts +27 -0
- package/dist/useCases/describeConciergeStatsTickets.js +47 -0
- package/dist/useCases/describeConciergeStatsTickets.js.map +1 -0
- package/dist/useCases/describeConciergeWorkspaceFilters.d.ts +27 -0
- package/dist/useCases/describeConciergeWorkspaceFilters.js +47 -0
- package/dist/useCases/describeConciergeWorkspaceFilters.js.map +1 -0
- package/dist/useCases/describeOrganizationBill.d.ts +36 -0
- package/dist/useCases/describeOrganizationBill.js +47 -0
- package/dist/useCases/describeOrganizationBill.js.map +1 -0
- package/dist/useCases/describeSelfAccess.d.ts +27 -0
- package/dist/useCases/describeSelfAccess.js +47 -0
- package/dist/useCases/describeSelfAccess.js.map +1 -0
- package/dist/useCases/describeStaffFunctions.d.ts +27 -0
- package/dist/useCases/describeStaffFunctions.js +47 -0
- package/dist/useCases/describeStaffFunctions.js.map +1 -0
- package/dist/useCases/describeTicketStatsFilters.d.ts +27 -0
- package/dist/useCases/describeTicketStatsFilters.js +47 -0
- package/dist/useCases/describeTicketStatsFilters.js.map +1 -0
- package/dist/useCases/describeTicketStatsHeatmap.d.ts +27 -0
- package/dist/useCases/describeTicketStatsHeatmap.js +47 -0
- package/dist/useCases/describeTicketStatsHeatmap.js.map +1 -0
- package/dist/useCases/describeTicketStatsSummary.d.ts +27 -0
- package/dist/useCases/describeTicketStatsSummary.js +47 -0
- package/dist/useCases/describeTicketStatsSummary.js.map +1 -0
- package/dist/useCases/describeTicketStatsTickets.d.ts +27 -0
- package/dist/useCases/describeTicketStatsTickets.js +47 -0
- package/dist/useCases/describeTicketStatsTickets.js.map +1 -0
- package/dist/useCases/editCostEntry.d.ts +39 -0
- package/dist/useCases/editCostEntry.js +47 -0
- package/dist/useCases/editCostEntry.js.map +1 -0
- package/dist/useCases/index.d.ts +57 -0
- package/dist/useCases/index.js +116 -2
- package/dist/useCases/index.js.map +1 -1
- package/dist/useCases/listBillingCategories.d.ts +27 -0
- package/dist/useCases/listBillingCategories.js +47 -0
- package/dist/useCases/listBillingCategories.js.map +1 -0
- package/dist/useCases/listBills.d.ts +27 -0
- package/dist/useCases/listBills.js +47 -0
- package/dist/useCases/listBills.js.map +1 -0
- package/dist/useCases/listConciergeUninvoicedCosts.d.ts +27 -0
- package/dist/useCases/listConciergeUninvoicedCosts.js +47 -0
- package/dist/useCases/listConciergeUninvoicedCosts.js.map +1 -0
- package/dist/useCases/listConciergeWorkspaceBills.d.ts +27 -0
- package/dist/useCases/listConciergeWorkspaceBills.js +47 -0
- package/dist/useCases/listConciergeWorkspaceBills.js.map +1 -0
- package/dist/useCases/listConciergeWorkspaceTickets.d.ts +27 -0
- package/dist/useCases/listConciergeWorkspaceTickets.js +47 -0
- package/dist/useCases/listConciergeWorkspaceTickets.js.map +1 -0
- package/dist/useCases/listEligibleApprovers.d.ts +36 -0
- package/dist/useCases/listEligibleApprovers.js +47 -0
- package/dist/useCases/listEligibleApprovers.js.map +1 -0
- package/dist/useCases/listFacilitiesStaffIds.d.ts +27 -0
- package/dist/useCases/listFacilitiesStaffIds.js +47 -0
- package/dist/useCases/listFacilitiesStaffIds.js.map +1 -0
- package/dist/useCases/listKohostStaff.d.ts +27 -0
- package/dist/useCases/listKohostStaff.js +47 -0
- package/dist/useCases/listKohostStaff.js.map +1 -0
- package/dist/useCases/listOrganizationBills.d.ts +27 -0
- package/dist/useCases/listOrganizationBills.js +47 -0
- package/dist/useCases/listOrganizationBills.js.map +1 -0
- package/dist/useCases/markBillPaid.d.ts +36 -0
- package/dist/useCases/markBillPaid.js +47 -0
- package/dist/useCases/markBillPaid.js.map +1 -0
- package/dist/useCases/markBillSent.d.ts +36 -0
- package/dist/useCases/markBillSent.js +47 -0
- package/dist/useCases/markBillSent.js.map +1 -0
- package/dist/useCases/previewBill.d.ts +36 -0
- package/dist/useCases/previewBill.js +47 -0
- package/dist/useCases/previewBill.js.map +1 -0
- package/dist/useCases/recordCostActual.d.ts +39 -0
- package/dist/useCases/recordCostActual.js +47 -0
- package/dist/useCases/recordCostActual.js.map +1 -0
- package/dist/useCases/recordCostEntry.d.ts +36 -0
- package/dist/useCases/recordCostEntry.js +47 -0
- package/dist/useCases/recordCostEntry.js.map +1 -0
- package/dist/useCases/reinstateCostEntry.d.ts +39 -0
- package/dist/useCases/reinstateCostEntry.js +47 -0
- package/dist/useCases/reinstateCostEntry.js.map +1 -0
- package/dist/useCases/removeBillLine.d.ts +39 -0
- package/dist/useCases/removeBillLine.js +47 -0
- package/dist/useCases/removeBillLine.js.map +1 -0
- package/dist/useCases/removeStaffFunctionMember.d.ts +39 -0
- package/dist/useCases/removeStaffFunctionMember.js +47 -0
- package/dist/useCases/removeStaffFunctionMember.js.map +1 -0
- package/dist/useCases/requestApproval.d.ts +36 -0
- package/dist/useCases/requestApproval.js +47 -0
- package/dist/useCases/requestApproval.js.map +1 -0
- package/dist/useCases/rescheduleWorkItem.d.ts +39 -0
- package/dist/useCases/rescheduleWorkItem.js +47 -0
- package/dist/useCases/rescheduleWorkItem.js.map +1 -0
- package/dist/useCases/scheduleWorkItem.d.ts +36 -0
- package/dist/useCases/scheduleWorkItem.js +47 -0
- package/dist/useCases/scheduleWorkItem.js.map +1 -0
- package/dist/useCases/setCostVendorInvoice.d.ts +39 -0
- package/dist/useCases/setCostVendorInvoice.js +47 -0
- package/dist/useCases/setCostVendorInvoice.js.map +1 -0
- package/dist/useCases/setUserSuperAdmin.d.ts +36 -0
- package/dist/useCases/setUserSuperAdmin.js +47 -0
- package/dist/useCases/setUserSuperAdmin.js.map +1 -0
- package/dist/useCases/setWorkItemNoCharge.d.ts +39 -0
- package/dist/useCases/setWorkItemNoCharge.js +47 -0
- package/dist/useCases/setWorkItemNoCharge.js.map +1 -0
- package/dist/useCases/updateBill.d.ts +36 -0
- package/dist/useCases/updateBill.js +47 -0
- package/dist/useCases/updateBill.js.map +1 -0
- package/dist/useCases/updateBillLine.d.ts +39 -0
- package/dist/useCases/updateBillLine.js +47 -0
- package/dist/useCases/updateBillLine.js.map +1 -0
- package/dist/useCases/updateBillingCategory.d.ts +36 -0
- package/dist/useCases/updateBillingCategory.js +47 -0
- package/dist/useCases/updateBillingCategory.js.map +1 -0
- package/dist/useCases/updateOrganizationBillingAddress.d.ts +36 -0
- package/dist/useCases/updateOrganizationBillingAddress.js +47 -0
- package/dist/useCases/updateOrganizationBillingAddress.js.map +1 -0
- package/dist/useCases/updateOrganizationBillingContacts.d.ts +36 -0
- package/dist/useCases/updateOrganizationBillingContacts.js +47 -0
- package/dist/useCases/updateOrganizationBillingContacts.js.map +1 -0
- package/dist/useCases/updateOrganizationTaxExempt.d.ts +36 -0
- package/dist/useCases/updateOrganizationTaxExempt.js +47 -0
- package/dist/useCases/updateOrganizationTaxExempt.js.map +1 -0
- package/dist/useCases/updateStaffUser.d.ts +36 -0
- package/dist/useCases/updateStaffUser.js +47 -0
- package/dist/useCases/updateStaffUser.js.map +1 -0
- package/dist/useCases/voidBill.d.ts +36 -0
- package/dist/useCases/voidBill.js +47 -0
- package/dist/useCases/voidBill.js.map +1 -0
- package/dist/useCases/writeOffCostEntry.d.ts +39 -0
- package/dist/useCases/writeOffCostEntry.js +47 -0
- package/dist/useCases/writeOffCostEntry.js.map +1 -0
- package/dist/validate.d.ts +25 -8
- package/dist/validate.js +9 -4
- package/dist/validate.js.map +1 -1
- package/package.json +6 -6
- package/dist/models/order.d.ts +0 -17
- package/dist/models/order.js +0 -33
- package/dist/models/order.js.map +0 -1
- package/dist/schemas/order.d.ts +0 -186
- package/dist/schemas/order.js +0 -157
- package/dist/schemas/order.js.map +0 -1
package/dist/schemas/ticket.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ export declare const ticketSchema: {
|
|
|
49
49
|
};
|
|
50
50
|
readonly discriminator: {
|
|
51
51
|
readonly type: "string";
|
|
52
|
-
readonly enum: readonly ["message", "opened", "assigned", "rated", "scheduled", "collaboratorAdded", "collaboratorRemoved", "statusChanged", "priorityChanged", "scheduleDateChanged", "locationChanged", "nudged"];
|
|
52
|
+
readonly enum: readonly ["message", "opened", "assigned", "rated", "scheduled", "collaboratorAdded", "collaboratorRemoved", "statusChanged", "priorityChanged", "scheduleDateChanged", "locationChanged", "nudged", "approvalRequested", "approvalApproved", "approvalDenied", "workScheduled", "workRescheduled", "workCanceled", "costRecorded", "costPriceChanged"];
|
|
53
53
|
readonly default: "message";
|
|
54
54
|
readonly description: "The discriminator of the message.";
|
|
55
55
|
};
|
|
@@ -579,7 +579,373 @@ export declare const ticketSchema: {
|
|
|
579
579
|
readonly type: "integer";
|
|
580
580
|
readonly minimum: 0;
|
|
581
581
|
readonly default: 0;
|
|
582
|
-
readonly description:
|
|
582
|
+
readonly description: 'Server-derived count of transitions back to "open" that followed a solve/close. reopenCount > 0 answers "was this ticket ever reopened?" in O(1); maintained at the repository layer across every status-write path. Never set by clients.';
|
|
583
|
+
};
|
|
584
|
+
readonly work: {
|
|
585
|
+
readonly type: "array";
|
|
586
|
+
readonly default: readonly [];
|
|
587
|
+
readonly description: "Work items scheduled on the ticket: who is coming, when, and what for. Many per ticket, including repeat visits by the same performer. Carries no lifecycle status — the conversation log is the history and a past-dated entry is implicitly done. Never redacted; vendor identity is already public in assignment.";
|
|
588
|
+
readonly items: {
|
|
589
|
+
readonly type: "object";
|
|
590
|
+
readonly additionalProperties: false;
|
|
591
|
+
readonly required: readonly ["id", "performer", "date"];
|
|
592
|
+
readonly properties: {
|
|
593
|
+
readonly id: {
|
|
594
|
+
readonly type: "string";
|
|
595
|
+
readonly description: "The ID of the work item.";
|
|
596
|
+
};
|
|
597
|
+
readonly performer: {
|
|
598
|
+
readonly type: "object";
|
|
599
|
+
readonly additionalProperties: false;
|
|
600
|
+
readonly required: readonly ["id", "discriminator", "name"];
|
|
601
|
+
readonly description: string;
|
|
602
|
+
readonly properties: {
|
|
603
|
+
readonly id: {
|
|
604
|
+
readonly type: "string";
|
|
605
|
+
readonly description: "The ID of the performer.";
|
|
606
|
+
};
|
|
607
|
+
readonly discriminator: {
|
|
608
|
+
readonly type: "string";
|
|
609
|
+
readonly enum: readonly ["vendor", "user"];
|
|
610
|
+
readonly description: "The discriminator of the performer.";
|
|
611
|
+
};
|
|
612
|
+
readonly name: {
|
|
613
|
+
readonly type: "string";
|
|
614
|
+
readonly description: "The performer's name, denormalized at schedule time for rendering.";
|
|
615
|
+
};
|
|
616
|
+
};
|
|
617
|
+
};
|
|
618
|
+
readonly date: {
|
|
619
|
+
readonly type: "string";
|
|
620
|
+
readonly pattern: "^\\d{4}-\\d{2}-\\d{2}$";
|
|
621
|
+
readonly description: "The calendar date of the visit as YYYY-MM-DD, read in the property's timezone.";
|
|
622
|
+
};
|
|
623
|
+
readonly time: {
|
|
624
|
+
readonly type: readonly ["string", "null"];
|
|
625
|
+
readonly pattern: "^([01]\\d|2[0-3]):[0-5]\\d$";
|
|
626
|
+
readonly default: null;
|
|
627
|
+
readonly description: string;
|
|
628
|
+
};
|
|
629
|
+
readonly description: {
|
|
630
|
+
readonly type: readonly ["string", "null"];
|
|
631
|
+
readonly default: null;
|
|
632
|
+
readonly description: string;
|
|
633
|
+
};
|
|
634
|
+
readonly scheduledBy: {
|
|
635
|
+
readonly type: readonly ["string", "null"];
|
|
636
|
+
readonly default: null;
|
|
637
|
+
readonly description: "The ID of the user whose write created this work item. Null when the write was not user-attributable.";
|
|
638
|
+
};
|
|
639
|
+
readonly scheduledAt: {
|
|
640
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
641
|
+
readonly description: "When the work item was created.";
|
|
642
|
+
};
|
|
643
|
+
readonly noCharge: {
|
|
644
|
+
readonly type: readonly ["object", "null"];
|
|
645
|
+
readonly additionalProperties: false;
|
|
646
|
+
readonly required: readonly ["setBy", "setAt"];
|
|
647
|
+
readonly default: null;
|
|
648
|
+
readonly description: string;
|
|
649
|
+
readonly properties: {
|
|
650
|
+
readonly setBy: {
|
|
651
|
+
readonly type: readonly ["string", "null"];
|
|
652
|
+
readonly default: null;
|
|
653
|
+
readonly description: string;
|
|
654
|
+
};
|
|
655
|
+
readonly setAt: {
|
|
656
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
657
|
+
readonly description: "When the disposition was set.";
|
|
658
|
+
};
|
|
659
|
+
};
|
|
660
|
+
};
|
|
661
|
+
};
|
|
662
|
+
};
|
|
663
|
+
};
|
|
664
|
+
readonly costs: {
|
|
665
|
+
readonly type: "array";
|
|
666
|
+
readonly default: readonly [];
|
|
667
|
+
readonly description: "Cost line items recorded on the ticket. Each entry stores the customer price and the vendor cost side by side and keeps them independent: the price is seeded from the estimate and markup at recording, and nothing about the vendor side moves it afterwards. Every entry arrives as either the full vendor shape or the redacted price-only shape depending on whether the viewer may see the cost split.";
|
|
668
|
+
readonly items: {
|
|
669
|
+
readonly oneOf: readonly [{
|
|
670
|
+
readonly type: "object";
|
|
671
|
+
readonly additionalProperties: false;
|
|
672
|
+
readonly required: readonly ["id", "description", "currency", "price", "estimate", "markup"];
|
|
673
|
+
readonly properties: {
|
|
674
|
+
readonly id: {
|
|
675
|
+
readonly type: "string";
|
|
676
|
+
readonly description: "The ID of the cost entry.";
|
|
677
|
+
};
|
|
678
|
+
readonly description: {
|
|
679
|
+
readonly type: "string";
|
|
680
|
+
readonly description: "What the cost covers.";
|
|
681
|
+
};
|
|
682
|
+
readonly currency: {
|
|
683
|
+
readonly type: "string";
|
|
684
|
+
readonly default: "USD";
|
|
685
|
+
readonly description: "ISO 4217 currency code of the entry's amounts.";
|
|
686
|
+
};
|
|
687
|
+
readonly price: {
|
|
688
|
+
readonly type: "object";
|
|
689
|
+
readonly additionalProperties: false;
|
|
690
|
+
readonly required: readonly ["amount", "recordedBy", "recordedAt"];
|
|
691
|
+
readonly description: string;
|
|
692
|
+
readonly properties: {
|
|
693
|
+
readonly amount: {
|
|
694
|
+
readonly type: "integer";
|
|
695
|
+
readonly minimum: 0;
|
|
696
|
+
readonly description: "Customer price in integer cents.";
|
|
697
|
+
};
|
|
698
|
+
readonly recordedBy: {
|
|
699
|
+
readonly type: "string";
|
|
700
|
+
readonly description: "The ID of the user who recorded the amount.";
|
|
701
|
+
};
|
|
702
|
+
readonly recordedAt: {
|
|
703
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
704
|
+
readonly description: "When the amount was recorded.";
|
|
705
|
+
};
|
|
706
|
+
};
|
|
707
|
+
};
|
|
708
|
+
readonly estimate: {
|
|
709
|
+
readonly type: "object";
|
|
710
|
+
readonly additionalProperties: false;
|
|
711
|
+
readonly required: readonly ["amount", "recordedBy", "recordedAt"];
|
|
712
|
+
readonly description: "The vendor cost estimate phase of the entry.";
|
|
713
|
+
readonly properties: {
|
|
714
|
+
readonly amount: {
|
|
715
|
+
readonly type: "integer";
|
|
716
|
+
readonly minimum: 0;
|
|
717
|
+
readonly description: "Vendor cost estimate in integer cents.";
|
|
718
|
+
};
|
|
719
|
+
readonly recordedBy: {
|
|
720
|
+
readonly type: "string";
|
|
721
|
+
readonly description: "The ID of the user who recorded the amount.";
|
|
722
|
+
};
|
|
723
|
+
readonly recordedAt: {
|
|
724
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
725
|
+
readonly description: "When the amount was recorded.";
|
|
726
|
+
};
|
|
727
|
+
};
|
|
728
|
+
};
|
|
729
|
+
readonly actual: {
|
|
730
|
+
readonly type: "object";
|
|
731
|
+
readonly additionalProperties: false;
|
|
732
|
+
readonly required: readonly ["amount", "recordedBy", "recordedAt"];
|
|
733
|
+
readonly description: "The actual vendor cost phase of the entry, recorded after the work.";
|
|
734
|
+
readonly properties: {
|
|
735
|
+
readonly amount: {
|
|
736
|
+
readonly type: "integer";
|
|
737
|
+
readonly minimum: 0;
|
|
738
|
+
readonly description: "Actual vendor cost in integer cents.";
|
|
739
|
+
};
|
|
740
|
+
readonly recordedBy: {
|
|
741
|
+
readonly type: "string";
|
|
742
|
+
readonly description: "The ID of the user who recorded the amount.";
|
|
743
|
+
};
|
|
744
|
+
readonly recordedAt: {
|
|
745
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
746
|
+
readonly description: "When the amount was recorded.";
|
|
747
|
+
};
|
|
748
|
+
};
|
|
749
|
+
};
|
|
750
|
+
readonly markup: {
|
|
751
|
+
readonly type: "object";
|
|
752
|
+
readonly additionalProperties: false;
|
|
753
|
+
readonly required: readonly ["percent"];
|
|
754
|
+
readonly properties: {
|
|
755
|
+
readonly percent: {
|
|
756
|
+
readonly type: "number";
|
|
757
|
+
readonly minimum: 0;
|
|
758
|
+
readonly description: string;
|
|
759
|
+
};
|
|
760
|
+
readonly custom: {
|
|
761
|
+
readonly type: "boolean";
|
|
762
|
+
readonly default: false;
|
|
763
|
+
readonly description: "Whether the percent was manually overridden rather than keyed from the configured markup tiers. Custom percents are never re-keyed on estimate edits.";
|
|
764
|
+
};
|
|
765
|
+
};
|
|
766
|
+
};
|
|
767
|
+
readonly vendorInvoices: {
|
|
768
|
+
readonly type: "array";
|
|
769
|
+
readonly items: {
|
|
770
|
+
readonly $ref: "mediaFile.json";
|
|
771
|
+
};
|
|
772
|
+
readonly default: readonly [];
|
|
773
|
+
readonly description: string;
|
|
774
|
+
};
|
|
775
|
+
readonly vendorInvoiceNumber: {
|
|
776
|
+
readonly type: readonly ["string", "null"];
|
|
777
|
+
readonly default: null;
|
|
778
|
+
readonly description: string;
|
|
779
|
+
};
|
|
780
|
+
readonly vendorId: {
|
|
781
|
+
readonly type: readonly ["string", "null"];
|
|
782
|
+
readonly default: null;
|
|
783
|
+
readonly description: string;
|
|
784
|
+
};
|
|
785
|
+
readonly workItemId: {
|
|
786
|
+
readonly type: readonly ["string", "null"];
|
|
787
|
+
readonly default: null;
|
|
788
|
+
readonly description: string;
|
|
789
|
+
};
|
|
790
|
+
readonly categoryId: {
|
|
791
|
+
readonly type: readonly ["string", "null"];
|
|
792
|
+
readonly default: null;
|
|
793
|
+
readonly description: string;
|
|
794
|
+
};
|
|
795
|
+
readonly billId: {
|
|
796
|
+
readonly type: readonly ["string", "null"];
|
|
797
|
+
readonly default: null;
|
|
798
|
+
readonly description: string;
|
|
799
|
+
};
|
|
800
|
+
readonly writtenOff: {
|
|
801
|
+
readonly type: "boolean";
|
|
802
|
+
readonly default: false;
|
|
803
|
+
readonly description: string;
|
|
804
|
+
};
|
|
805
|
+
readonly billingReview: {
|
|
806
|
+
readonly type: "array";
|
|
807
|
+
readonly default: readonly [];
|
|
808
|
+
readonly description: string;
|
|
809
|
+
readonly items: {
|
|
810
|
+
readonly type: "object";
|
|
811
|
+
readonly additionalProperties: false;
|
|
812
|
+
readonly required: readonly ["id", "action", "performedAt"];
|
|
813
|
+
readonly properties: {
|
|
814
|
+
readonly id: {
|
|
815
|
+
readonly type: "string";
|
|
816
|
+
readonly description: "The ID of the billing review entry.";
|
|
817
|
+
};
|
|
818
|
+
readonly action: {
|
|
819
|
+
readonly type: "string";
|
|
820
|
+
readonly enum: readonly ["writtenOff", "reinstated", "divergenceAcknowledged"];
|
|
821
|
+
};
|
|
822
|
+
readonly performedBy: {
|
|
823
|
+
readonly type: readonly ["string", "null"];
|
|
824
|
+
readonly default: null;
|
|
825
|
+
readonly description: string;
|
|
826
|
+
};
|
|
827
|
+
readonly performedAt: {
|
|
828
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
829
|
+
readonly description: "When the entry was appended.";
|
|
830
|
+
};
|
|
831
|
+
readonly note: {
|
|
832
|
+
readonly type: readonly ["string", "null"];
|
|
833
|
+
readonly default: null;
|
|
834
|
+
readonly description: "Free-text rationale for the action.";
|
|
835
|
+
};
|
|
836
|
+
readonly billedAmount: {
|
|
837
|
+
readonly type: "integer";
|
|
838
|
+
readonly minimum: 0;
|
|
839
|
+
readonly description: string;
|
|
840
|
+
};
|
|
841
|
+
readonly priceAmount: {
|
|
842
|
+
readonly type: "integer";
|
|
843
|
+
readonly minimum: 0;
|
|
844
|
+
readonly description: string;
|
|
845
|
+
};
|
|
846
|
+
};
|
|
847
|
+
};
|
|
848
|
+
};
|
|
849
|
+
};
|
|
850
|
+
}, {
|
|
851
|
+
readonly type: "object";
|
|
852
|
+
readonly additionalProperties: false;
|
|
853
|
+
readonly required: readonly ["id", "description", "currency", "price"];
|
|
854
|
+
readonly properties: {
|
|
855
|
+
readonly id: {
|
|
856
|
+
readonly type: "string";
|
|
857
|
+
readonly description: "The ID of the cost entry.";
|
|
858
|
+
};
|
|
859
|
+
readonly description: {
|
|
860
|
+
readonly type: "string";
|
|
861
|
+
readonly description: "What the cost covers.";
|
|
862
|
+
};
|
|
863
|
+
readonly currency: {
|
|
864
|
+
readonly type: "string";
|
|
865
|
+
readonly default: "USD";
|
|
866
|
+
readonly description: "ISO 4217 currency code of the entry's amounts.";
|
|
867
|
+
};
|
|
868
|
+
readonly price: {
|
|
869
|
+
readonly type: "integer";
|
|
870
|
+
readonly minimum: 0;
|
|
871
|
+
readonly description: string;
|
|
872
|
+
};
|
|
873
|
+
};
|
|
874
|
+
}];
|
|
875
|
+
};
|
|
876
|
+
};
|
|
877
|
+
readonly approvals: {
|
|
878
|
+
readonly type: "array";
|
|
879
|
+
readonly default: readonly [];
|
|
880
|
+
readonly description: "Approval request history for the ticket. At most one pending record at a time; records are immutable once decided (enforced by use cases).";
|
|
881
|
+
readonly items: {
|
|
882
|
+
readonly type: "object";
|
|
883
|
+
readonly additionalProperties: false;
|
|
884
|
+
readonly required: readonly ["id", "amount", "approverUserIds", "status", "requestedAt"];
|
|
885
|
+
readonly properties: {
|
|
886
|
+
readonly id: {
|
|
887
|
+
readonly type: "string";
|
|
888
|
+
readonly description: "The ID of the approval record.";
|
|
889
|
+
};
|
|
890
|
+
readonly amount: {
|
|
891
|
+
readonly type: "integer";
|
|
892
|
+
readonly minimum: 0;
|
|
893
|
+
readonly description: "The ticket's customer price total in integer cents, frozen at request time.";
|
|
894
|
+
};
|
|
895
|
+
readonly approverUserIds: {
|
|
896
|
+
readonly type: "array";
|
|
897
|
+
readonly minItems: 1;
|
|
898
|
+
readonly items: {
|
|
899
|
+
readonly type: "string";
|
|
900
|
+
};
|
|
901
|
+
readonly description: "The effective approver set for this request, frozen at request time.";
|
|
902
|
+
};
|
|
903
|
+
readonly status: {
|
|
904
|
+
readonly type: "string";
|
|
905
|
+
readonly enum: readonly ["pending", "approved", "denied"];
|
|
906
|
+
readonly default: "pending";
|
|
907
|
+
};
|
|
908
|
+
readonly requestedAt: {
|
|
909
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
910
|
+
readonly description: "When the approval was requested.";
|
|
911
|
+
};
|
|
912
|
+
readonly requestedBy: {
|
|
913
|
+
readonly type: readonly ["string", "null"];
|
|
914
|
+
readonly default: null;
|
|
915
|
+
readonly description: "The ID of the user whose write created this request, frozen at request time. Null when the write was not user-attributable.";
|
|
916
|
+
};
|
|
917
|
+
readonly decidedBy: {
|
|
918
|
+
readonly type: readonly ["string", "null"];
|
|
919
|
+
readonly default: null;
|
|
920
|
+
readonly description: "The ID of the approver who decided the request.";
|
|
921
|
+
};
|
|
922
|
+
readonly decidedAt: {
|
|
923
|
+
readonly anyOf: readonly [{
|
|
924
|
+
readonly $ref: "definitions.json#/definitions/date";
|
|
925
|
+
}, {
|
|
926
|
+
readonly type: "null";
|
|
927
|
+
}];
|
|
928
|
+
readonly default: null;
|
|
929
|
+
readonly description: "When the request was decided.";
|
|
930
|
+
};
|
|
931
|
+
readonly comment: {
|
|
932
|
+
readonly type: readonly ["string", "null"];
|
|
933
|
+
readonly default: null;
|
|
934
|
+
readonly description: "The decider's comment. Required on deny, optional on approve (enforced by use cases).";
|
|
935
|
+
};
|
|
936
|
+
};
|
|
937
|
+
};
|
|
938
|
+
};
|
|
939
|
+
readonly dneAmount: {
|
|
940
|
+
readonly type: readonly ["integer", "null"];
|
|
941
|
+
readonly minimum: 0;
|
|
942
|
+
readonly description: "The effective do-not-exceed amount in integer cents the approval gate compares against, resolved per read from the organization and property Concierge settings. Never stored on the document and never set by clients; absent on payloads where it could not be resolved. Viewer-independent: the DNE is the customer's own contract term, so org-side viewers see it.";
|
|
943
|
+
};
|
|
944
|
+
readonly approvalState: {
|
|
945
|
+
readonly type: "string";
|
|
946
|
+
readonly enum: readonly ["clear", "awaitingApproval", "denied"];
|
|
947
|
+
readonly default: "clear";
|
|
948
|
+
readonly description: "Server-maintained denormalization of the approval gate, updated on every cost or approval write (reopenCount pattern) so queue filters get O(1) access. Never set by clients.";
|
|
583
949
|
};
|
|
584
950
|
readonly tags: {
|
|
585
951
|
readonly type: "array";
|
|
@@ -620,7 +986,7 @@ export declare const ticketSchema: {
|
|
|
620
986
|
};
|
|
621
987
|
};
|
|
622
988
|
};
|
|
623
|
-
|
|
989
|
+
type TicketSchemaBase = FromSchema<typeof ticketSchema, {
|
|
624
990
|
references: [typeof defs, typeof mediaFileSchema];
|
|
625
991
|
deserialize: [
|
|
626
992
|
{
|
|
@@ -631,3 +997,15 @@ export type TicketSchema = FromSchema<typeof ticketSchema, {
|
|
|
631
997
|
}
|
|
632
998
|
];
|
|
633
999
|
}>;
|
|
1000
|
+
/** A stored cost entry: the full shape, with `price`, `estimate` and `markup`. */
|
|
1001
|
+
export type TicketCostEntry = Extract<NonNullable<TicketSchemaBase["costs"]>[number], {
|
|
1002
|
+
estimate: unknown;
|
|
1003
|
+
}>;
|
|
1004
|
+
/** One scheduled performance of work on a ticket. */
|
|
1005
|
+
export type TicketWorkItem = NonNullable<TicketSchemaBase["work"]>[number];
|
|
1006
|
+
/** One append-only billing review entry on a stored cost entry. */
|
|
1007
|
+
export type TicketCostBillingReviewEntry = NonNullable<TicketCostEntry["billingReview"]>[number];
|
|
1008
|
+
export type TicketSchema = Omit<TicketSchemaBase, "costs"> & {
|
|
1009
|
+
costs?: TicketCostEntry[];
|
|
1010
|
+
};
|
|
1011
|
+
export {};
|