@fayz-ai/plugin-agenda 0.1.3
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/README.md +51 -0
- package/dist/AgendaContext.d.ts +13 -0
- package/dist/AgendaContext.d.ts.map +1 -0
- package/dist/AgendaPage.d.ts +11 -0
- package/dist/AgendaPage.d.ts.map +1 -0
- package/dist/bridges/create-financial-bridge.d.ts +19 -0
- package/dist/bridges/create-financial-bridge.d.ts.map +1 -0
- package/dist/calendar-styles.d.ts +8 -0
- package/dist/calendar-styles.d.ts.map +1 -0
- package/dist/chunk-3LJKZQK4.js +12 -0
- package/dist/chunk-3LJKZQK4.js.map +1 -0
- package/dist/chunk-SYDBDI3Q.cjs +15 -0
- package/dist/chunk-SYDBDI3Q.cjs.map +1 -0
- package/dist/components/AgendaGeneralSettings.d.ts +3 -0
- package/dist/components/AgendaGeneralSettings.d.ts.map +1 -0
- package/dist/components/AppointmentModal.d.ts +16 -0
- package/dist/components/AppointmentModal.d.ts.map +1 -0
- package/dist/components/AppointmentPopover.d.ts +14 -0
- package/dist/components/AppointmentPopover.d.ts.map +1 -0
- package/dist/components/BookingPaymentPanel.d.ts +18 -0
- package/dist/components/BookingPaymentPanel.d.ts.map +1 -0
- package/dist/components/CalendarSidebar.d.ts +3 -0
- package/dist/components/CalendarSidebar.d.ts.map +1 -0
- package/dist/components/CalendarToolbar.d.ts +13 -0
- package/dist/components/CalendarToolbar.d.ts.map +1 -0
- package/dist/components/EventContextMenu.d.ts +14 -0
- package/dist/components/EventContextMenu.d.ts.map +1 -0
- package/dist/components/FloatingPanel.d.ts +27 -0
- package/dist/components/FloatingPanel.d.ts.map +1 -0
- package/dist/components/MiniCalendar.d.ts +9 -0
- package/dist/components/MiniCalendar.d.ts.map +1 -0
- package/dist/components/PaymentStatusBadge.d.ts +13 -0
- package/dist/components/PaymentStatusBadge.d.ts.map +1 -0
- package/dist/components/SearchCombobox.d.ts +38 -0
- package/dist/components/SearchCombobox.d.ts.map +1 -0
- package/dist/components/StatusBadge.d.ts +5 -0
- package/dist/components/StatusBadge.d.ts.map +1 -0
- package/dist/config.d.ts +151 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/data/index.d.ts +4 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/mock.d.ts +3 -0
- package/dist/data/mock.d.ts.map +1 -0
- package/dist/data/supabase.d.ts +3 -0
- package/dist/data/supabase.d.ts.map +1 -0
- package/dist/data/types.d.ts +26 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/financial-bridge.d.ts +92 -0
- package/dist/financial-bridge.d.ts.map +1 -0
- package/dist/hooks/useAgendaSettings.d.ts +7 -0
- package/dist/hooks/useAgendaSettings.d.ts.map +1 -0
- package/dist/index.cjs +5135 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5120 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/tenant.d.ts +3 -0
- package/dist/lib/tenant.d.ts.map +1 -0
- package/dist/locales/en.d.ts +2 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/index.d.ts +2 -0
- package/dist/locales/index.d.ts.map +1 -0
- package/dist/locales/pt-BR.d.ts +2 -0
- package/dist/locales/pt-BR.d.ts.map +1 -0
- package/dist/registries.d.ts +3 -0
- package/dist/registries.d.ts.map +1 -0
- package/dist/store.d.ts +66 -0
- package/dist/store.d.ts.map +1 -0
- package/dist/tenant-222EHYUC.cjs +16 -0
- package/dist/tenant-222EHYUC.cjs.map +1 -0
- package/dist/tenant-LAUWVUYB.js +3 -0
- package/dist/tenant-LAUWVUYB.js.map +1 -0
- package/dist/types.d.ts +202 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/views/CalendarView.d.ts +3 -0
- package/dist/views/CalendarView.d.ts.map +1 -0
- package/dist/views/ConfirmationsView.d.ts +3 -0
- package/dist/views/ConfirmationsView.d.ts.map +1 -0
- package/package.json +63 -0
- package/src/AgendaContext.tsx +11 -0
- package/src/AgendaPage.tsx +33 -0
- package/src/bridges/create-financial-bridge.ts +298 -0
- package/src/calendar-styles.css +245 -0
- package/src/calendar-styles.ts +285 -0
- package/src/components/AgendaGeneralSettings.tsx +64 -0
- package/src/components/AppointmentModal.tsx +1031 -0
- package/src/components/AppointmentPopover.tsx +221 -0
- package/src/components/BookingPaymentPanel.tsx +394 -0
- package/src/components/CalendarSidebar.tsx +119 -0
- package/src/components/CalendarToolbar.tsx +83 -0
- package/src/components/EventContextMenu.tsx +122 -0
- package/src/components/FloatingPanel.tsx +123 -0
- package/src/components/MiniCalendar.tsx +120 -0
- package/src/components/PaymentStatusBadge.tsx +62 -0
- package/src/components/SearchCombobox.tsx +216 -0
- package/src/components/StatusBadge.tsx +23 -0
- package/src/config.ts +269 -0
- package/src/data/index.ts +3 -0
- package/src/data/mock.ts +324 -0
- package/src/data/supabase.ts +570 -0
- package/src/data/types.ts +37 -0
- package/src/financial-bridge.ts +96 -0
- package/src/hooks/useAgendaSettings.ts +17 -0
- package/src/index.ts +180 -0
- package/src/lib/tenant.ts +3 -0
- package/src/locales/en.ts +207 -0
- package/src/locales/index.ts +7 -0
- package/src/locales/pt-BR.ts +207 -0
- package/src/registries.ts +36 -0
- package/src/store.ts +304 -0
- package/src/types.ts +265 -0
- package/src/views/CalendarView.tsx +904 -0
- package/src/views/ConfirmationsView.tsx +155 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/** Payment status for a booking's linked invoice */
|
|
2
|
+
export type BookingPaymentStatus = 'none' | 'pending' | 'partial' | 'paid' | 'overdue' | 'cancelled';
|
|
3
|
+
/** Compact payment summary for calendar enrichment */
|
|
4
|
+
export interface BookingPaymentSummary {
|
|
5
|
+
invoiceId: string;
|
|
6
|
+
referenceNumber?: string;
|
|
7
|
+
status: BookingPaymentStatus;
|
|
8
|
+
totalAmount: number;
|
|
9
|
+
paidAmount: number;
|
|
10
|
+
}
|
|
11
|
+
/** Detailed payment info with installment breakdown */
|
|
12
|
+
export interface BookingPaymentDetail extends BookingPaymentSummary {
|
|
13
|
+
movements: Array<{
|
|
14
|
+
id: string;
|
|
15
|
+
amount: number;
|
|
16
|
+
paidAmount: number;
|
|
17
|
+
status: string;
|
|
18
|
+
dueDate: string;
|
|
19
|
+
installmentNumber?: number;
|
|
20
|
+
paymentDate?: string;
|
|
21
|
+
paymentMethodTypeName?: string;
|
|
22
|
+
cardBrand?: string;
|
|
23
|
+
cardInstallments?: number;
|
|
24
|
+
}>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Bridge interface for agenda → financial plugin integration.
|
|
28
|
+
* Injected via `AgendaPluginOptions.financialBridge`.
|
|
29
|
+
* Follows the same DI pattern as `EntityLookup`.
|
|
30
|
+
*/
|
|
31
|
+
export interface AgendaFinancialBridge {
|
|
32
|
+
/** Batch-resolve payment status for multiple order IDs (for calendar enrichment) */
|
|
33
|
+
resolvePaymentStatuses(orderIds: string[]): Promise<Map<string, BookingPaymentSummary>>;
|
|
34
|
+
/** Get detailed payment info for a single booking's order */
|
|
35
|
+
getPaymentDetail(orderId: string): Promise<BookingPaymentDetail | null>;
|
|
36
|
+
/** Create a receivable invoice from the booking's service_order. Returns invoice ID */
|
|
37
|
+
createInvoiceFromOrder(orderId: string, options?: {
|
|
38
|
+
installments?: number;
|
|
39
|
+
dueDate?: string;
|
|
40
|
+
paymentMethodTypeId?: string;
|
|
41
|
+
}): Promise<string>;
|
|
42
|
+
/**
|
|
43
|
+
* Accrue the assigned professional's commission for a booking's order as a
|
|
44
|
+
* payable `financial_movements` row (direction='debit', movement_kind='commission').
|
|
45
|
+
* Commission = order.total × professional commission_rate%. Resolves the rate
|
|
46
|
+
* from the `v_staff` bridge view via the order's `assignee_id`.
|
|
47
|
+
*
|
|
48
|
+
* Idempotent per order: returns the existing commission movement id if one was
|
|
49
|
+
* already accrued. Returns null when there is no professional, no configured
|
|
50
|
+
* rate, a zero base, or Supabase is unavailable (nothing to accrue).
|
|
51
|
+
*/
|
|
52
|
+
createCommissionMovement?(orderId: string, options?: {
|
|
53
|
+
dueDate?: string;
|
|
54
|
+
}): Promise<string | null>;
|
|
55
|
+
/** Record a payment against a movement (installment) */
|
|
56
|
+
payMovement(input: {
|
|
57
|
+
movementId: string;
|
|
58
|
+
amount: number;
|
|
59
|
+
paymentDate: string;
|
|
60
|
+
paymentMethodTypeId?: string;
|
|
61
|
+
paymentMethodId?: string;
|
|
62
|
+
bankAccountId?: string;
|
|
63
|
+
cardBrand?: string;
|
|
64
|
+
cardInstallments?: number;
|
|
65
|
+
}): Promise<void>;
|
|
66
|
+
/** One-step POS checkout: create invoice + pay in full. Returns paid detail. */
|
|
67
|
+
checkout(orderId: string, input: {
|
|
68
|
+
paymentMethodTypeId: string;
|
|
69
|
+
paymentMethodId?: string;
|
|
70
|
+
bankAccountId?: string;
|
|
71
|
+
cardBrand?: string;
|
|
72
|
+
cardInstallments?: number;
|
|
73
|
+
}): Promise<BookingPaymentDetail>;
|
|
74
|
+
/** Get payment methods filtered by type */
|
|
75
|
+
getPaymentMethods?(paymentMethodTypeId: string): Promise<Array<{
|
|
76
|
+
id: string;
|
|
77
|
+
name: string;
|
|
78
|
+
}>>;
|
|
79
|
+
/** Get payment method types for the payment UI */
|
|
80
|
+
getPaymentMethodTypes(): Promise<Array<{
|
|
81
|
+
id: string;
|
|
82
|
+
name: string;
|
|
83
|
+
transactionType?: string;
|
|
84
|
+
}>>;
|
|
85
|
+
/** Get bank accounts for payment destination */
|
|
86
|
+
getBankAccounts(): Promise<Array<{
|
|
87
|
+
id: string;
|
|
88
|
+
name: string;
|
|
89
|
+
accountType: string;
|
|
90
|
+
}>>;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=financial-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"financial-bridge.d.ts","sourceRoot":"","sources":["../src/financial-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgendaSettings.d.ts","sourceRoot":"","sources":["../../src/hooks/useAgendaSettings.ts"],"names":[],"mappings":"AAOA,wBAAgB,iBAAiB;;;sBAMX,MAAM;oBACR,MAAM;EAEzB"}
|