@lookiero/checkout 0.2.38 → 0.2.40

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.
Files changed (62) hide show
  1. package/README.md +1 -3
  2. package/dist/domain/checkoutBooking/command/bookCheckoutBookingForCheckoutItem.d.ts +15 -0
  3. package/dist/domain/checkoutBooking/command/bookCheckoutBookingForCheckoutItem.js +7 -0
  4. package/dist/domain/checkoutBooking/model/checkoutBooking.d.ts +4 -4
  5. package/dist/domain/checkoutBooking/model/checkoutBooking.js +4 -12
  6. package/dist/domain/checkoutBooking/model/checkoutBookingBooked.d.ts +0 -1
  7. package/dist/infrastructure/delivery/baseBootstrap.d.ts +11 -2
  8. package/dist/infrastructure/delivery/baseBootstrap.js +8 -1
  9. package/dist/infrastructure/delivery/bootstrap.js +8 -0
  10. package/dist/infrastructure/delivery/http/fetchHttpClient.js +2 -1
  11. package/dist/infrastructure/delivery/mock/checkoutBookingDataSource.d.ts +14 -0
  12. package/dist/infrastructure/delivery/mock/checkoutBookingDataSource.js +12 -0
  13. package/dist/infrastructure/delivery/mock/dataSourceCheckoutBookings.d.ts +14 -0
  14. package/dist/infrastructure/delivery/mock/dataSourceCheckoutBookings.js +21 -0
  15. package/dist/infrastructure/domain/checkout/model/httpCheckoutsStart.js +1 -1
  16. package/dist/infrastructure/domain/checkoutBooking/model/httpCheckoutBookings.d.ts +10 -3
  17. package/dist/infrastructure/domain/checkoutBooking/model/httpCheckoutBookings.js +16 -19
  18. package/dist/infrastructure/domain/checkoutBooking/model/httpCheckoutBookingsBook.d.ts +5 -0
  19. package/dist/infrastructure/domain/checkoutBooking/model/httpCheckoutBookingsBook.js +18 -0
  20. package/dist/infrastructure/domain/checkoutBooking/react/useBookCheckouBookingForCheckoutItem.d.ts +15 -0
  21. package/dist/infrastructure/domain/checkoutBooking/react/useBookCheckouBookingForCheckoutItem.js +15 -0
  22. package/dist/infrastructure/domain/checkoutItem/model/httpCheckoutItems.js +1 -1
  23. package/dist/infrastructure/domain/checkoutItem/model/httpCheckoutItemsKeep.js +1 -1
  24. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/httpBookedSizeChangeProductsVariantsForCheckoutItemView.d.ts +12 -0
  25. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/httpBookedSizeChangeProductsVariantsForCheckoutItemView.js +9 -0
  26. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/react/useViewBookedSizeChangeProductsVariantsForCheckoutItem.d.ts +10 -0
  27. package/dist/infrastructure/projection/bookedSizeChangeProductsVariants/react/useViewBookedSizeChangeProductsVariantsForCheckoutItem.js +9 -0
  28. package/dist/infrastructure/projection/checkout/checkout.d.ts +6 -6
  29. package/dist/infrastructure/projection/checkout/checkout.js +2 -45
  30. package/dist/infrastructure/projection/checkoutBooking/httpCheckoutBookingByIdView.d.ts +12 -0
  31. package/dist/infrastructure/projection/checkoutBooking/httpCheckoutBookingByIdView.js +9 -0
  32. package/dist/infrastructure/projection/checkoutItem/httpCheckoutItemByIdView.js +2 -3
  33. package/dist/infrastructure/projection/returnQuestion/httpReturnQuestionsByCheckoutItemIdView.js +2 -3
  34. package/dist/infrastructure/ui/views/item/Item.js +26 -13
  35. package/dist/projection/bookedSizeChangeProductsVariants/bookedSizeChangeProductsVariants.d.ts +13 -0
  36. package/dist/projection/bookedSizeChangeProductsVariants/bookedSizeChangeProductsVariants.js +1 -0
  37. package/dist/projection/bookedSizeChangeProductsVariants/viewBookedSizeChangeProductVariantsForCheckoutItem.d.ts +25 -0
  38. package/dist/projection/bookedSizeChangeProductsVariants/viewBookedSizeChangeProductVariantsForCheckoutItem.js +8 -0
  39. package/dist/projection/checkoutBooking/checkoutBooking.d.ts +6 -0
  40. package/dist/projection/checkoutBooking/checkoutBooking.js +1 -0
  41. package/dist/projection/checkoutBooking/viewCheckoutBookingById.d.ts +25 -0
  42. package/dist/projection/checkoutBooking/viewCheckoutBookingById.js +8 -0
  43. package/dist/projection/checkoutItem/checkoutItem.d.ts +1 -1
  44. package/package.json +1 -1
  45. package/dist/domain/checkoutBooking/command/bookSizeReplaceableProductVariantsForCheckoutItem.d.ts +0 -15
  46. package/dist/domain/checkoutBooking/command/bookSizeReplaceableProductVariantsForCheckoutItem.js +0 -7
  47. package/dist/infrastructure/domain/checkoutBooking/react/useBookSizeReplaceableProductVariantsForCheckoutItem.d.ts +0 -15
  48. package/dist/infrastructure/domain/checkoutBooking/react/useBookSizeReplaceableProductVariantsForCheckoutItem.js +0 -14
  49. package/dist/infrastructure/projection/bookedSizeReplaceableProductVariants/bookedSizeReplaceableProductVariants.mock.d.ts +0 -3
  50. package/dist/infrastructure/projection/bookedSizeReplaceableProductVariants/bookedSizeReplaceableProductVariants.mock.js +0 -17
  51. package/dist/infrastructure/projection/bookedSizeReplaceableProductVariants/httpBookedSizeReplaceableProductVariantsForCheckoutItemView.d.ts +0 -34
  52. package/dist/infrastructure/projection/bookedSizeReplaceableProductVariants/httpBookedSizeReplaceableProductVariantsForCheckoutItemView.js +0 -26
  53. package/dist/infrastructure/projection/bookedSizeReplaceableProductVariants/react/useViewBookedSizeReplaceableProductVariantsForCheckoutItem.d.ts +0 -10
  54. package/dist/infrastructure/projection/bookedSizeReplaceableProductVariants/react/useViewBookedSizeReplaceableProductVariantsForCheckoutItem.js +0 -9
  55. package/dist/infrastructure/projection/checkoutItem/checkoutItem.d.ts +0 -45
  56. package/dist/infrastructure/projection/checkoutItem/checkoutItem.js +0 -40
  57. package/dist/infrastructure/projection/feedback/feedback.mock.d.ts +0 -3
  58. package/dist/infrastructure/projection/feedback/feedback.mock.js +0 -6
  59. package/dist/infrastructure/projection/returnQuestion/returnQuestion.d.ts +0 -14
  60. package/dist/infrastructure/projection/returnQuestion/returnQuestion.js +0 -9
  61. package/dist/projection/bookedSizeReplaceableProductVariants/viewBookedSizeReplaceableProductVariantsForCheckoutItem.d.ts +0 -33
  62. package/dist/projection/bookedSizeReplaceableProductVariants/viewBookedSizeReplaceableProductVariantsForCheckoutItem.js +0 -8
@@ -1,12 +1,13 @@
1
1
  import { QueryStatus } from "@lookiero/messaging-react";
2
- import React, { useCallback, useState } from "react";
2
+ import React, { useCallback, useEffect, useState } from "react";
3
3
  import { View } from "react-native";
4
4
  import { useParams } from "react-router-native";
5
5
  import { CheckoutItemStatus } from "../../../../domain/checkoutItem/model/checkoutItem";
6
6
  import "../../../../projection/checkout/viewFirstAvailableCheckoutByCustomerId";
7
- import { bookedSizeReplaceableProductVariants as bookedSizeReplaceableProductVariantsMock } from "../../../projection/bookedSizeReplaceableProductVariants/bookedSizeReplaceableProductVariants.mock";
7
+ import { useBookCheckouBookingForCheckoutItem } from "../../../domain/checkoutBooking/react/useBookCheckouBookingForCheckoutItem";
8
+ import { useKeepCheckoutItem } from "../../../domain/checkoutItem/react/useKeepCheckoutItem";
9
+ import { useViewBookedSizeChangeProductsVariantsForCheckoutItem } from "../../../projection/bookedSizeChangeProductsVariants/react/useViewBookedSizeChangeProductsVariantsForCheckoutItem";
8
10
  import { useViewFirstAvailableCheckoutByCustomerId } from "../../../projection/checkout/react/useViewFirstAvailableCheckoutByCustomerId";
9
- import { feedback as feedbackMock } from "../../../projection/feedback/feedback.mock";
10
11
  import { useListReturnQuestionsByCheckoutItemId } from "../../../projection/returnQuestion/react/useListReturnQuestionsByCheckoutItemId";
11
12
  import { Body } from "../../components/layouts/body/Body";
12
13
  import { SafeAreaScrollView } from "../../components/templates/SafeAreaScrollView";
@@ -22,9 +23,21 @@ const Item = ({ customerId }) => {
22
23
  const { id } = useParams();
23
24
  const [checkout, checkoutStatus] = useViewFirstAvailableCheckoutByCustomerId({ customerId });
24
25
  const checkoutItem = checkout?.items.find((checkoutItem) => checkoutItem.id === id);
25
- const [returnQuestions = [], returnQuestionsStatus] = useListReturnQuestionsByCheckoutItemId({
26
+ const [bookedSizeChangeProductsVariants, bookedSizeChangeProductsVariantsStatus] = useViewBookedSizeChangeProductsVariantsForCheckoutItem({
26
27
  checkoutItemId: checkoutItem.id,
27
28
  });
29
+ const [bookCheckouBooking] = useBookCheckouBookingForCheckoutItem({
30
+ checkoutBookingId: bookedSizeChangeProductsVariants?.id,
31
+ checkoutId: checkout?.id,
32
+ checkoutItemId: checkoutItem.id,
33
+ });
34
+ const [returnQuestions, returnQuestionsStatus] = useListReturnQuestionsByCheckoutItemId({
35
+ checkoutItemId: checkoutItem.id,
36
+ });
37
+ const [keepCheckoutItem] = useKeepCheckoutItem({ checkoutItemId: checkoutItem.id });
38
+ useEffect(() => {
39
+ checkout?.bookingId === undefined && bookCheckouBooking();
40
+ }, [bookCheckouBooking, checkout?.bookingId]);
28
41
  const [stickyHeight, setStickyHeight] = useState(0);
29
42
  const handleOnStickyLayout = useCallback(({ height }) => setStickyHeight(height), []);
30
43
  const [returnQuestionsVisible, setReturnQuestionsVisible] = useState(false);
@@ -32,21 +45,21 @@ const Item = ({ customerId }) => {
32
45
  const handleOnHideReturnQuestions = useCallback(() => setReturnQuestionsVisible(false), []);
33
46
  const handleOnEditFeedback = useCallback(() => void 0, []);
34
47
  const handleOnSubmit = useCallback(() => handleOnHideReturnQuestions(), [handleOnHideReturnQuestions]);
35
- const handleOnKeep = useCallback(() => void 0, []);
36
48
  const handleOnReplace = useCallback(() => void 0, []);
37
49
  const handleOnReturn = useCallback(() => handleOnShowReturnQuestions(), [handleOnShowReturnQuestions]);
38
50
  const handleOnBannerPress = useCallback(() => void 0, []);
39
51
  const dependenciesLoadedStatuses = [QueryStatus.ERROR, QueryStatus.SUCCESS];
40
- const dependenciesLoaded = dependenciesLoadedStatuses.includes(returnQuestionsStatus) && dependenciesLoadedStatuses.includes(checkoutStatus);
52
+ const dependenciesLoaded = dependenciesLoadedStatuses.includes(returnQuestionsStatus) &&
53
+ dependenciesLoadedStatuses.includes(checkoutStatus) &&
54
+ dependenciesLoadedStatuses.includes(bookedSizeChangeProductsVariantsStatus);
41
55
  if (!dependenciesLoaded)
42
56
  return React.createElement(Spinner, null);
43
57
  const { price } = checkoutItem;
44
58
  const { media, brand, name, size, color } = checkoutItem.productVariant;
45
59
  const customerDecissionMade = checkoutItem.status === CheckoutItemStatus.INITIAL || checkoutItem.status === CheckoutItemStatus.EXPIRED;
46
- const feedback = feedbackMock;
47
- const sizes = bookedSizeReplaceableProductVariantsMock.productVariants
60
+ const sizes = bookedSizeChangeProductsVariants?.productVariants
48
61
  .map((productVariant) => productVariant.size)
49
- .concat(checkoutItem.productVariant.size);
62
+ .concat(checkoutItem.productVariant.size) || [];
50
63
  return (React.createElement(React.Fragment, null,
51
64
  React.createElement(SafeAreaScrollView, null,
52
65
  React.createElement(Body, null,
@@ -55,9 +68,9 @@ const Item = ({ customerId }) => {
55
68
  React.createElement(View, { style: style.sliderContainer },
56
69
  React.createElement(ProductVariantSlider, { producVariantMedia: media })),
57
70
  React.createElement(ProductVariantDescription, { brand: brand, color: color, name: name, price: price, size: size }),
58
- Object.entries(feedback).length !== 0 && (React.createElement(View, { style: style.feedbackContainer },
59
- React.createElement(ReturnQuestionsFeedback, { feedback: feedback, returnQuestions: returnQuestions, onEditFeedback: handleOnEditFeedback })))))),
60
- customerDecissionMade && (React.createElement(ItemActions, { size: checkoutItem.productVariant.size, sizes: sizes, onKeep: handleOnKeep, onLayout: handleOnStickyLayout, onReplace: handleOnReplace, onReturn: handleOnReturn })),
61
- React.createElement(ReturnQuestionsForm, { checkoutItemPrice: checkoutItem.price, feedback: feedback, productVariant: checkoutItem.productVariant, returnQuestions: returnQuestions, visible: returnQuestionsVisible, onClose: handleOnHideReturnQuestions, onSubmit: handleOnSubmit })));
71
+ checkoutItem.feedback && (React.createElement(View, { style: style.feedbackContainer },
72
+ React.createElement(ReturnQuestionsFeedback, { feedback: checkoutItem.feedback, returnQuestions: returnQuestions || [], onEditFeedback: handleOnEditFeedback })))))),
73
+ customerDecissionMade && (React.createElement(ItemActions, { size: checkoutItem.productVariant.size, sizes: sizes, onKeep: keepCheckoutItem, onLayout: handleOnStickyLayout, onReplace: handleOnReplace, onReturn: handleOnReturn })),
74
+ React.createElement(ReturnQuestionsForm, { checkoutItemPrice: checkoutItem.price, feedback: checkoutItem.feedback || {}, productVariant: checkoutItem.productVariant, returnQuestions: returnQuestions || [], visible: returnQuestionsVisible, onClose: handleOnHideReturnQuestions, onSubmit: handleOnSubmit })));
62
75
  };
63
76
  export { Item };
@@ -0,0 +1,13 @@
1
+ import { SizeProjection } from "../shared/size";
2
+ interface ProductVariantProjection {
3
+ readonly id: string;
4
+ readonly size: SizeProjection;
5
+ }
6
+ interface BookedSizeChangeProductsVariantsProjection {
7
+ readonly id: string;
8
+ readonly checkoutId: string;
9
+ readonly checkoutItemId: string;
10
+ readonly booking: string | null;
11
+ readonly productVariants: ProductVariantProjection[];
12
+ }
13
+ export type { BookedSizeChangeProductsVariantsProjection, ProductVariantProjection };
@@ -0,0 +1,25 @@
1
+ import { CancelableQueryViewArgs, Query, QueryHandlerFunction, QueryHandlerFunctionArgs } from "@lookiero/messaging";
2
+ import { BookedSizeChangeProductsVariantsProjection } from "./bookedSizeChangeProductsVariants";
3
+ declare const VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "view_booked_size_change_product_variants_for_checkout_item";
4
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItemPayload {
5
+ readonly checkoutItemId: string;
6
+ }
7
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItem extends Query<typeof VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM>, ViewBookedSizeChangeProductsVariantsForCheckoutItemPayload {
8
+ }
9
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItemFunction {
10
+ (payload: ViewBookedSizeChangeProductsVariantsForCheckoutItemPayload): ViewBookedSizeChangeProductsVariantsForCheckoutItem;
11
+ }
12
+ declare const viewBookedSizeChangeProductsVariantsForCheckoutItem: ViewBookedSizeChangeProductsVariantsForCheckoutItemFunction;
13
+ declare type ViewBookedSizeChangeProductsVariantsForCheckoutItemResult = BookedSizeChangeProductsVariantsProjection | null;
14
+ interface BookedSizeChangeProductsVariantsForCheckoutItemViewArgs extends CancelableQueryViewArgs {
15
+ readonly checkoutItemId: string;
16
+ }
17
+ interface BookedSizeChangeProductsVariantsForCheckoutItemView {
18
+ (args: BookedSizeChangeProductsVariantsForCheckoutItemViewArgs): Promise<ViewBookedSizeChangeProductsVariantsForCheckoutItemResult>;
19
+ }
20
+ interface ViewBookedSizeChangeProductsVariantsForCheckoutItemHandlerFunctionArgs extends QueryHandlerFunctionArgs {
21
+ readonly view: BookedSizeChangeProductsVariantsForCheckoutItemView;
22
+ }
23
+ declare const viewBookedSizeChangeProductsVariantsForCheckoutItemHandler: QueryHandlerFunction<ViewBookedSizeChangeProductsVariantsForCheckoutItem, ViewBookedSizeChangeProductsVariantsForCheckoutItemResult, ViewBookedSizeChangeProductsVariantsForCheckoutItemHandlerFunctionArgs>;
24
+ export type { ViewBookedSizeChangeProductsVariantsForCheckoutItem, BookedSizeChangeProductsVariantsForCheckoutItemView, ViewBookedSizeChangeProductsVariantsForCheckoutItemResult, };
25
+ export { VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, viewBookedSizeChangeProductsVariantsForCheckoutItem, viewBookedSizeChangeProductsVariantsForCheckoutItemHandler, };
@@ -0,0 +1,8 @@
1
+ import { query, } from "@lookiero/messaging";
2
+ const VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "view_booked_size_change_product_variants_for_checkout_item";
3
+ const viewBookedSizeChangeProductsVariantsForCheckoutItem = (payload) => ({
4
+ ...query({ name: VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM }),
5
+ ...payload,
6
+ });
7
+ const viewBookedSizeChangeProductsVariantsForCheckoutItemHandler = ({ view, signal }) => async ({ checkoutItemId }) => view({ checkoutItemId, signal });
8
+ export { VIEW_BOOKED_SIZE_CHANGE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, viewBookedSizeChangeProductsVariantsForCheckoutItem, viewBookedSizeChangeProductsVariantsForCheckoutItemHandler, };
@@ -0,0 +1,6 @@
1
+ interface CheckoutBookingProjection {
2
+ readonly id: string;
3
+ readonly checkoutId: string;
4
+ readonly checkoutItemIds: string[];
5
+ }
6
+ export type { CheckoutBookingProjection };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,25 @@
1
+ import { CancelableQueryViewArgs, Query, QueryHandlerFunction, QueryHandlerFunctionArgs } from "@lookiero/messaging";
2
+ import { CheckoutBookingProjection } from "./checkoutBooking";
3
+ declare const VIEW_CHECKOUT_BOOKING_BY_ID = "view_checkout_booking_by_id";
4
+ interface ViewCheckoutBookingByIdPayload {
5
+ readonly checkoutBookingId: string;
6
+ }
7
+ interface ViewCheckoutBookingById extends Query<typeof VIEW_CHECKOUT_BOOKING_BY_ID>, ViewCheckoutBookingByIdPayload {
8
+ }
9
+ interface ViewCheckoutBookingByIdFunction {
10
+ (payload: ViewCheckoutBookingByIdPayload): ViewCheckoutBookingById;
11
+ }
12
+ declare const viewCheckoutBookingById: ViewCheckoutBookingByIdFunction;
13
+ declare type ViewCheckoutBookingByIdResult = CheckoutBookingProjection | null;
14
+ interface CheckoutBookingByIdViewArgs extends CancelableQueryViewArgs {
15
+ readonly checkoutBookingId: string;
16
+ }
17
+ interface CheckoutBookingByIdView {
18
+ (args: CheckoutBookingByIdViewArgs): Promise<ViewCheckoutBookingByIdResult>;
19
+ }
20
+ interface ViewCheckoutBookingByIdHandlerFunctionArgs extends QueryHandlerFunctionArgs {
21
+ readonly view: CheckoutBookingByIdView;
22
+ }
23
+ declare const viewCheckoutBookingByIdHandler: QueryHandlerFunction<ViewCheckoutBookingById, ViewCheckoutBookingByIdResult, ViewCheckoutBookingByIdHandlerFunctionArgs>;
24
+ export type { ViewCheckoutBookingById, CheckoutBookingByIdView, ViewCheckoutBookingByIdResult };
25
+ export { VIEW_CHECKOUT_BOOKING_BY_ID, viewCheckoutBookingById, viewCheckoutBookingByIdHandler };
@@ -0,0 +1,8 @@
1
+ import { query, } from "@lookiero/messaging";
2
+ const VIEW_CHECKOUT_BOOKING_BY_ID = "view_checkout_booking_by_id";
3
+ const viewCheckoutBookingById = (payload) => ({
4
+ ...query({ name: VIEW_CHECKOUT_BOOKING_BY_ID }),
5
+ ...payload,
6
+ });
7
+ const viewCheckoutBookingByIdHandler = ({ view, signal }) => async ({ checkoutBookingId }) => view({ checkoutBookingId, signal });
8
+ export { VIEW_CHECKOUT_BOOKING_BY_ID, viewCheckoutBookingById, viewCheckoutBookingByIdHandler };
@@ -47,7 +47,7 @@ interface CheckoutItemProjection {
47
47
  readonly price: PriceProjection;
48
48
  readonly replacedFor?: string;
49
49
  readonly productVariant: CheckoutItemProductVariantProjection;
50
- readonly feedback: FeedbackProjection | undefined;
50
+ readonly feedback: FeedbackProjection | null;
51
51
  }
52
52
  export type { CheckoutItemProjection, CheckoutItemProductVariantProjection, ColorProjection, MediaProjection, PriceProjection, };
53
53
  export { Currency, MediaPerspective };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lookiero/checkout",
3
- "version": "0.2.38",
3
+ "version": "0.2.40",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -1,15 +0,0 @@
1
- import { Command } from "@lookiero/messaging";
2
- declare const BOOK_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "book_size_replaceable_product_variants_for_checkout_item";
3
- interface BookSizeReplaceableProductVariantsForCheckoutItemPayload {
4
- readonly aggregateId: string;
5
- readonly checkoutId: string;
6
- readonly checkoutItemId: string;
7
- }
8
- interface BookSizeReplaceableProductVariantsForCheckoutItem extends Command<typeof BOOK_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM>, BookSizeReplaceableProductVariantsForCheckoutItemPayload {
9
- }
10
- interface BookSizeReplaceableProductVariantsForCheckoutItemFunction {
11
- (payload: BookSizeReplaceableProductVariantsForCheckoutItemPayload): BookSizeReplaceableProductVariantsForCheckoutItem;
12
- }
13
- declare const bookSizeReplaceableProductVariantsForCheckoutItem: BookSizeReplaceableProductVariantsForCheckoutItemFunction;
14
- export type { BookSizeReplaceableProductVariantsForCheckoutItem };
15
- export { BOOK_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, bookSizeReplaceableProductVariantsForCheckoutItem };
@@ -1,7 +0,0 @@
1
- import { command } from "@lookiero/messaging";
2
- const BOOK_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "book_size_replaceable_product_variants_for_checkout_item";
3
- const bookSizeReplaceableProductVariantsForCheckoutItem = ({ aggregateId, ...payload }) => ({
4
- ...command({ aggregateId, name: BOOK_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM }),
5
- ...payload,
6
- });
7
- export { BOOK_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, bookSizeReplaceableProductVariantsForCheckoutItem };
@@ -1,15 +0,0 @@
1
- import { CommandStatus } from "@lookiero/messaging-react";
2
- interface BookFunction {
3
- (): Promise<void>;
4
- }
5
- declare type UseBookSizeReplaceableProductVariantsForCheckoutItem = [book: BookFunction, status: CommandStatus];
6
- interface UseBookSizeReplaceableProductVariantsForCheckoutItemFunctionArgs {
7
- readonly checkoutId: string;
8
- readonly checkoutItemId: string;
9
- readonly checkoutBookingId: string;
10
- }
11
- interface UseBookSizeReplaceableProductVariantsForCheckoutItemFunction {
12
- (args: UseBookSizeReplaceableProductVariantsForCheckoutItemFunctionArgs): UseBookSizeReplaceableProductVariantsForCheckoutItem;
13
- }
14
- declare const useBookSizeReplaceableProductVariantsForCheckoutItem: UseBookSizeReplaceableProductVariantsForCheckoutItemFunction;
15
- export { useBookSizeReplaceableProductVariantsForCheckoutItem };
@@ -1,14 +0,0 @@
1
- import { useCommand } from "@lookiero/messaging-react";
2
- import { useCallback } from "react";
3
- import { v4 as uuid } from "uuid";
4
- import { bookSizeReplaceableProductVariantsForCheckoutItem } from "../../../../domain/checkoutBooking/command/bookSizeReplaceableProductVariantsForCheckoutItem";
5
- const useBookSizeReplaceableProductVariantsForCheckoutItem = ({ checkoutId, checkoutItemId, checkoutBookingId }) => {
6
- const [commandBus, status] = useCommand();
7
- const book = useCallback(async () => await commandBus(bookSizeReplaceableProductVariantsForCheckoutItem({
8
- aggregateId: checkoutBookingId || uuid(),
9
- checkoutId,
10
- checkoutItemId,
11
- })), [checkoutBookingId, checkoutId, checkoutItemId, commandBus]);
12
- return [book, status];
13
- };
14
- export { useBookSizeReplaceableProductVariantsForCheckoutItem };
@@ -1,3 +0,0 @@
1
- import { BookedSizeReplaceableProductVariantsProjection } from "../../../projection/bookedSizeReplaceableProductVariants/viewBookedSizeReplaceableProductVariantsForCheckoutItem";
2
- declare const bookedSizeReplaceableProductVariants: BookedSizeReplaceableProductVariantsProjection;
3
- export { bookedSizeReplaceableProductVariants };
@@ -1,17 +0,0 @@
1
- const bookedSizeReplaceableProductVariants = {
2
- booking: "b00e2c2d-7d9c-4808-88a4-e1c845ae6889",
3
- productVariants: [
4
- {
5
- id: "383fab95-56eb-4639-bb18-530ab792b4d3",
6
- size: {
7
- id: "4f8a26b8-8d2d-4012-b49a-7d2820095598",
8
- europe: "S",
9
- lookiero: "S",
10
- uk: "S",
11
- it: "S",
12
- unique: false,
13
- },
14
- },
15
- ],
16
- };
17
- export { bookedSizeReplaceableProductVariants };
@@ -1,34 +0,0 @@
1
- import { BookedSizeReplaceableProductVariantsForCheckoutItemView, BookedSizeReplaceableProductVariantsProjection } from "../../../projection/bookedSizeReplaceableProductVariants/viewBookedSizeReplaceableProductVariantsForCheckoutItem";
2
- import { HttpPostFunction } from "../../delivery/http/httpClient";
3
- interface SizeDto {
4
- readonly id: string;
5
- readonly lookiero: string;
6
- readonly uk: string;
7
- readonly it: string;
8
- readonly europe: string;
9
- readonly unique: boolean;
10
- readonly visual_order?: number;
11
- }
12
- interface ProductVariantDto {
13
- readonly id: string;
14
- readonly size: SizeDto;
15
- }
16
- interface BookedSizeReplaceableProductVariantsDto {
17
- readonly booking: string | null;
18
- readonly product_variants: ProductVariantDto[];
19
- }
20
- interface ToBookedSizeReplaceableProductVariantsFunction {
21
- (bookedSizeReplaceableProductVariants: BookedSizeReplaceableProductVariantsDto): BookedSizeReplaceableProductVariantsProjection;
22
- }
23
- declare const toBookedSizeReplaceableProductVariants: ToBookedSizeReplaceableProductVariantsFunction;
24
- interface HttpBookedSizeReplaceableProductVariantsForCheckoutItemView extends BookedSizeReplaceableProductVariantsForCheckoutItemView {
25
- }
26
- interface HttpBookedSizeReplaceableProductVariantsForCheckoutItemViewFunctionArgs {
27
- readonly httpPost: HttpPostFunction;
28
- }
29
- interface HttpBookedSizeReplaceableProductVariantsForCheckoutItemViewFunction {
30
- (args: HttpBookedSizeReplaceableProductVariantsForCheckoutItemViewFunctionArgs): HttpBookedSizeReplaceableProductVariantsForCheckoutItemView;
31
- }
32
- declare const httpBookedSizeReplaceableProductVariantsForCheckoutItemView: HttpBookedSizeReplaceableProductVariantsForCheckoutItemViewFunction;
33
- export type { BookedSizeReplaceableProductVariantsDto };
34
- export { toBookedSizeReplaceableProductVariants, httpBookedSizeReplaceableProductVariantsForCheckoutItemView };
@@ -1,26 +0,0 @@
1
- const toSize = (size) => ({
2
- id: size.id,
3
- lookiero: size.lookiero,
4
- uk: size.uk,
5
- it: size.it,
6
- europe: size.europe,
7
- unique: size.unique,
8
- visualOrder: size.visual_order,
9
- });
10
- const toProductVariant = (productVariant) => ({
11
- id: productVariant.id,
12
- size: toSize(productVariant.size),
13
- });
14
- const toBookedSizeReplaceableProductVariants = (bookedSizeReplaceableProductVariants) => ({
15
- booking: bookedSizeReplaceableProductVariants.booking,
16
- productVariants: bookedSizeReplaceableProductVariants.product_variants.map(toProductVariant),
17
- });
18
- const httpBookedSizeReplaceableProductVariantsForCheckoutItemView = ({ httpPost }) => async ({ checkoutItemId, signal }) => {
19
- const response = await httpPost({
20
- endpoint: "/view-booked-size-replaceable-product-variants-for-checkout-item",
21
- body: { checkout_item_id: checkoutItemId },
22
- signal,
23
- });
24
- return response.status === 404 ? null : toBookedSizeReplaceableProductVariants((await response.json()).result);
25
- };
26
- export { toBookedSizeReplaceableProductVariants, httpBookedSizeReplaceableProductVariantsForCheckoutItemView };
@@ -1,10 +0,0 @@
1
- import { UseQueryFunctionResult } from "@lookiero/messaging-react";
2
- import { BookedSizeReplaceableProductVariantsProjection } from "../../../../projection/bookedSizeReplaceableProductVariants/viewBookedSizeReplaceableProductVariantsForCheckoutItem";
3
- interface UseViewBookedSizeReplaceableProductVariantsForCheckoutItemFunctionArgs {
4
- readonly checkoutItemId: string;
5
- }
6
- interface UseViewBookedSizeReplaceableProductVariantsForCheckoutItemFunction {
7
- (args: UseViewBookedSizeReplaceableProductVariantsForCheckoutItemFunctionArgs): UseQueryFunctionResult<BookedSizeReplaceableProductVariantsProjection>;
8
- }
9
- declare const useViewBookedSizeReplaceableProductVariantsForCheckoutItem: UseViewBookedSizeReplaceableProductVariantsForCheckoutItemFunction;
10
- export { useViewBookedSizeReplaceableProductVariantsForCheckoutItem };
@@ -1,9 +0,0 @@
1
- import { useQuery } from "@lookiero/messaging-react";
2
- import { viewBookedSizeReplaceableProductVariantsForCheckoutItem, } from "../../../../projection/bookedSizeReplaceableProductVariants/viewBookedSizeReplaceableProductVariantsForCheckoutItem";
3
- import { MESSAGING_CONTEXT_ID } from "../../../delivery/baseBootstrap";
4
- const useViewBookedSizeReplaceableProductVariantsForCheckoutItem = ({ checkoutItemId }) => useQuery({
5
- query: viewBookedSizeReplaceableProductVariantsForCheckoutItem({ checkoutItemId }),
6
- contextId: MESSAGING_CONTEXT_ID,
7
- options: { staleTime: Infinity },
8
- });
9
- export { useViewBookedSizeReplaceableProductVariantsForCheckoutItem };
@@ -1,45 +0,0 @@
1
- import { CheckoutItemStatus } from "../../../domain/checkoutItem/model/checkoutItem";
2
- import { CheckoutItemProjection, Currency, MediaPerspective } from "../../../projection/checkoutItem/checkoutItem";
3
- interface CheckoutItemDto {
4
- readonly id: string;
5
- readonly status: CheckoutItemStatus;
6
- readonly price: {
7
- readonly amount: number;
8
- readonly currency: Currency;
9
- readonly discounted_price?: {
10
- readonly amount: number;
11
- readonly percentage: number;
12
- };
13
- };
14
- readonly replaced_for?: string;
15
- readonly feedback: Record<string, string>;
16
- readonly product_variant: {
17
- readonly id: string;
18
- readonly media: {
19
- readonly id: string;
20
- readonly url: string;
21
- readonly perspective: MediaPerspective;
22
- }[];
23
- readonly brand: string;
24
- readonly name: string;
25
- readonly size: {
26
- readonly id: string;
27
- readonly lookiero: string;
28
- readonly uk: string;
29
- readonly it: string;
30
- readonly europe: string;
31
- readonly unique: boolean;
32
- readonly visual_order?: number;
33
- };
34
- readonly color: {
35
- readonly id: string;
36
- readonly label: string;
37
- };
38
- };
39
- }
40
- interface ToCheckoutItemProjectionFunction {
41
- (checkoutItemDto: CheckoutItemDto): CheckoutItemProjection;
42
- }
43
- declare const toCheckoutItemProjection: ToCheckoutItemProjectionFunction;
44
- export type { CheckoutItemDto };
45
- export { toCheckoutItemProjection };
@@ -1,40 +0,0 @@
1
- const toCheckoutItemProjection = (checkoutItemDto) => ({
2
- id: checkoutItemDto.id,
3
- status: checkoutItemDto.status,
4
- price: {
5
- amount: checkoutItemDto.price.amount,
6
- currency: checkoutItemDto.price.currency,
7
- discountedPrice: checkoutItemDto.price.discounted_price
8
- ? {
9
- amount: checkoutItemDto.price.discounted_price.amount,
10
- percentage: checkoutItemDto.price.discounted_price.percentage,
11
- }
12
- : undefined,
13
- },
14
- replacedFor: checkoutItemDto.replaced_for,
15
- feedback: checkoutItemDto.feedback,
16
- productVariant: {
17
- id: checkoutItemDto.product_variant.id,
18
- media: checkoutItemDto.product_variant.media.map((media) => ({
19
- id: media.id,
20
- url: media.url,
21
- perspective: media.perspective,
22
- })),
23
- brand: checkoutItemDto.product_variant.brand,
24
- name: checkoutItemDto.product_variant.name,
25
- size: {
26
- id: checkoutItemDto.product_variant.size.id,
27
- lookiero: checkoutItemDto.product_variant.size.lookiero,
28
- uk: checkoutItemDto.product_variant.size.uk,
29
- it: checkoutItemDto.product_variant.size.it,
30
- europe: checkoutItemDto.product_variant.size.europe,
31
- unique: checkoutItemDto.product_variant.size.unique,
32
- visualOrder: checkoutItemDto.product_variant.size.visual_order,
33
- },
34
- color: {
35
- id: checkoutItemDto.product_variant.color.id,
36
- label: checkoutItemDto.product_variant.color.label,
37
- },
38
- },
39
- });
40
- export { toCheckoutItemProjection };
@@ -1,3 +0,0 @@
1
- import { FeedbackProjection } from "../../../projection/feedback/feedback";
2
- declare const feedback: FeedbackProjection;
3
- export { feedback };
@@ -1,6 +0,0 @@
1
- const feedback = {
2
- ["0ad1dba8-b02c-4121-a1e3-981f1c30800d"]: "9251dc2c-d76a-484d-9299-346929af932f",
3
- ["542c4d24-e1da-484f-8c3a-7d89ee135adc"]: "68c0bb98-b00a-4b86-af43-528fe903cb69",
4
- ["1123a37d-bc00-43a4-9d28-cee1dfaf356c"]: "Free text comment",
5
- };
6
- export { feedback };
@@ -1,14 +0,0 @@
1
- import { ReturnQuestionProjection, ReturnQuestionType } from "../../../projection/returnQuestion/returnQuestion";
2
- interface ReturnQuestionDto {
3
- readonly id: string;
4
- readonly name: string;
5
- readonly placeholder?: string;
6
- readonly type: ReturnQuestionType;
7
- readonly children?: ReturnQuestionDto[];
8
- }
9
- interface ToReturnQuestionsProjectionFunction {
10
- (returnQuestionsDto: ReturnQuestionDto[]): ReturnQuestionProjection[];
11
- }
12
- declare const toReturnQuestionsProjection: ToReturnQuestionsProjectionFunction;
13
- export type { ReturnQuestionDto };
14
- export { toReturnQuestionsProjection };
@@ -1,9 +0,0 @@
1
- const toReturnQuestionProjection = (returnQuestionDto) => ({
2
- id: returnQuestionDto.id,
3
- name: returnQuestionDto.name,
4
- placeholder: returnQuestionDto.placeholder,
5
- type: returnQuestionDto.type,
6
- children: returnQuestionDto.children ? toReturnQuestionsProjection(returnQuestionDto.children) : undefined,
7
- });
8
- const toReturnQuestionsProjection = (returnQuestionsDto) => returnQuestionsDto.map(toReturnQuestionProjection);
9
- export { toReturnQuestionsProjection };
@@ -1,33 +0,0 @@
1
- import { CancelableQueryViewArgs, Query, QueryHandlerFunction, QueryHandlerFunctionArgs } from "@lookiero/messaging";
2
- import { SizeProjection } from "../shared/size";
3
- interface ProductVariant {
4
- readonly id: string;
5
- readonly size: SizeProjection;
6
- }
7
- interface BookedSizeReplaceableProductVariantsProjection {
8
- readonly booking: string | null;
9
- readonly productVariants: ProductVariant[];
10
- }
11
- declare const VIEW_BOOKED_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "view_booked_size_replaceable_product_variants_for_checkout_item";
12
- interface ViewBookedSizeReplaceableProductVariantsForCheckoutItemPayload {
13
- readonly checkoutItemId: string;
14
- }
15
- interface ViewBookedSizeReplaceableProductVariantsForCheckoutItem extends Query<typeof VIEW_BOOKED_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM>, ViewBookedSizeReplaceableProductVariantsForCheckoutItemPayload {
16
- }
17
- interface ViewBookedSizeReplaceableProductVariantsForCheckoutItemFunction {
18
- (payload: ViewBookedSizeReplaceableProductVariantsForCheckoutItemPayload): ViewBookedSizeReplaceableProductVariantsForCheckoutItem;
19
- }
20
- declare const viewBookedSizeReplaceableProductVariantsForCheckoutItem: ViewBookedSizeReplaceableProductVariantsForCheckoutItemFunction;
21
- declare type ViewBookedSizeReplaceableProductVariantsForCheckoutItemResult = BookedSizeReplaceableProductVariantsProjection | null;
22
- interface BookedSizeReplaceableProductVariantsForCheckoutItemViewArgs extends CancelableQueryViewArgs {
23
- readonly checkoutItemId: string;
24
- }
25
- interface BookedSizeReplaceableProductVariantsForCheckoutItemView {
26
- (args: BookedSizeReplaceableProductVariantsForCheckoutItemViewArgs): Promise<ViewBookedSizeReplaceableProductVariantsForCheckoutItemResult>;
27
- }
28
- interface ViewBookedSizeReplaceableProductVariantsForCheckoutItemHandlerFunctionArgs extends QueryHandlerFunctionArgs {
29
- readonly view: BookedSizeReplaceableProductVariantsForCheckoutItemView;
30
- }
31
- declare const viewBookedSizeReplaceableProductVariantsForCheckoutItemHandler: QueryHandlerFunction<ViewBookedSizeReplaceableProductVariantsForCheckoutItem, ViewBookedSizeReplaceableProductVariantsForCheckoutItemResult, ViewBookedSizeReplaceableProductVariantsForCheckoutItemHandlerFunctionArgs>;
32
- export type { ProductVariant, BookedSizeReplaceableProductVariantsProjection, BookedSizeReplaceableProductVariantsForCheckoutItemView, };
33
- export { VIEW_BOOKED_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, viewBookedSizeReplaceableProductVariantsForCheckoutItem, viewBookedSizeReplaceableProductVariantsForCheckoutItemHandler, };
@@ -1,8 +0,0 @@
1
- import { query, } from "@lookiero/messaging";
2
- const VIEW_BOOKED_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM = "view_booked_size_replaceable_product_variants_for_checkout_item";
3
- const viewBookedSizeReplaceableProductVariantsForCheckoutItem = (payload) => ({
4
- ...query({ name: VIEW_BOOKED_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM }),
5
- ...payload,
6
- });
7
- const viewBookedSizeReplaceableProductVariantsForCheckoutItemHandler = ({ view, signal }) => async ({ checkoutItemId }) => view({ checkoutItemId, signal });
8
- export { VIEW_BOOKED_SIZE_REPLACEABLE_PRODUCT_VARIANTS_FOR_CHECKOUT_ITEM, viewBookedSizeReplaceableProductVariantsForCheckoutItem, viewBookedSizeReplaceableProductVariantsForCheckoutItemHandler, };