From 10bcbf982af451ac67c3a5e09291e2fca39e5d7c Mon Sep 17 00:00:00 2001 From: user Date: Mon, 20 Oct 2025 22:27:06 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=84=20cleanup:=20order=20with=203=20ke?= =?UTF-8?q?y=20relations,=20and=20ckflow=20now=20upto=20speeded?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/lib/domains/ckflow/repository.ts | 50 +- .../ckflow/view/active-sessions-list.svelte | 32 +- .../ckflow/view/back-to-payment-dialog.svelte | 8 +- .../domains/ckflow/view/session-detail.svelte | 80 +- .../view/session-history-detail-modal.svelte | 87 +- .../ckflow/view/session-history-list.svelte | 20 +- .../ckflow/view/session-timeline.svelte | 10 +- .../src/lib/domains/order/data/entities.ts | 1 + .../src/lib/domains/order/data/repository.ts | 4 +- .../domains/order/view/order-details.svelte | 5 - .../domains/order/view/order-main-info.svelte | 8 +- .../domains/order/view/order-misc-info.svelte | 6 +- .../src/lib/domains/paymentinfo/repository.ts | 10 +- .../src/routes/(main)/data/[uid]/+page.svelte | 14 +- .../src/lib/domains/order/data/repository.ts | 10 +- .../src/lib/domains/order/domain/router.ts | 28 +- .../domains/passengerinfo/data/repository.ts | 2 +- .../passengerinfo/domain/controller.ts | 6 +- .../domains/paymentinfo/data/repository.ts | 18 +- .../checkout/flight-checkout.vm.svelte.ts | 18 +- ...ude_yorkes.sql => 0000_far_jack_power.sql} | 8 +- .../migrations/0001_wonderful_nico_minoru.sql | 2 - .../db/migrations/meta/0000_snapshot.json | 30 +- .../db/migrations/meta/0001_snapshot.json | 1030 ----------------- packages/db/migrations/meta/_journal.json | 11 +- packages/db/schema/index.ts | 15 +- .../logic/domains/ckflow/data/entities.ts | 29 +- packages/logic/domains/order/data/enums.ts | 8 + 28 files changed, 190 insertions(+), 1360 deletions(-) rename packages/db/migrations/{0000_large_gertrude_yorkes.sql => 0000_far_jack_power.sql} (95%) delete mode 100644 packages/db/migrations/0001_wonderful_nico_minoru.sql delete mode 100644 packages/db/migrations/meta/0001_snapshot.json create mode 100644 packages/logic/domains/order/data/enums.ts diff --git a/apps/admin/src/lib/domains/ckflow/repository.ts b/apps/admin/src/lib/domains/ckflow/repository.ts index b4fa34b..b09cbb2 100644 --- a/apps/admin/src/lib/domains/ckflow/repository.ts +++ b/apps/admin/src/lib/domains/ckflow/repository.ts @@ -1,3 +1,6 @@ +import { and, desc, eq, type Database } from "@pkg/db"; +import { checkoutFlowSession, product } from "@pkg/db/schema"; +import { getError, Logger } from "@pkg/logger"; import { ERROR_CODES, type Result } from "@pkg/result"; import { CKActionType, @@ -5,14 +8,11 @@ import { type FlowInfo, type PendingAction, } from "./data"; -import { getError, Logger } from "@pkg/logger"; -import { and, desc, eq, type Database } from "@pkg/db"; -import { checkoutFlowSession, flightTicketInfo } from "@pkg/db/schema"; export class CheckoutFlowRepository { constructor(private db: Database) {} - // Common method to parse and enrich flow info with ticket details + // Common method to parse and enrich flow info with product details private async parseFlowInfo( sessionData: any, includeStaleness = true, @@ -43,48 +43,30 @@ export class CheckoutFlowRepository { : false; } - // Fetch ticket info if we have a ticket ID - let ticketInfo = undefined; - if (sessionData.ticketId) { + // Fetch product info if we have a product ID + let productInfo = undefined; + if (sessionData.productId) { try { - const ticketResult = - await this.db.query.flightTicketInfo.findFirst({ - where: eq(flightTicketInfo.id, sessionData.ticketId), - }); - - if (ticketResult) { - ticketInfo = { - id: ticketResult.id, - ticketId: ticketResult.ticketId, - departure: ticketResult.departure, - arrival: ticketResult.arrival, - departureDate: ticketResult.departureDate - .toISOString() - .split("T")[0], - returnDate: ticketResult.returnDate - ? ticketResult.returnDate - .toISOString() - .split("T")[0] - : undefined, - flightType: ticketResult.flightType, - cabinClass: ticketResult.cabinClass, - priceDetails: ticketResult.priceDetails as any, - }; + const prodResult = await this.db.query.product.findFirst({ + where: eq(product.id, sessionData.productId), + }); + if (prodResult) { + productInfo = { ...prodResult }; } } catch (err) { Logger.warn( - "Failed to fetch ticket info for session detail", + "Failed to fetch product info for session detail", err, ); - // Continue without ticket info - it's optional + // Continue without product info - it's optional } } // Prepare dates for the model const flowInfoData = { ...sessionData, - ticketInfo, - ticketId: sessionData.ticketId, + productInfo: productInfo, + productId: sessionData.productId, pendingActions: sessionData.pendingActions as any, personalInfo: sessionData.personalInfo as any, paymentInfo: sessionData.paymentInfo as any, diff --git a/apps/admin/src/lib/domains/ckflow/view/active-sessions-list.svelte b/apps/admin/src/lib/domains/ckflow/view/active-sessions-list.svelte index 35261ab..57f9691 100644 --- a/apps/admin/src/lib/domains/ckflow/view/active-sessions-list.svelte +++ b/apps/admin/src/lib/domains/ckflow/view/active-sessions-list.svelte @@ -1,18 +1,8 @@ diff --git a/apps/admin/src/lib/domains/order/view/order-main-info.svelte b/apps/admin/src/lib/domains/order/view/order-main-info.svelte index 46912f1..6946c60 100644 --- a/apps/admin/src/lib/domains/order/view/order-main-info.svelte +++ b/apps/admin/src/lib/domains/order/view/order-main-info.svelte @@ -1,12 +1,12 @@