@instockng/api-client 1.0.19 → 1.0.21
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/fetchers/orders.d.ts +194 -0
- package/dist/fetchers/orders.js +20 -0
- package/dist/hooks/public/orders.d.ts +201 -1
- package/dist/hooks/public/orders.js +23 -1
- package/dist/rpc-client.d.ts +250 -14
- package/dist/utils/query-keys.d.ts +1 -0
- package/dist/utils/query-keys.js +3 -0
- package/package.json +1 -1
|
@@ -548,3 +548,197 @@ export declare function confirmOrder(orderId: string, token: string): Promise<{
|
|
|
548
548
|
prospectReason: import("@prisma/client").$Enums.ProspectReason | null;
|
|
549
549
|
userActionToken: string;
|
|
550
550
|
}>;
|
|
551
|
+
/**
|
|
552
|
+
* Fetch order recommendations for post-purchase upsell
|
|
553
|
+
*
|
|
554
|
+
* @param orderId - Order UUID
|
|
555
|
+
* @param token - User action token
|
|
556
|
+
* @param limit - Maximum number of recommendations
|
|
557
|
+
* @returns Array of recommended products
|
|
558
|
+
*/
|
|
559
|
+
export declare function fetchOrderRecommendations(orderId: string, token: string, limit?: number): Promise<{
|
|
560
|
+
brand: {
|
|
561
|
+
createdAt: string;
|
|
562
|
+
updatedAt: string;
|
|
563
|
+
deletedAt: string;
|
|
564
|
+
id: string;
|
|
565
|
+
name: string;
|
|
566
|
+
slug: string;
|
|
567
|
+
logoUrl: string | null;
|
|
568
|
+
siteUrl: string;
|
|
569
|
+
domain: string;
|
|
570
|
+
metaPixelId: string | null;
|
|
571
|
+
tiktokPixelId: string | null;
|
|
572
|
+
paystackPublicKey: string | null;
|
|
573
|
+
paystackSecretKey: string | null;
|
|
574
|
+
};
|
|
575
|
+
variants: {
|
|
576
|
+
createdAt: string;
|
|
577
|
+
updatedAt: string;
|
|
578
|
+
price: number;
|
|
579
|
+
deletedAt: string;
|
|
580
|
+
id: string;
|
|
581
|
+
name: string | null;
|
|
582
|
+
isActive: boolean;
|
|
583
|
+
thumbnailUrl: string | null;
|
|
584
|
+
productId: string;
|
|
585
|
+
sku: string;
|
|
586
|
+
trackInventory: boolean;
|
|
587
|
+
lowStockThreshold: number | null;
|
|
588
|
+
}[];
|
|
589
|
+
id: string;
|
|
590
|
+
name: string;
|
|
591
|
+
slug: string;
|
|
592
|
+
createdAt: string;
|
|
593
|
+
updatedAt: string;
|
|
594
|
+
deletedAt: string;
|
|
595
|
+
brandId: string;
|
|
596
|
+
isActive: boolean;
|
|
597
|
+
description: string | null;
|
|
598
|
+
thumbnailUrl: string | null;
|
|
599
|
+
quantityDiscounts: string | number | boolean | {
|
|
600
|
+
[x: string]: string | number | boolean | /*elided*/ any | {
|
|
601
|
+
[x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
|
|
602
|
+
length: number;
|
|
603
|
+
toString: never;
|
|
604
|
+
toLocaleString: never;
|
|
605
|
+
pop: never;
|
|
606
|
+
push: never;
|
|
607
|
+
concat: never;
|
|
608
|
+
join: never;
|
|
609
|
+
reverse: never;
|
|
610
|
+
shift: never;
|
|
611
|
+
slice: never;
|
|
612
|
+
sort: never;
|
|
613
|
+
splice: never;
|
|
614
|
+
unshift: never;
|
|
615
|
+
indexOf: never;
|
|
616
|
+
lastIndexOf: never;
|
|
617
|
+
every: never;
|
|
618
|
+
some: never;
|
|
619
|
+
forEach: never;
|
|
620
|
+
map: never;
|
|
621
|
+
filter: never;
|
|
622
|
+
reduce: never;
|
|
623
|
+
reduceRight: never;
|
|
624
|
+
find: never;
|
|
625
|
+
findIndex: never;
|
|
626
|
+
fill: never;
|
|
627
|
+
copyWithin: never;
|
|
628
|
+
entries: never;
|
|
629
|
+
keys: never;
|
|
630
|
+
values: never;
|
|
631
|
+
includes: never;
|
|
632
|
+
flatMap: never;
|
|
633
|
+
flat: never;
|
|
634
|
+
[Symbol.iterator]: never;
|
|
635
|
+
readonly [Symbol.unscopables]: {
|
|
636
|
+
[x: number]: boolean;
|
|
637
|
+
length?: boolean;
|
|
638
|
+
toString?: boolean;
|
|
639
|
+
toLocaleString?: boolean;
|
|
640
|
+
pop?: boolean;
|
|
641
|
+
push?: boolean;
|
|
642
|
+
concat?: boolean;
|
|
643
|
+
join?: boolean;
|
|
644
|
+
reverse?: boolean;
|
|
645
|
+
shift?: boolean;
|
|
646
|
+
slice?: boolean;
|
|
647
|
+
sort?: boolean;
|
|
648
|
+
splice?: boolean;
|
|
649
|
+
unshift?: boolean;
|
|
650
|
+
indexOf?: boolean;
|
|
651
|
+
lastIndexOf?: boolean;
|
|
652
|
+
every?: boolean;
|
|
653
|
+
some?: boolean;
|
|
654
|
+
forEach?: boolean;
|
|
655
|
+
map?: boolean;
|
|
656
|
+
filter?: boolean;
|
|
657
|
+
reduce?: boolean;
|
|
658
|
+
reduceRight?: boolean;
|
|
659
|
+
find?: boolean;
|
|
660
|
+
findIndex?: boolean;
|
|
661
|
+
fill?: boolean;
|
|
662
|
+
copyWithin?: boolean;
|
|
663
|
+
entries?: boolean;
|
|
664
|
+
keys?: boolean;
|
|
665
|
+
values?: boolean;
|
|
666
|
+
includes?: boolean;
|
|
667
|
+
flatMap?: boolean;
|
|
668
|
+
flat?: boolean;
|
|
669
|
+
};
|
|
670
|
+
};
|
|
671
|
+
} | {
|
|
672
|
+
[x: number]: string | number | boolean | {
|
|
673
|
+
[x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
|
|
674
|
+
} | /*elided*/ any;
|
|
675
|
+
length: number;
|
|
676
|
+
toString: never;
|
|
677
|
+
toLocaleString: never;
|
|
678
|
+
pop: never;
|
|
679
|
+
push: never;
|
|
680
|
+
concat: never;
|
|
681
|
+
join: never;
|
|
682
|
+
reverse: never;
|
|
683
|
+
shift: never;
|
|
684
|
+
slice: never;
|
|
685
|
+
sort: never;
|
|
686
|
+
splice: never;
|
|
687
|
+
unshift: never;
|
|
688
|
+
indexOf: never;
|
|
689
|
+
lastIndexOf: never;
|
|
690
|
+
every: never;
|
|
691
|
+
some: never;
|
|
692
|
+
forEach: never;
|
|
693
|
+
map: never;
|
|
694
|
+
filter: never;
|
|
695
|
+
reduce: never;
|
|
696
|
+
reduceRight: never;
|
|
697
|
+
find: never;
|
|
698
|
+
findIndex: never;
|
|
699
|
+
fill: never;
|
|
700
|
+
copyWithin: never;
|
|
701
|
+
entries: never;
|
|
702
|
+
keys: never;
|
|
703
|
+
values: never;
|
|
704
|
+
includes: never;
|
|
705
|
+
flatMap: never;
|
|
706
|
+
flat: never;
|
|
707
|
+
[Symbol.iterator]: never;
|
|
708
|
+
readonly [Symbol.unscopables]: {
|
|
709
|
+
[x: number]: boolean;
|
|
710
|
+
length?: boolean;
|
|
711
|
+
toString?: boolean;
|
|
712
|
+
toLocaleString?: boolean;
|
|
713
|
+
pop?: boolean;
|
|
714
|
+
push?: boolean;
|
|
715
|
+
concat?: boolean;
|
|
716
|
+
join?: boolean;
|
|
717
|
+
reverse?: boolean;
|
|
718
|
+
shift?: boolean;
|
|
719
|
+
slice?: boolean;
|
|
720
|
+
sort?: boolean;
|
|
721
|
+
splice?: boolean;
|
|
722
|
+
unshift?: boolean;
|
|
723
|
+
indexOf?: boolean;
|
|
724
|
+
lastIndexOf?: boolean;
|
|
725
|
+
every?: boolean;
|
|
726
|
+
some?: boolean;
|
|
727
|
+
forEach?: boolean;
|
|
728
|
+
map?: boolean;
|
|
729
|
+
filter?: boolean;
|
|
730
|
+
reduce?: boolean;
|
|
731
|
+
reduceRight?: boolean;
|
|
732
|
+
find?: boolean;
|
|
733
|
+
findIndex?: boolean;
|
|
734
|
+
fill?: boolean;
|
|
735
|
+
copyWithin?: boolean;
|
|
736
|
+
entries?: boolean;
|
|
737
|
+
keys?: boolean;
|
|
738
|
+
values?: boolean;
|
|
739
|
+
includes?: boolean;
|
|
740
|
+
flatMap?: boolean;
|
|
741
|
+
flat?: boolean;
|
|
742
|
+
};
|
|
743
|
+
};
|
|
744
|
+
}[]>;
|
package/dist/fetchers/orders.js
CHANGED
|
@@ -42,3 +42,23 @@ export async function confirmOrder(orderId, token) {
|
|
|
42
42
|
}
|
|
43
43
|
return res.json();
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Fetch order recommendations for post-purchase upsell
|
|
47
|
+
*
|
|
48
|
+
* @param orderId - Order UUID
|
|
49
|
+
* @param token - User action token
|
|
50
|
+
* @param limit - Maximum number of recommendations
|
|
51
|
+
* @returns Array of recommended products
|
|
52
|
+
*/
|
|
53
|
+
export async function fetchOrderRecommendations(orderId, token, limit = 4) {
|
|
54
|
+
const clients = createRpcClients(API_URL);
|
|
55
|
+
const res = await clients.orders[':id'][':token'].recommendations.$get({
|
|
56
|
+
param: { id: orderId, token },
|
|
57
|
+
// @ts-ignore - Hono RPC type inference issue with query parameters
|
|
58
|
+
query: { limit: String(limit) },
|
|
59
|
+
});
|
|
60
|
+
if (!res.ok) {
|
|
61
|
+
throw new Error(`Failed to fetch order recommendations: ${res.statusText}`);
|
|
62
|
+
}
|
|
63
|
+
return res.json();
|
|
64
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* providing end-to-end type safety without code generation.
|
|
6
6
|
*/
|
|
7
7
|
import { UseQueryOptions, UseMutationOptions } from '@tanstack/react-query';
|
|
8
|
-
import { fetchOrder, confirmOrder } from '../../fetchers/orders';
|
|
8
|
+
import { fetchOrder, confirmOrder, fetchOrderRecommendations } from '../../fetchers/orders';
|
|
9
9
|
/**
|
|
10
10
|
* Hook to get order by ID and token using RPC
|
|
11
11
|
*
|
|
@@ -567,3 +567,203 @@ export declare function useConfirmOrder(options?: UseMutationOptions<Awaited<Ret
|
|
|
567
567
|
orderId: string;
|
|
568
568
|
token: string;
|
|
569
569
|
}, unknown>;
|
|
570
|
+
/**
|
|
571
|
+
* Hook to get order recommendations for post-purchase upsell
|
|
572
|
+
*
|
|
573
|
+
* @param orderId - Order UUID
|
|
574
|
+
* @param token - User action token
|
|
575
|
+
* @param limit - Maximum number of recommendations (default: 4)
|
|
576
|
+
* @param options - React Query options
|
|
577
|
+
*
|
|
578
|
+
* @example
|
|
579
|
+
* ```tsx
|
|
580
|
+
* const { data: recommendations, isLoading } = useGetOrderRecommendations('order-123', 'token-456', 4);
|
|
581
|
+
* console.log(recommendations); // Array of products from same brand
|
|
582
|
+
* ```
|
|
583
|
+
*/
|
|
584
|
+
export declare function useGetOrderRecommendations(orderId: string | null | undefined, token: string | null | undefined, limit?: number, options?: Omit<UseQueryOptions<Awaited<ReturnType<typeof fetchOrderRecommendations>>, Error>, 'queryKey' | 'queryFn'>): import("@tanstack/react-query").UseQueryResult<{
|
|
585
|
+
brand: {
|
|
586
|
+
createdAt: string;
|
|
587
|
+
updatedAt: string;
|
|
588
|
+
deletedAt: string;
|
|
589
|
+
id: string;
|
|
590
|
+
name: string;
|
|
591
|
+
slug: string;
|
|
592
|
+
logoUrl: string | null;
|
|
593
|
+
siteUrl: string;
|
|
594
|
+
domain: string;
|
|
595
|
+
metaPixelId: string | null;
|
|
596
|
+
tiktokPixelId: string | null;
|
|
597
|
+
paystackPublicKey: string | null;
|
|
598
|
+
paystackSecretKey: string | null;
|
|
599
|
+
};
|
|
600
|
+
variants: {
|
|
601
|
+
createdAt: string;
|
|
602
|
+
updatedAt: string;
|
|
603
|
+
price: number;
|
|
604
|
+
deletedAt: string;
|
|
605
|
+
id: string;
|
|
606
|
+
name: string | null;
|
|
607
|
+
isActive: boolean;
|
|
608
|
+
thumbnailUrl: string | null;
|
|
609
|
+
productId: string;
|
|
610
|
+
sku: string;
|
|
611
|
+
trackInventory: boolean;
|
|
612
|
+
lowStockThreshold: number | null;
|
|
613
|
+
}[];
|
|
614
|
+
id: string;
|
|
615
|
+
name: string;
|
|
616
|
+
slug: string;
|
|
617
|
+
createdAt: string;
|
|
618
|
+
updatedAt: string;
|
|
619
|
+
deletedAt: string;
|
|
620
|
+
brandId: string;
|
|
621
|
+
isActive: boolean;
|
|
622
|
+
description: string | null;
|
|
623
|
+
thumbnailUrl: string | null;
|
|
624
|
+
quantityDiscounts: string | number | boolean | {
|
|
625
|
+
[x: string]: string | number | boolean | /*elided*/ any | {
|
|
626
|
+
[x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
|
|
627
|
+
length: number;
|
|
628
|
+
toString: never;
|
|
629
|
+
toLocaleString: never;
|
|
630
|
+
pop: never;
|
|
631
|
+
push: never;
|
|
632
|
+
concat: never;
|
|
633
|
+
join: never;
|
|
634
|
+
reverse: never;
|
|
635
|
+
shift: never;
|
|
636
|
+
slice: never;
|
|
637
|
+
sort: never;
|
|
638
|
+
splice: never;
|
|
639
|
+
unshift: never;
|
|
640
|
+
indexOf: never;
|
|
641
|
+
lastIndexOf: never;
|
|
642
|
+
every: never;
|
|
643
|
+
some: never;
|
|
644
|
+
forEach: never;
|
|
645
|
+
map: never;
|
|
646
|
+
filter: never;
|
|
647
|
+
reduce: never;
|
|
648
|
+
reduceRight: never;
|
|
649
|
+
find: never;
|
|
650
|
+
findIndex: never;
|
|
651
|
+
fill: never;
|
|
652
|
+
copyWithin: never;
|
|
653
|
+
entries: never;
|
|
654
|
+
keys: never;
|
|
655
|
+
values: never;
|
|
656
|
+
includes: never;
|
|
657
|
+
flatMap: never;
|
|
658
|
+
flat: never;
|
|
659
|
+
[Symbol.iterator]: never;
|
|
660
|
+
readonly [Symbol.unscopables]: {
|
|
661
|
+
[x: number]: boolean;
|
|
662
|
+
length?: boolean;
|
|
663
|
+
toString?: boolean;
|
|
664
|
+
toLocaleString?: boolean;
|
|
665
|
+
pop?: boolean;
|
|
666
|
+
push?: boolean;
|
|
667
|
+
concat?: boolean;
|
|
668
|
+
join?: boolean;
|
|
669
|
+
reverse?: boolean;
|
|
670
|
+
shift?: boolean;
|
|
671
|
+
slice?: boolean;
|
|
672
|
+
sort?: boolean;
|
|
673
|
+
splice?: boolean;
|
|
674
|
+
unshift?: boolean;
|
|
675
|
+
indexOf?: boolean;
|
|
676
|
+
lastIndexOf?: boolean;
|
|
677
|
+
every?: boolean;
|
|
678
|
+
some?: boolean;
|
|
679
|
+
forEach?: boolean;
|
|
680
|
+
map?: boolean;
|
|
681
|
+
filter?: boolean;
|
|
682
|
+
reduce?: boolean;
|
|
683
|
+
reduceRight?: boolean;
|
|
684
|
+
find?: boolean;
|
|
685
|
+
findIndex?: boolean;
|
|
686
|
+
fill?: boolean;
|
|
687
|
+
copyWithin?: boolean;
|
|
688
|
+
entries?: boolean;
|
|
689
|
+
keys?: boolean;
|
|
690
|
+
values?: boolean;
|
|
691
|
+
includes?: boolean;
|
|
692
|
+
flatMap?: boolean;
|
|
693
|
+
flat?: boolean;
|
|
694
|
+
};
|
|
695
|
+
};
|
|
696
|
+
} | {
|
|
697
|
+
[x: number]: string | number | boolean | {
|
|
698
|
+
[x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
|
|
699
|
+
} | /*elided*/ any;
|
|
700
|
+
length: number;
|
|
701
|
+
toString: never;
|
|
702
|
+
toLocaleString: never;
|
|
703
|
+
pop: never;
|
|
704
|
+
push: never;
|
|
705
|
+
concat: never;
|
|
706
|
+
join: never;
|
|
707
|
+
reverse: never;
|
|
708
|
+
shift: never;
|
|
709
|
+
slice: never;
|
|
710
|
+
sort: never;
|
|
711
|
+
splice: never;
|
|
712
|
+
unshift: never;
|
|
713
|
+
indexOf: never;
|
|
714
|
+
lastIndexOf: never;
|
|
715
|
+
every: never;
|
|
716
|
+
some: never;
|
|
717
|
+
forEach: never;
|
|
718
|
+
map: never;
|
|
719
|
+
filter: never;
|
|
720
|
+
reduce: never;
|
|
721
|
+
reduceRight: never;
|
|
722
|
+
find: never;
|
|
723
|
+
findIndex: never;
|
|
724
|
+
fill: never;
|
|
725
|
+
copyWithin: never;
|
|
726
|
+
entries: never;
|
|
727
|
+
keys: never;
|
|
728
|
+
values: never;
|
|
729
|
+
includes: never;
|
|
730
|
+
flatMap: never;
|
|
731
|
+
flat: never;
|
|
732
|
+
[Symbol.iterator]: never;
|
|
733
|
+
readonly [Symbol.unscopables]: {
|
|
734
|
+
[x: number]: boolean;
|
|
735
|
+
length?: boolean;
|
|
736
|
+
toString?: boolean;
|
|
737
|
+
toLocaleString?: boolean;
|
|
738
|
+
pop?: boolean;
|
|
739
|
+
push?: boolean;
|
|
740
|
+
concat?: boolean;
|
|
741
|
+
join?: boolean;
|
|
742
|
+
reverse?: boolean;
|
|
743
|
+
shift?: boolean;
|
|
744
|
+
slice?: boolean;
|
|
745
|
+
sort?: boolean;
|
|
746
|
+
splice?: boolean;
|
|
747
|
+
unshift?: boolean;
|
|
748
|
+
indexOf?: boolean;
|
|
749
|
+
lastIndexOf?: boolean;
|
|
750
|
+
every?: boolean;
|
|
751
|
+
some?: boolean;
|
|
752
|
+
forEach?: boolean;
|
|
753
|
+
map?: boolean;
|
|
754
|
+
filter?: boolean;
|
|
755
|
+
reduce?: boolean;
|
|
756
|
+
reduceRight?: boolean;
|
|
757
|
+
find?: boolean;
|
|
758
|
+
findIndex?: boolean;
|
|
759
|
+
fill?: boolean;
|
|
760
|
+
copyWithin?: boolean;
|
|
761
|
+
entries?: boolean;
|
|
762
|
+
keys?: boolean;
|
|
763
|
+
values?: boolean;
|
|
764
|
+
includes?: boolean;
|
|
765
|
+
flatMap?: boolean;
|
|
766
|
+
flat?: boolean;
|
|
767
|
+
};
|
|
768
|
+
};
|
|
769
|
+
}[], Error>;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { useMutation } from '@tanstack/react-query';
|
|
8
8
|
import { useQueryUnwrapped } from '../use-query-unwrapped';
|
|
9
9
|
import { queryKeys } from '../../utils/query-keys';
|
|
10
|
-
import { fetchOrder, confirmOrder } from '../../fetchers/orders';
|
|
10
|
+
import { fetchOrder, confirmOrder, fetchOrderRecommendations } from '../../fetchers/orders';
|
|
11
11
|
/**
|
|
12
12
|
* Hook to get order by ID and token using RPC
|
|
13
13
|
*
|
|
@@ -48,3 +48,25 @@ export function useConfirmOrder(options) {
|
|
|
48
48
|
...options,
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Hook to get order recommendations for post-purchase upsell
|
|
53
|
+
*
|
|
54
|
+
* @param orderId - Order UUID
|
|
55
|
+
* @param token - User action token
|
|
56
|
+
* @param limit - Maximum number of recommendations (default: 4)
|
|
57
|
+
* @param options - React Query options
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```tsx
|
|
61
|
+
* const { data: recommendations, isLoading } = useGetOrderRecommendations('order-123', 'token-456', 4);
|
|
62
|
+
* console.log(recommendations); // Array of products from same brand
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export function useGetOrderRecommendations(orderId, token, limit = 4, options) {
|
|
66
|
+
return useQueryUnwrapped({
|
|
67
|
+
queryKey: queryKeys.public.orders.recommendations(orderId, token, limit),
|
|
68
|
+
queryFn: () => fetchOrderRecommendations(orderId, token, limit),
|
|
69
|
+
enabled: !!orderId && !!token,
|
|
70
|
+
...options,
|
|
71
|
+
});
|
|
72
|
+
}
|
package/dist/rpc-client.d.ts
CHANGED
|
@@ -3550,6 +3550,242 @@ export declare function createRpcClients(baseURL: string): {
|
|
|
3550
3550
|
status: 500;
|
|
3551
3551
|
};
|
|
3552
3552
|
}>;
|
|
3553
|
+
} & {
|
|
3554
|
+
":id": {
|
|
3555
|
+
":token": {
|
|
3556
|
+
recommendations: import("hono/client").ClientRequest<{
|
|
3557
|
+
$get: {
|
|
3558
|
+
input: {
|
|
3559
|
+
param: {
|
|
3560
|
+
id: string;
|
|
3561
|
+
} & {
|
|
3562
|
+
token: string;
|
|
3563
|
+
};
|
|
3564
|
+
};
|
|
3565
|
+
output: {
|
|
3566
|
+
error: {
|
|
3567
|
+
code: string;
|
|
3568
|
+
message: string;
|
|
3569
|
+
};
|
|
3570
|
+
};
|
|
3571
|
+
outputFormat: "json";
|
|
3572
|
+
status: 404;
|
|
3573
|
+
} | {
|
|
3574
|
+
input: {
|
|
3575
|
+
param: {
|
|
3576
|
+
id: string;
|
|
3577
|
+
} & {
|
|
3578
|
+
token: string;
|
|
3579
|
+
};
|
|
3580
|
+
};
|
|
3581
|
+
output: {
|
|
3582
|
+
brand: {
|
|
3583
|
+
createdAt: string;
|
|
3584
|
+
updatedAt: string;
|
|
3585
|
+
deletedAt: string;
|
|
3586
|
+
id: string;
|
|
3587
|
+
name: string;
|
|
3588
|
+
slug: string;
|
|
3589
|
+
logoUrl: string | null;
|
|
3590
|
+
siteUrl: string;
|
|
3591
|
+
domain: string;
|
|
3592
|
+
metaPixelId: string | null;
|
|
3593
|
+
tiktokPixelId: string | null;
|
|
3594
|
+
paystackPublicKey: string | null;
|
|
3595
|
+
paystackSecretKey: string | null;
|
|
3596
|
+
};
|
|
3597
|
+
variants: {
|
|
3598
|
+
createdAt: string;
|
|
3599
|
+
updatedAt: string;
|
|
3600
|
+
price: number;
|
|
3601
|
+
deletedAt: string;
|
|
3602
|
+
id: string;
|
|
3603
|
+
name: string | null;
|
|
3604
|
+
isActive: boolean;
|
|
3605
|
+
thumbnailUrl: string | null;
|
|
3606
|
+
productId: string;
|
|
3607
|
+
sku: string;
|
|
3608
|
+
trackInventory: boolean;
|
|
3609
|
+
lowStockThreshold: number | null;
|
|
3610
|
+
}[];
|
|
3611
|
+
id: string;
|
|
3612
|
+
name: string;
|
|
3613
|
+
slug: string;
|
|
3614
|
+
createdAt: string;
|
|
3615
|
+
updatedAt: string;
|
|
3616
|
+
deletedAt: string;
|
|
3617
|
+
brandId: string;
|
|
3618
|
+
isActive: boolean;
|
|
3619
|
+
description: string | null;
|
|
3620
|
+
thumbnailUrl: string | null;
|
|
3621
|
+
quantityDiscounts: string | number | boolean | {
|
|
3622
|
+
[x: string]: string | number | boolean | /*elided*/ any | {
|
|
3623
|
+
[x: number]: string | number | boolean | /*elided*/ any | /*elided*/ any;
|
|
3624
|
+
length: number;
|
|
3625
|
+
toString: never;
|
|
3626
|
+
toLocaleString: never;
|
|
3627
|
+
pop: never;
|
|
3628
|
+
push: never;
|
|
3629
|
+
concat: never;
|
|
3630
|
+
join: never;
|
|
3631
|
+
reverse: never;
|
|
3632
|
+
shift: never;
|
|
3633
|
+
slice: never;
|
|
3634
|
+
sort: never;
|
|
3635
|
+
splice: never;
|
|
3636
|
+
unshift: never;
|
|
3637
|
+
indexOf: never;
|
|
3638
|
+
lastIndexOf: never;
|
|
3639
|
+
every: never;
|
|
3640
|
+
some: never;
|
|
3641
|
+
forEach: never;
|
|
3642
|
+
map: never;
|
|
3643
|
+
filter: never;
|
|
3644
|
+
reduce: never;
|
|
3645
|
+
reduceRight: never;
|
|
3646
|
+
find: never;
|
|
3647
|
+
findIndex: never;
|
|
3648
|
+
fill: never;
|
|
3649
|
+
copyWithin: never;
|
|
3650
|
+
entries: never;
|
|
3651
|
+
keys: never;
|
|
3652
|
+
values: never;
|
|
3653
|
+
includes: never;
|
|
3654
|
+
flatMap: never;
|
|
3655
|
+
flat: never;
|
|
3656
|
+
[Symbol.iterator]: never;
|
|
3657
|
+
readonly [Symbol.unscopables]: {
|
|
3658
|
+
[x: number]: boolean;
|
|
3659
|
+
length?: boolean;
|
|
3660
|
+
toString?: boolean;
|
|
3661
|
+
toLocaleString?: boolean;
|
|
3662
|
+
pop?: boolean;
|
|
3663
|
+
push?: boolean;
|
|
3664
|
+
concat?: boolean;
|
|
3665
|
+
join?: boolean;
|
|
3666
|
+
reverse?: boolean;
|
|
3667
|
+
shift?: boolean;
|
|
3668
|
+
slice?: boolean;
|
|
3669
|
+
sort?: boolean;
|
|
3670
|
+
splice?: boolean;
|
|
3671
|
+
unshift?: boolean;
|
|
3672
|
+
indexOf?: boolean;
|
|
3673
|
+
lastIndexOf?: boolean;
|
|
3674
|
+
every?: boolean;
|
|
3675
|
+
some?: boolean;
|
|
3676
|
+
forEach?: boolean;
|
|
3677
|
+
map?: boolean;
|
|
3678
|
+
filter?: boolean;
|
|
3679
|
+
reduce?: boolean;
|
|
3680
|
+
reduceRight?: boolean;
|
|
3681
|
+
find?: boolean;
|
|
3682
|
+
findIndex?: boolean;
|
|
3683
|
+
fill?: boolean;
|
|
3684
|
+
copyWithin?: boolean;
|
|
3685
|
+
entries?: boolean;
|
|
3686
|
+
keys?: boolean;
|
|
3687
|
+
values?: boolean;
|
|
3688
|
+
includes?: boolean;
|
|
3689
|
+
flatMap?: boolean;
|
|
3690
|
+
flat?: boolean;
|
|
3691
|
+
};
|
|
3692
|
+
};
|
|
3693
|
+
} | {
|
|
3694
|
+
[x: number]: string | number | boolean | {
|
|
3695
|
+
[x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any;
|
|
3696
|
+
} | /*elided*/ any;
|
|
3697
|
+
length: number;
|
|
3698
|
+
toString: never;
|
|
3699
|
+
toLocaleString: never;
|
|
3700
|
+
pop: never;
|
|
3701
|
+
push: never;
|
|
3702
|
+
concat: never;
|
|
3703
|
+
join: never;
|
|
3704
|
+
reverse: never;
|
|
3705
|
+
shift: never;
|
|
3706
|
+
slice: never;
|
|
3707
|
+
sort: never;
|
|
3708
|
+
splice: never;
|
|
3709
|
+
unshift: never;
|
|
3710
|
+
indexOf: never;
|
|
3711
|
+
lastIndexOf: never;
|
|
3712
|
+
every: never;
|
|
3713
|
+
some: never;
|
|
3714
|
+
forEach: never;
|
|
3715
|
+
map: never;
|
|
3716
|
+
filter: never;
|
|
3717
|
+
reduce: never;
|
|
3718
|
+
reduceRight: never;
|
|
3719
|
+
find: never;
|
|
3720
|
+
findIndex: never;
|
|
3721
|
+
fill: never;
|
|
3722
|
+
copyWithin: never;
|
|
3723
|
+
entries: never;
|
|
3724
|
+
keys: never;
|
|
3725
|
+
values: never;
|
|
3726
|
+
includes: never;
|
|
3727
|
+
flatMap: never;
|
|
3728
|
+
flat: never;
|
|
3729
|
+
[Symbol.iterator]: never;
|
|
3730
|
+
readonly [Symbol.unscopables]: {
|
|
3731
|
+
[x: number]: boolean;
|
|
3732
|
+
length?: boolean;
|
|
3733
|
+
toString?: boolean;
|
|
3734
|
+
toLocaleString?: boolean;
|
|
3735
|
+
pop?: boolean;
|
|
3736
|
+
push?: boolean;
|
|
3737
|
+
concat?: boolean;
|
|
3738
|
+
join?: boolean;
|
|
3739
|
+
reverse?: boolean;
|
|
3740
|
+
shift?: boolean;
|
|
3741
|
+
slice?: boolean;
|
|
3742
|
+
sort?: boolean;
|
|
3743
|
+
splice?: boolean;
|
|
3744
|
+
unshift?: boolean;
|
|
3745
|
+
indexOf?: boolean;
|
|
3746
|
+
lastIndexOf?: boolean;
|
|
3747
|
+
every?: boolean;
|
|
3748
|
+
some?: boolean;
|
|
3749
|
+
forEach?: boolean;
|
|
3750
|
+
map?: boolean;
|
|
3751
|
+
filter?: boolean;
|
|
3752
|
+
reduce?: boolean;
|
|
3753
|
+
reduceRight?: boolean;
|
|
3754
|
+
find?: boolean;
|
|
3755
|
+
findIndex?: boolean;
|
|
3756
|
+
fill?: boolean;
|
|
3757
|
+
copyWithin?: boolean;
|
|
3758
|
+
entries?: boolean;
|
|
3759
|
+
keys?: boolean;
|
|
3760
|
+
values?: boolean;
|
|
3761
|
+
includes?: boolean;
|
|
3762
|
+
flatMap?: boolean;
|
|
3763
|
+
flat?: boolean;
|
|
3764
|
+
};
|
|
3765
|
+
};
|
|
3766
|
+
}[];
|
|
3767
|
+
outputFormat: "json";
|
|
3768
|
+
status: 200;
|
|
3769
|
+
} | {
|
|
3770
|
+
input: {
|
|
3771
|
+
param: {
|
|
3772
|
+
id: string;
|
|
3773
|
+
} & {
|
|
3774
|
+
token: string;
|
|
3775
|
+
};
|
|
3776
|
+
};
|
|
3777
|
+
output: {
|
|
3778
|
+
error: {
|
|
3779
|
+
code: string;
|
|
3780
|
+
message: any;
|
|
3781
|
+
};
|
|
3782
|
+
};
|
|
3783
|
+
outputFormat: "json";
|
|
3784
|
+
status: 500;
|
|
3785
|
+
};
|
|
3786
|
+
}>;
|
|
3787
|
+
};
|
|
3788
|
+
};
|
|
3553
3789
|
};
|
|
3554
3790
|
products: {
|
|
3555
3791
|
product: {
|
|
@@ -3782,20 +4018,6 @@ export declare function createRpcClients(baseURL: string): {
|
|
|
3782
4018
|
} & {
|
|
3783
4019
|
":brandId": import("hono/client").ClientRequest<{
|
|
3784
4020
|
$get: {
|
|
3785
|
-
input: {
|
|
3786
|
-
param: {
|
|
3787
|
-
brandId: string;
|
|
3788
|
-
};
|
|
3789
|
-
};
|
|
3790
|
-
output: {
|
|
3791
|
-
error: {
|
|
3792
|
-
code: string;
|
|
3793
|
-
message: string;
|
|
3794
|
-
};
|
|
3795
|
-
};
|
|
3796
|
-
outputFormat: "json";
|
|
3797
|
-
status: 404;
|
|
3798
|
-
} | {
|
|
3799
4021
|
input: {
|
|
3800
4022
|
param: {
|
|
3801
4023
|
brandId: string;
|
|
@@ -3989,6 +4211,20 @@ export declare function createRpcClients(baseURL: string): {
|
|
|
3989
4211
|
}[];
|
|
3990
4212
|
outputFormat: "json";
|
|
3991
4213
|
status: 200;
|
|
4214
|
+
} | {
|
|
4215
|
+
input: {
|
|
4216
|
+
param: {
|
|
4217
|
+
brandId: string;
|
|
4218
|
+
};
|
|
4219
|
+
};
|
|
4220
|
+
output: {
|
|
4221
|
+
error: {
|
|
4222
|
+
code: string;
|
|
4223
|
+
message: string;
|
|
4224
|
+
};
|
|
4225
|
+
};
|
|
4226
|
+
outputFormat: "json";
|
|
4227
|
+
status: 404;
|
|
3992
4228
|
} | {
|
|
3993
4229
|
input: {
|
|
3994
4230
|
param: {
|
|
@@ -17,6 +17,7 @@ export declare const queryKeys: {
|
|
|
17
17
|
orders: {
|
|
18
18
|
all: readonly ["public", "orders"];
|
|
19
19
|
detail: (id: string, token: string) => readonly ["public", "orders", string, string];
|
|
20
|
+
recommendations: (id: string, token: string, limit?: number) => readonly ["public", "orders", string, string, "recommendations", number] | readonly ["public", "orders", string, string, "recommendations"];
|
|
20
21
|
};
|
|
21
22
|
products: {
|
|
22
23
|
all: readonly ["public", "products"];
|
package/dist/utils/query-keys.js
CHANGED
|
@@ -20,6 +20,9 @@ export const queryKeys = {
|
|
|
20
20
|
orders: {
|
|
21
21
|
all: ['public', 'orders'],
|
|
22
22
|
detail: (id, token) => ['public', 'orders', id, token],
|
|
23
|
+
recommendations: (id, token, limit) => limit !== undefined
|
|
24
|
+
? ['public', 'orders', id, token, 'recommendations', limit]
|
|
25
|
+
: ['public', 'orders', id, token, 'recommendations'],
|
|
23
26
|
},
|
|
24
27
|
products: {
|
|
25
28
|
all: ['public', 'products'],
|