-
{t('title')}
+
+ {t('title')}
+
{locales.map(locale => {
@@ -74,7 +76,7 @@ export default function LanguageSwitcher() {
}}
className={`flex items-center justify-between rounded-md px-3 py-2 text-sm transition-colors ${
isActive
- ? 'bg-(--accent-primary)/10 text-(--accent-primary) font-medium'
+ ? 'bg-(--accent-primary)/10 font-medium text-(--accent-primary)'
: 'text-muted-foreground hover:bg-secondary hover:text-foreground active:bg-secondary'
}`}
>
diff --git a/frontend/components/shop/header/CartButton.tsx b/frontend/components/shop/header/CartButton.tsx
index 18f1f58d..a692f24f 100644
--- a/frontend/components/shop/header/CartButton.tsx
+++ b/frontend/components/shop/header/CartButton.tsx
@@ -26,11 +26,11 @@ export function CartButton() {
href="/shop/cart"
aria-label={label}
title={label}
- className="text-muted-foreground hover:bg-secondary active:bg-secondary hover:text-(--accent-primary) relative flex h-9 w-9 items-center justify-center rounded-full border border-transparent transition-colors hover:border-gray-200 dark:hover:border-neutral-800"
+ className="text-muted-foreground hover:bg-secondary active:bg-secondary relative flex h-9 w-9 items-center justify-center rounded-full border border-transparent transition-colors hover:border-gray-200 hover:text-(--accent-primary) dark:hover:border-neutral-800"
>
{showCount && (
-
+
{badgeText}
)}
diff --git a/frontend/components/theme/ThemeToggle.tsx b/frontend/components/theme/ThemeToggle.tsx
index 8dfbf30a..44323921 100644
--- a/frontend/components/theme/ThemeToggle.tsx
+++ b/frontend/components/theme/ThemeToggle.tsx
@@ -17,7 +17,11 @@ const themes = [
export function ThemeToggle() {
const { theme, setTheme } = useTheme();
const t = useTranslations('aria');
- const mounted = useSyncExternalStore(emptySubscribe, () => true, () => false);
+ const mounted = useSyncExternalStore(
+ emptySubscribe,
+ () => true,
+ () => false
+ );
if (!mounted) {
return (
diff --git a/frontend/db/queries/shop/admin-orders.ts b/frontend/db/queries/shop/admin-orders.ts
index 59e9ffcf..189b2f40 100644
--- a/frontend/db/queries/shop/admin-orders.ts
+++ b/frontend/db/queries/shop/admin-orders.ts
@@ -3,7 +3,12 @@ import 'server-only';
import { count, desc, eq, sql } from 'drizzle-orm';
import { db } from '@/db';
-import { orderItems, orderShipping, orders, shippingShipments } from '@/db/schema';
+import {
+ orderItems,
+ orderShipping,
+ orders,
+ shippingShipments,
+} from '@/db/schema';
import type { CurrencyCode } from '@/lib/shop/currency';
import { toDbMoney } from '@/lib/shop/money';
import type { PaymentProvider, PaymentStatus } from '@/lib/shop/payments';
@@ -203,7 +208,8 @@ export async function getAdminOrderDetail(
shipmentStatus: rows[0]?.shipping.shipmentStatus ?? null,
shipmentAttemptCount: rows[0]?.shipping.shipmentAttemptCount ?? null,
shipmentLastErrorCode: rows[0]?.shipping.shipmentLastErrorCode ?? null,
- shipmentLastErrorMessage: rows[0]?.shipping.shipmentLastErrorMessage ?? null,
+ shipmentLastErrorMessage:
+ rows[0]?.shipping.shipmentLastErrorMessage ?? null,
shippingAddress:
(rows[0]?.shipping.shippingAddress as Record | null) ??
null,
diff --git a/frontend/db/schema/notifications.ts b/frontend/db/schema/notifications.ts
index 0d4e3bf9..6fec9715 100644
--- a/frontend/db/schema/notifications.ts
+++ b/frontend/db/schema/notifications.ts
@@ -1,11 +1,5 @@
import { relations, sql } from 'drizzle-orm';
-import {
- boolean,
- jsonb,
- pgTable,
- text,
- timestamp,
-} from 'drizzle-orm/pg-core';
+import { boolean, jsonb, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
import { users } from './users';
diff --git a/frontend/db/schema/shop.ts b/frontend/db/schema/shop.ts
index 7b5de334..090f904c 100644
--- a/frontend/db/schema/shop.ts
+++ b/frontend/db/schema/shop.ts
@@ -972,7 +972,10 @@ export const notificationOutbox = pgTable(
t.leaseExpiresAt
),
index('notification_outbox_order_created_idx').on(t.orderId, t.createdAt),
- index('notification_outbox_template_status_idx').on(t.templateKey, t.status),
+ index('notification_outbox_template_status_idx').on(
+ t.templateKey,
+ t.status
+ ),
check(
'notification_outbox_source_domain_chk',
sql`${t.sourceDomain} in ('shipping_event','payment_event')`
@@ -1039,8 +1042,14 @@ export const returnRequests = pgTable(
uniqueIndex('return_requests_order_id_uq').on(table.orderId),
uniqueIndex('return_requests_id_order_id_uq').on(table.id, table.orderId),
uniqueIndex('return_requests_idempotency_key_uq').on(table.idempotencyKey),
- index('return_requests_status_created_idx').on(table.status, table.createdAt),
- index('return_requests_user_id_created_idx').on(table.userId, table.createdAt),
+ index('return_requests_status_created_idx').on(
+ table.status,
+ table.createdAt
+ ),
+ index('return_requests_user_id_created_idx').on(
+ table.userId,
+ table.createdAt
+ ),
check(
'return_requests_refund_amount_minor_non_negative_chk',
sql`${table.refundAmountMinor} >= 0`
diff --git a/frontend/drizzle/meta/0016_snapshot.json b/frontend/drizzle/meta/0016_snapshot.json
index 6362eb10..eec6ad2a 100644
--- a/frontend/drizzle/meta/0016_snapshot.json
+++ b/frontend/drizzle/meta/0016_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -287,12 +278,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -338,12 +325,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -351,10 +334,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -436,12 +416,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -481,12 +457,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -494,10 +466,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -564,12 +533,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -645,12 +610,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -658,12 +619,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -671,12 +628,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -876,12 +829,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -889,12 +838,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -940,12 +885,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -953,10 +894,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1036,12 +974,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1087,12 +1021,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1100,10 +1030,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1205,12 +1132,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1220,10 +1143,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1471,12 +1391,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1484,12 +1400,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1727,12 +1639,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1740,12 +1648,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1894,12 +1798,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1907,12 +1807,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2064,12 +1960,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2077,12 +1969,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2251,12 +2139,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2264,12 +2148,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -2523,12 +2403,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2538,9 +2414,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -2876,12 +2750,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3019,12 +2889,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3358,12 +3224,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3472,9 +3334,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -3543,12 +3403,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3564,18 +3420,12 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -3615,11 +3465,7 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
}
},
"schemas": {},
@@ -3632,4 +3478,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0017_snapshot.json b/frontend/drizzle/meta/0017_snapshot.json
index 9fc9b17c..6d1f42a6 100644
--- a/frontend/drizzle/meta/0017_snapshot.json
+++ b/frontend/drizzle/meta/0017_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1549,12 +1465,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1562,12 +1474,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1805,12 +1713,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1818,12 +1722,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1972,12 +1872,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1985,12 +1881,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2142,12 +2034,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2155,12 +2043,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2479,12 +2363,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2636,12 +2516,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2649,12 +2525,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -2744,12 +2616,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3051,12 +2919,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3066,9 +2930,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -3404,12 +3266,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3547,12 +3405,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3932,12 +3786,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4065,12 +3915,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4179,9 +4025,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -4193,18 +4037,12 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -4244,36 +4082,22 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -4311,4 +4135,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0018_snapshot.json b/frontend/drizzle/meta/0018_snapshot.json
index a3cc5ac3..646c905d 100644
--- a/frontend/drizzle/meta/0018_snapshot.json
+++ b/frontend/drizzle/meta/0018_snapshot.json
@@ -42,9 +42,7 @@
"uniqueConstraints": {
"categories_slug_unique": {
"name": "categories_slug_unique",
- "columns": [
- "slug"
- ],
+ "columns": ["slug"],
"nullsNotDistinct": false
}
},
@@ -80,13 +78,9 @@
"category_translations_category_id_categories_id_fk": {
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
- "columnsFrom": [
- "category_id"
- ],
+ "columnsFrom": ["category_id"],
"tableTo": "categories",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -220,13 +211,9 @@
"notifications_user_id_users_id_fk": {
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -364,13 +351,9 @@
"point_transactions_user_id_users_id_fk": {
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -415,13 +398,9 @@
"question_translations_question_id_questions_id_fk": {
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
- "columnsFrom": [
- "question_id"
- ],
+ "columnsFrom": ["question_id"],
"tableTo": "questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -513,13 +489,9 @@
"questions_category_id_categories_id_fk": {
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
- "columnsFrom": [
- "category_id"
- ],
+ "columnsFrom": ["category_id"],
"tableTo": "categories",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "restrict"
}
@@ -558,13 +530,9 @@
"quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk": {
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
- "columnsFrom": [
- "quiz_answer_id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
"tableTo": "quiz_answers",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -641,13 +606,9 @@
"quiz_answers_quiz_question_id_quiz_questions_id_fk": {
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
- "columnsFrom": [
- "quiz_question_id"
- ],
+ "columnsFrom": ["quiz_question_id"],
"tableTo": "quiz_questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -722,39 +683,27 @@
"quiz_attempt_answers_attempt_id_quiz_attempts_id_fk": {
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "quiz_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk": {
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
- "columnsFrom": [
- "quiz_question_id"
- ],
+ "columnsFrom": ["quiz_question_id"],
"tableTo": "quiz_questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk": {
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
+ "columnsFrom": ["selected_answer_id"],
"tableTo": "quiz_answers",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -953,26 +902,18 @@
"quiz_attempts_user_id_users_id_fk": {
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"quiz_attempts_quiz_id_quizzes_id_fk": {
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
- "columnsFrom": [
- "quiz_id"
- ],
+ "columnsFrom": ["quiz_id"],
"tableTo": "quizzes",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1017,13 +958,9 @@
"quiz_question_content_quiz_question_id_quiz_questions_id_fk": {
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
- "columnsFrom": [
- "quiz_question_id"
- ],
+ "columnsFrom": ["quiz_question_id"],
"tableTo": "quiz_questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1113,13 +1047,9 @@
"quiz_questions_quiz_id_quizzes_id_fk": {
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
- "columnsFrom": [
- "quiz_id"
- ],
+ "columnsFrom": ["quiz_id"],
"tableTo": "quizzes",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1164,13 +1094,9 @@
"quiz_translations_quiz_id_quizzes_id_fk": {
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
- "columnsFrom": [
- "quiz_id"
- ],
+ "columnsFrom": ["quiz_id"],
"tableTo": "quizzes",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1282,13 +1205,9 @@
"quizzes_category_id_categories_id_fk": {
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
- "columnsFrom": [
- "category_id"
- ],
+ "columnsFrom": ["category_id"],
"tableTo": "categories",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "restrict"
}
@@ -1297,10 +1216,7 @@
"uniqueConstraints": {
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
- "columns": [
- "category_id",
- "slug"
- ],
+ "columns": ["category_id", "slug"],
"nullsNotDistinct": false
}
},
@@ -1548,26 +1464,18 @@
"inventory_moves_order_id_orders_id_fk": {
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"inventory_moves_product_id_products_id_fk": {
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
- "columnsFrom": [
- "product_id"
- ],
+ "columnsFrom": ["product_id"],
"tableTo": "products",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "no action"
}
@@ -1804,26 +1712,18 @@
"monobank_events_attempt_id_payment_attempts_id_fk": {
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "payment_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
},
"monobank_events_order_id_orders_id_fk": {
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1971,26 +1871,18 @@
"monobank_payment_cancels_order_id_orders_id_fk": {
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"monobank_payment_cancels_attempt_id_payment_attempts_id_fk": {
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "payment_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -2141,26 +2033,18 @@
"monobank_refunds_order_id_orders_id_fk": {
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"monobank_refunds_attempt_id_payment_attempts_id_fk": {
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "payment_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -2478,13 +2362,9 @@
"np_warehouses_settlement_ref_np_cities_ref_fk": {
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
- "columnsFrom": [
- "settlement_ref"
- ],
+ "columnsFrom": ["settlement_ref"],
"tableTo": "np_cities",
- "columnsTo": [
- "ref"
- ],
+ "columnsTo": ["ref"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -2635,26 +2515,18 @@
"order_items_order_id_orders_id_fk": {
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"order_items_product_id_products_id_fk": {
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
- "columnsFrom": [
- "product_id"
- ],
+ "columnsFrom": ["product_id"],
"tableTo": "products",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "no action"
}
@@ -2743,13 +2615,9 @@
"order_shipping_order_id_orders_id_fk": {
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -3050,13 +2918,9 @@
"orders_user_id_users_id_fk": {
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -3065,9 +2929,7 @@
"uniqueConstraints": {
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
- "columns": [
- "idempotency_key"
- ],
+ "columns": ["idempotency_key"],
"nullsNotDistinct": false
}
},
@@ -3403,13 +3265,9 @@
"payment_attempts_order_id_orders_id_fk": {
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -3546,13 +3404,9 @@
"product_prices_product_id_products_id_fk": {
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
- "columnsFrom": [
- "product_id"
- ],
+ "columnsFrom": ["product_id"],
"tableTo": "products",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -3931,13 +3785,9 @@
"shipping_shipments_order_id_orders_id_fk": {
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -4064,13 +3914,9 @@
"stripe_events_order_id_orders_id_fk": {
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -4178,9 +4024,7 @@
"uniqueConstraints": {
"users_email_unique": {
"name": "users_email_unique",
- "columns": [
- "email"
- ],
+ "columns": ["email"],
"nullsNotDistinct": false
}
},
@@ -4193,18 +4037,12 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -4244,36 +4082,22 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -4311,4 +4135,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0019_snapshot.json b/frontend/drizzle/meta/0019_snapshot.json
index 4c23192a..a4f9580b 100644
--- a/frontend/drizzle/meta/0019_snapshot.json
+++ b/frontend/drizzle/meta/0019_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1549,12 +1465,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1562,12 +1474,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1805,12 +1713,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1818,12 +1722,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1972,12 +1872,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1985,12 +1881,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2142,12 +2034,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2155,12 +2043,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2500,12 +2384,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2657,12 +2537,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2670,12 +2546,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -2765,12 +2637,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3072,12 +2940,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3087,9 +2951,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -3445,12 +3307,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3588,12 +3446,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3973,12 +3827,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4111,12 +3961,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4225,9 +4071,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -4239,18 +4083,12 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -4290,36 +4128,22 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -4357,4 +4181,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0020_snapshot.json b/frontend/drizzle/meta/0020_snapshot.json
index 7b241cf0..c74785fa 100644
--- a/frontend/drizzle/meta/0020_snapshot.json
+++ b/frontend/drizzle/meta/0020_snapshot.json
@@ -42,9 +42,7 @@
"uniqueConstraints": {
"categories_slug_unique": {
"name": "categories_slug_unique",
- "columns": [
- "slug"
- ],
+ "columns": ["slug"],
"nullsNotDistinct": false
}
},
@@ -80,13 +78,9 @@
"category_translations_category_id_categories_id_fk": {
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
- "columnsFrom": [
- "category_id"
- ],
+ "columnsFrom": ["category_id"],
"tableTo": "categories",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -220,13 +211,9 @@
"notifications_user_id_users_id_fk": {
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -364,13 +351,9 @@
"point_transactions_user_id_users_id_fk": {
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -415,13 +398,9 @@
"question_translations_question_id_questions_id_fk": {
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
- "columnsFrom": [
- "question_id"
- ],
+ "columnsFrom": ["question_id"],
"tableTo": "questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -513,13 +489,9 @@
"questions_category_id_categories_id_fk": {
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
- "columnsFrom": [
- "category_id"
- ],
+ "columnsFrom": ["category_id"],
"tableTo": "categories",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "restrict"
}
@@ -558,13 +530,9 @@
"quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk": {
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
- "columnsFrom": [
- "quiz_answer_id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
"tableTo": "quiz_answers",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -641,13 +606,9 @@
"quiz_answers_quiz_question_id_quiz_questions_id_fk": {
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
- "columnsFrom": [
- "quiz_question_id"
- ],
+ "columnsFrom": ["quiz_question_id"],
"tableTo": "quiz_questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -722,39 +683,27 @@
"quiz_attempt_answers_attempt_id_quiz_attempts_id_fk": {
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "quiz_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk": {
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
- "columnsFrom": [
- "quiz_question_id"
- ],
+ "columnsFrom": ["quiz_question_id"],
"tableTo": "quiz_questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk": {
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
+ "columnsFrom": ["selected_answer_id"],
"tableTo": "quiz_answers",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -953,26 +902,18 @@
"quiz_attempts_user_id_users_id_fk": {
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"quiz_attempts_quiz_id_quizzes_id_fk": {
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
- "columnsFrom": [
- "quiz_id"
- ],
+ "columnsFrom": ["quiz_id"],
"tableTo": "quizzes",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1017,13 +958,9 @@
"quiz_question_content_quiz_question_id_quiz_questions_id_fk": {
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
- "columnsFrom": [
- "quiz_question_id"
- ],
+ "columnsFrom": ["quiz_question_id"],
"tableTo": "quiz_questions",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1113,13 +1047,9 @@
"quiz_questions_quiz_id_quizzes_id_fk": {
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
- "columnsFrom": [
- "quiz_id"
- ],
+ "columnsFrom": ["quiz_id"],
"tableTo": "quizzes",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1164,13 +1094,9 @@
"quiz_translations_quiz_id_quizzes_id_fk": {
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
- "columnsFrom": [
- "quiz_id"
- ],
+ "columnsFrom": ["quiz_id"],
"tableTo": "quizzes",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1282,13 +1205,9 @@
"quizzes_category_id_categories_id_fk": {
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
- "columnsFrom": [
- "category_id"
- ],
+ "columnsFrom": ["category_id"],
"tableTo": "categories",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "restrict"
}
@@ -1297,10 +1216,7 @@
"uniqueConstraints": {
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
- "columns": [
- "category_id",
- "slug"
- ],
+ "columns": ["category_id", "slug"],
"nullsNotDistinct": false
}
},
@@ -1548,26 +1464,18 @@
"inventory_moves_order_id_orders_id_fk": {
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"inventory_moves_product_id_products_id_fk": {
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
- "columnsFrom": [
- "product_id"
- ],
+ "columnsFrom": ["product_id"],
"tableTo": "products",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "no action"
}
@@ -1804,26 +1712,18 @@
"monobank_events_attempt_id_payment_attempts_id_fk": {
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "payment_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
},
"monobank_events_order_id_orders_id_fk": {
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -1971,26 +1871,18 @@
"monobank_payment_cancels_order_id_orders_id_fk": {
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"monobank_payment_cancels_attempt_id_payment_attempts_id_fk": {
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "payment_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -2141,26 +2033,18 @@
"monobank_refunds_order_id_orders_id_fk": {
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"monobank_refunds_attempt_id_payment_attempts_id_fk": {
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
- "columnsFrom": [
- "attempt_id"
- ],
+ "columnsFrom": ["attempt_id"],
"tableTo": "payment_attempts",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -2499,13 +2383,9 @@
"np_warehouses_settlement_ref_np_cities_ref_fk": {
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
- "columnsFrom": [
- "settlement_ref"
- ],
+ "columnsFrom": ["settlement_ref"],
"tableTo": "np_cities",
- "columnsTo": [
- "ref"
- ],
+ "columnsTo": ["ref"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -2656,26 +2536,18 @@
"order_items_order_id_orders_id_fk": {
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
},
"order_items_product_id_products_id_fk": {
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
- "columnsFrom": [
- "product_id"
- ],
+ "columnsFrom": ["product_id"],
"tableTo": "products",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "no action"
}
@@ -2764,13 +2636,9 @@
"order_shipping_order_id_orders_id_fk": {
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -3071,13 +2939,9 @@
"orders_user_id_users_id_fk": {
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
- "columnsFrom": [
- "user_id"
- ],
+ "columnsFrom": ["user_id"],
"tableTo": "users",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "set null"
}
@@ -3086,9 +2950,7 @@
"uniqueConstraints": {
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
- "columns": [
- "idempotency_key"
- ],
+ "columns": ["idempotency_key"],
"nullsNotDistinct": false
}
},
@@ -3444,13 +3306,9 @@
"payment_attempts_order_id_orders_id_fk": {
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -3587,13 +3445,9 @@
"product_prices_product_id_products_id_fk": {
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
- "columnsFrom": [
- "product_id"
- ],
+ "columnsFrom": ["product_id"],
"tableTo": "products",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -3972,13 +3826,9 @@
"shipping_shipments_order_id_orders_id_fk": {
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -4110,13 +3960,9 @@
"stripe_events_order_id_orders_id_fk": {
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
- "columnsFrom": [
- "order_id"
- ],
+ "columnsFrom": ["order_id"],
"tableTo": "orders",
- "columnsTo": [
- "id"
- ],
+ "columnsTo": ["id"],
"onUpdate": "no action",
"onDelete": "cascade"
}
@@ -4224,9 +4070,7 @@
"uniqueConstraints": {
"users_email_unique": {
"name": "users_email_unique",
- "columns": [
- "email"
- ],
+ "columns": ["email"],
"nullsNotDistinct": false
}
},
@@ -4239,18 +4083,12 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -4290,36 +4128,22 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -4357,4 +4181,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0021_snapshot.json b/frontend/drizzle/meta/0021_snapshot.json
index 630ee402..f8193159 100644
--- a/frontend/drizzle/meta/0021_snapshot.json
+++ b/frontend/drizzle/meta/0021_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1492,12 +1408,8 @@
"name": "admin_audit_log_order_id_orders_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1505,12 +1417,8 @@
"name": "admin_audit_log_actor_user_id_users_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "users",
- "columnsFrom": [
- "actor_user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["actor_user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -1720,12 +1628,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1733,12 +1637,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1976,12 +1876,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1989,12 +1885,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2143,12 +2035,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2156,12 +2044,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2313,12 +2197,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2326,12 +2206,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2671,12 +2547,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2828,12 +2700,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2841,12 +2709,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -2936,12 +2800,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3243,12 +3103,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3258,9 +3114,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -3616,12 +3470,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3835,12 +3685,8 @@
"name": "payment_events_order_id_orders_id_fk",
"tableFrom": "payment_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -3848,12 +3694,8 @@
"name": "payment_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "payment_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3970,12 +3812,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4345,12 +4183,8 @@
"name": "shipping_events_order_id_orders_id_fk",
"tableFrom": "shipping_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4358,12 +4192,8 @@
"name": "shipping_events_shipment_id_shipping_shipments_id_fk",
"tableFrom": "shipping_events",
"tableTo": "shipping_shipments",
- "columnsFrom": [
- "shipment_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["shipment_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4544,12 +4374,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4682,12 +4508,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4796,9 +4618,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -4810,18 +4630,12 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -4861,36 +4675,22 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -4928,4 +4728,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0022_snapshot.json b/frontend/drizzle/meta/0022_snapshot.json
index c0a77898..d76541f0 100644
--- a/frontend/drizzle/meta/0022_snapshot.json
+++ b/frontend/drizzle/meta/0022_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1492,12 +1408,8 @@
"name": "admin_audit_log_order_id_orders_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1505,12 +1417,8 @@
"name": "admin_audit_log_actor_user_id_users_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "users",
- "columnsFrom": [
- "actor_user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["actor_user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -1720,12 +1628,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1733,12 +1637,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1976,12 +1876,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1989,12 +1885,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2143,12 +2035,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2156,12 +2044,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2313,12 +2197,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2326,12 +2206,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2671,12 +2547,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2828,12 +2700,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2841,12 +2709,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -2936,12 +2800,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3338,12 +3198,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3353,9 +3209,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -3723,12 +3577,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3942,12 +3792,8 @@
"name": "payment_events_order_id_orders_id_fk",
"tableFrom": "payment_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -3955,12 +3801,8 @@
"name": "payment_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "payment_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4077,12 +3919,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4452,12 +4290,8 @@
"name": "shipping_events_order_id_orders_id_fk",
"tableFrom": "shipping_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4465,12 +4299,8 @@
"name": "shipping_events_shipment_id_shipping_shipments_id_fk",
"tableFrom": "shipping_events",
"tableTo": "shipping_shipments",
- "columnsFrom": [
- "shipment_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["shipment_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4668,12 +4498,8 @@
"name": "shipping_quotes_order_id_orders_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4681,12 +4507,8 @@
"name": "shipping_quotes_offered_by_users_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "users",
- "columnsFrom": [
- "offered_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["offered_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4876,12 +4698,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5014,12 +4832,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5128,9 +4942,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -5142,26 +4954,17 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.fulfillment_mode": {
"name": "fulfillment_mode",
"schema": "public",
- "values": [
- "ua_np",
- "intl"
- ]
+ "values": ["ua_np", "intl"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -5201,11 +5004,7 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.quote_status": {
"name": "quote_status",
@@ -5223,27 +5022,17 @@
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -5281,4 +5070,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0023_snapshot.json b/frontend/drizzle/meta/0023_snapshot.json
index e177fcf1..500e655d 100644
--- a/frontend/drizzle/meta/0023_snapshot.json
+++ b/frontend/drizzle/meta/0023_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1492,12 +1408,8 @@
"name": "admin_audit_log_order_id_orders_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1505,12 +1417,8 @@
"name": "admin_audit_log_actor_user_id_users_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "users",
- "columnsFrom": [
- "actor_user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["actor_user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -1720,12 +1628,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1733,12 +1637,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1976,12 +1876,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1989,12 +1885,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2143,12 +2035,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2156,12 +2044,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2313,12 +2197,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2326,12 +2206,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2600,12 +2476,8 @@
"name": "notification_outbox_order_id_orders_id_fk",
"tableFrom": "notification_outbox",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2945,12 +2817,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3102,12 +2970,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -3115,12 +2979,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -3210,12 +3070,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3612,12 +3468,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3627,9 +3479,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -3997,12 +3847,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4216,12 +4062,8 @@
"name": "payment_events_order_id_orders_id_fk",
"tableFrom": "payment_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4229,12 +4071,8 @@
"name": "payment_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "payment_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4351,12 +4189,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4726,12 +4560,8 @@
"name": "shipping_events_order_id_orders_id_fk",
"tableFrom": "shipping_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4739,12 +4569,8 @@
"name": "shipping_events_shipment_id_shipping_shipments_id_fk",
"tableFrom": "shipping_events",
"tableTo": "shipping_shipments",
- "columnsFrom": [
- "shipment_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["shipment_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4942,12 +4768,8 @@
"name": "shipping_quotes_order_id_orders_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4955,12 +4777,8 @@
"name": "shipping_quotes_offered_by_users_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "users",
- "columnsFrom": [
- "offered_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["offered_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5150,12 +4968,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5288,12 +5102,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5402,9 +5212,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -5416,26 +5224,17 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.fulfillment_mode": {
"name": "fulfillment_mode",
"schema": "public",
- "values": [
- "ua_np",
- "intl"
- ]
+ "values": ["ua_np", "intl"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -5452,10 +5251,7 @@
"public.notification_channel": {
"name": "notification_channel",
"schema": "public",
- "values": [
- "email",
- "sms"
- ]
+ "values": ["email", "sms"]
},
"public.order_status": {
"name": "order_status",
@@ -5483,11 +5279,7 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.quote_status": {
"name": "quote_status",
@@ -5505,27 +5297,17 @@
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -5563,4 +5345,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0024_snapshot.json b/frontend/drizzle/meta/0024_snapshot.json
index e1b0fba3..26a7835f 100644
--- a/frontend/drizzle/meta/0024_snapshot.json
+++ b/frontend/drizzle/meta/0024_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1492,12 +1408,8 @@
"name": "admin_audit_log_order_id_orders_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1505,12 +1417,8 @@
"name": "admin_audit_log_actor_user_id_users_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "users",
- "columnsFrom": [
- "actor_user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["actor_user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -1720,12 +1628,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1733,12 +1637,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1976,12 +1876,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1989,12 +1885,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2143,12 +2035,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2156,12 +2044,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2313,12 +2197,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2326,12 +2206,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2600,12 +2476,8 @@
"name": "notification_outbox_order_id_orders_id_fk",
"tableFrom": "notification_outbox",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2945,12 +2817,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3102,12 +2970,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -3115,12 +2979,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -3210,12 +3070,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3612,12 +3468,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3627,9 +3479,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -3997,12 +3847,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4216,12 +4062,8 @@
"name": "payment_events_order_id_orders_id_fk",
"tableFrom": "payment_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4229,12 +4071,8 @@
"name": "payment_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "payment_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4351,12 +4189,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4707,12 +4541,8 @@
"name": "return_items_return_request_id_return_requests_id_fk",
"tableFrom": "return_items",
"tableTo": "return_requests",
- "columnsFrom": [
- "return_request_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["return_request_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4720,12 +4550,8 @@
"name": "return_items_order_id_orders_id_fk",
"tableFrom": "return_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4733,12 +4559,8 @@
"name": "return_items_order_item_id_order_items_id_fk",
"tableFrom": "return_items",
"tableTo": "order_items",
- "columnsFrom": [
- "order_item_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_item_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -4746,12 +4568,8 @@
"name": "return_items_product_id_products_id_fk",
"tableFrom": "return_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4991,12 +4809,8 @@
"name": "return_requests_order_id_orders_id_fk",
"tableFrom": "return_requests",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5004,12 +4818,8 @@
"name": "return_requests_user_id_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5017,12 +4827,8 @@
"name": "return_requests_approved_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "approved_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["approved_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5030,12 +4836,8 @@
"name": "return_requests_rejected_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "rejected_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["rejected_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5043,12 +4845,8 @@
"name": "return_requests_received_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "received_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["received_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5056,12 +4854,8 @@
"name": "return_requests_refunded_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "refunded_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["refunded_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5237,12 +5031,8 @@
"name": "shipping_events_order_id_orders_id_fk",
"tableFrom": "shipping_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5250,12 +5040,8 @@
"name": "shipping_events_shipment_id_shipping_shipments_id_fk",
"tableFrom": "shipping_events",
"tableTo": "shipping_shipments",
- "columnsFrom": [
- "shipment_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["shipment_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5453,12 +5239,8 @@
"name": "shipping_quotes_order_id_orders_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5466,12 +5248,8 @@
"name": "shipping_quotes_offered_by_users_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "users",
- "columnsFrom": [
- "offered_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["offered_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5661,12 +5439,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5799,12 +5573,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5913,9 +5683,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -5927,26 +5695,17 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.fulfillment_mode": {
"name": "fulfillment_mode",
"schema": "public",
- "values": [
- "ua_np",
- "intl"
- ]
+ "values": ["ua_np", "intl"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -5963,10 +5722,7 @@
"public.notification_channel": {
"name": "notification_channel",
"schema": "public",
- "values": [
- "email",
- "sms"
- ]
+ "values": ["email", "sms"]
},
"public.order_status": {
"name": "order_status",
@@ -5994,11 +5750,7 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.quote_status": {
"name": "quote_status",
@@ -6016,38 +5768,22 @@
"public.return_request_status": {
"name": "return_request_status",
"schema": "public",
- "values": [
- "requested",
- "approved",
- "rejected",
- "received",
- "refunded"
- ]
+ "values": ["requested", "approved", "rejected", "received", "refunded"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -6085,4 +5821,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0025_snapshot.json b/frontend/drizzle/meta/0025_snapshot.json
index 321f84f0..ac7b8046 100644
--- a/frontend/drizzle/meta/0025_snapshot.json
+++ b/frontend/drizzle/meta/0025_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1492,12 +1408,8 @@
"name": "admin_audit_log_order_id_orders_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1505,12 +1417,8 @@
"name": "admin_audit_log_actor_user_id_users_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "users",
- "columnsFrom": [
- "actor_user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["actor_user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -1720,12 +1628,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1733,12 +1637,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1976,12 +1876,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1989,12 +1885,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2143,12 +2035,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2156,12 +2044,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2313,12 +2197,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2326,12 +2206,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2600,12 +2476,8 @@
"name": "notification_outbox_order_id_orders_id_fk",
"tableFrom": "notification_outbox",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2945,12 +2817,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3102,12 +2970,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -3115,12 +2979,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -3255,12 +3115,8 @@
"name": "order_legal_consents_order_id_orders_id_fk",
"tableFrom": "order_legal_consents",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3334,12 +3190,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3736,12 +3588,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3751,9 +3599,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -4121,12 +3967,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4340,12 +4182,8 @@
"name": "payment_events_order_id_orders_id_fk",
"tableFrom": "payment_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4353,12 +4191,8 @@
"name": "payment_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "payment_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4475,12 +4309,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4831,12 +4661,8 @@
"name": "return_items_return_request_id_return_requests_id_fk",
"tableFrom": "return_items",
"tableTo": "return_requests",
- "columnsFrom": [
- "return_request_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["return_request_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4844,12 +4670,8 @@
"name": "return_items_order_id_orders_id_fk",
"tableFrom": "return_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4857,12 +4679,8 @@
"name": "return_items_order_item_id_order_items_id_fk",
"tableFrom": "return_items",
"tableTo": "order_items",
- "columnsFrom": [
- "order_item_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_item_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -4870,12 +4688,8 @@
"name": "return_items_product_id_products_id_fk",
"tableFrom": "return_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5115,12 +4929,8 @@
"name": "return_requests_order_id_orders_id_fk",
"tableFrom": "return_requests",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5128,12 +4938,8 @@
"name": "return_requests_user_id_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5141,12 +4947,8 @@
"name": "return_requests_approved_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "approved_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["approved_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5154,12 +4956,8 @@
"name": "return_requests_rejected_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "rejected_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["rejected_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5167,12 +4965,8 @@
"name": "return_requests_received_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "received_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["received_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5180,12 +4974,8 @@
"name": "return_requests_refunded_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "refunded_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["refunded_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5361,12 +5151,8 @@
"name": "shipping_events_order_id_orders_id_fk",
"tableFrom": "shipping_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5374,12 +5160,8 @@
"name": "shipping_events_shipment_id_shipping_shipments_id_fk",
"tableFrom": "shipping_events",
"tableTo": "shipping_shipments",
- "columnsFrom": [
- "shipment_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["shipment_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5577,12 +5359,8 @@
"name": "shipping_quotes_order_id_orders_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5590,12 +5368,8 @@
"name": "shipping_quotes_offered_by_users_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "users",
- "columnsFrom": [
- "offered_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["offered_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5785,12 +5559,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5923,12 +5693,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -6037,9 +5803,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -6051,26 +5815,17 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.fulfillment_mode": {
"name": "fulfillment_mode",
"schema": "public",
- "values": [
- "ua_np",
- "intl"
- ]
+ "values": ["ua_np", "intl"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -6087,10 +5842,7 @@
"public.notification_channel": {
"name": "notification_channel",
"schema": "public",
- "values": [
- "email",
- "sms"
- ]
+ "values": ["email", "sms"]
},
"public.order_status": {
"name": "order_status",
@@ -6118,11 +5870,7 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.quote_status": {
"name": "quote_status",
@@ -6140,38 +5888,22 @@
"public.return_request_status": {
"name": "return_request_status",
"schema": "public",
- "values": [
- "requested",
- "approved",
- "rejected",
- "received",
- "refunded"
- ]
+ "values": ["requested", "approved", "rejected", "received", "refunded"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -6209,4 +5941,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/0026_snapshot.json b/frontend/drizzle/meta/0026_snapshot.json
index d11f466b..bdfcb084 100644
--- a/frontend/drizzle/meta/0026_snapshot.json
+++ b/frontend/drizzle/meta/0026_snapshot.json
@@ -43,9 +43,7 @@
"categories_slug_unique": {
"name": "categories_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "slug"
- ]
+ "columns": ["slug"]
}
},
"policies": {},
@@ -81,12 +79,8 @@
"name": "category_translations_category_id_categories_id_fk",
"tableFrom": "category_translations",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -94,10 +88,7 @@
"compositePrimaryKeys": {
"category_translations_category_id_locale_pk": {
"name": "category_translations_category_id_locale_pk",
- "columns": [
- "category_id",
- "locale"
- ]
+ "columns": ["category_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -221,12 +212,8 @@
"name": "notifications_user_id_users_id_fk",
"tableFrom": "notifications",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -365,12 +352,8 @@
"name": "point_transactions_user_id_users_id_fk",
"tableFrom": "point_transactions",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -416,12 +399,8 @@
"name": "question_translations_question_id_questions_id_fk",
"tableFrom": "question_translations",
"tableTo": "questions",
- "columnsFrom": [
- "question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -429,10 +408,7 @@
"compositePrimaryKeys": {
"question_translations_question_id_locale_pk": {
"name": "question_translations_question_id_locale_pk",
- "columns": [
- "question_id",
- "locale"
- ]
+ "columns": ["question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -514,12 +490,8 @@
"name": "questions_category_id_categories_id_fk",
"tableFrom": "questions",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -559,12 +531,8 @@
"name": "quiz_answer_translations_quiz_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_answer_translations",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "quiz_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -572,10 +540,7 @@
"compositePrimaryKeys": {
"quiz_answer_translations_quiz_answer_id_locale_pk": {
"name": "quiz_answer_translations_quiz_answer_id_locale_pk",
- "columns": [
- "quiz_answer_id",
- "locale"
- ]
+ "columns": ["quiz_answer_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -642,12 +607,8 @@
"name": "quiz_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -723,12 +684,8 @@
"name": "quiz_attempt_answers_attempt_id_quiz_attempts_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -736,12 +693,8 @@
"name": "quiz_attempt_answers_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -749,12 +702,8 @@
"name": "quiz_attempt_answers_selected_answer_id_quiz_answers_id_fk",
"tableFrom": "quiz_attempt_answers",
"tableTo": "quiz_answers",
- "columnsFrom": [
- "selected_answer_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["selected_answer_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -954,12 +903,8 @@
"name": "quiz_attempts_user_id_users_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -967,12 +912,8 @@
"name": "quiz_attempts_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_attempts",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1018,12 +959,8 @@
"name": "quiz_question_content_quiz_question_id_quiz_questions_id_fk",
"tableFrom": "quiz_question_content",
"tableTo": "quiz_questions",
- "columnsFrom": [
- "quiz_question_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_question_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1031,10 +968,7 @@
"compositePrimaryKeys": {
"quiz_question_content_quiz_question_id_locale_pk": {
"name": "quiz_question_content_quiz_question_id_locale_pk",
- "columns": [
- "quiz_question_id",
- "locale"
- ]
+ "columns": ["quiz_question_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1114,12 +1048,8 @@
"name": "quiz_questions_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_questions",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1165,12 +1095,8 @@
"name": "quiz_translations_quiz_id_quizzes_id_fk",
"tableFrom": "quiz_translations",
"tableTo": "quizzes",
- "columnsFrom": [
- "quiz_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["quiz_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -1178,10 +1104,7 @@
"compositePrimaryKeys": {
"quiz_translations_quiz_id_locale_pk": {
"name": "quiz_translations_quiz_id_locale_pk",
- "columns": [
- "quiz_id",
- "locale"
- ]
+ "columns": ["quiz_id", "locale"]
}
},
"uniqueConstraints": {},
@@ -1283,12 +1206,8 @@
"name": "quizzes_category_id_categories_id_fk",
"tableFrom": "quizzes",
"tableTo": "categories",
- "columnsFrom": [
- "category_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["category_id"],
+ "columnsTo": ["id"],
"onDelete": "restrict",
"onUpdate": "no action"
}
@@ -1298,10 +1217,7 @@
"quizzes_category_id_slug_unique": {
"name": "quizzes_category_id_slug_unique",
"nullsNotDistinct": false,
- "columns": [
- "category_id",
- "slug"
- ]
+ "columns": ["category_id", "slug"]
}
},
"policies": {},
@@ -1492,12 +1408,8 @@
"name": "admin_audit_log_order_id_orders_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1505,12 +1417,8 @@
"name": "admin_audit_log_actor_user_id_users_id_fk",
"tableFrom": "admin_audit_log",
"tableTo": "users",
- "columnsFrom": [
- "actor_user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["actor_user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -1720,12 +1628,8 @@
"name": "inventory_moves_order_id_orders_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -1733,12 +1637,8 @@
"name": "inventory_moves_product_id_products_id_fk",
"tableFrom": "inventory_moves",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -1976,12 +1876,8 @@
"name": "monobank_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -1989,12 +1885,8 @@
"name": "monobank_events_order_id_orders_id_fk",
"tableFrom": "monobank_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2143,12 +2035,8 @@
"name": "monobank_payment_cancels_order_id_orders_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2156,12 +2044,8 @@
"name": "monobank_payment_cancels_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_payment_cancels",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2313,12 +2197,8 @@
"name": "monobank_refunds_order_id_orders_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -2326,12 +2206,8 @@
"name": "monobank_refunds_attempt_id_payment_attempts_id_fk",
"tableFrom": "monobank_refunds",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -2600,12 +2476,8 @@
"name": "notification_outbox_order_id_orders_id_fk",
"tableFrom": "notification_outbox",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -2945,12 +2817,8 @@
"name": "np_warehouses_settlement_ref_np_cities_ref_fk",
"tableFrom": "np_warehouses",
"tableTo": "np_cities",
- "columnsFrom": [
- "settlement_ref"
- ],
- "columnsTo": [
- "ref"
- ],
+ "columnsFrom": ["settlement_ref"],
+ "columnsTo": ["ref"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3102,12 +2970,8 @@
"name": "order_items_order_id_orders_id_fk",
"tableFrom": "order_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -3115,12 +2979,8 @@
"name": "order_items_product_id_products_id_fk",
"tableFrom": "order_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "no action",
"onUpdate": "no action"
}
@@ -3255,12 +3115,8 @@
"name": "order_legal_consents_order_id_orders_id_fk",
"tableFrom": "order_legal_consents",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3334,12 +3190,8 @@
"name": "order_shipping_order_id_orders_id_fk",
"tableFrom": "order_shipping",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -3736,12 +3588,8 @@
"name": "orders_user_id_users_id_fk",
"tableFrom": "orders",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -3751,9 +3599,7 @@
"orders_idempotency_key_unique": {
"name": "orders_idempotency_key_unique",
"nullsNotDistinct": false,
- "columns": [
- "idempotency_key"
- ]
+ "columns": ["idempotency_key"]
}
},
"policies": {},
@@ -4121,12 +3967,8 @@
"name": "payment_attempts_order_id_orders_id_fk",
"tableFrom": "payment_attempts",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4340,12 +4182,8 @@
"name": "payment_events_order_id_orders_id_fk",
"tableFrom": "payment_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4353,12 +4191,8 @@
"name": "payment_events_attempt_id_payment_attempts_id_fk",
"tableFrom": "payment_events",
"tableTo": "payment_attempts",
- "columnsFrom": [
- "attempt_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["attempt_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -4475,12 +4309,8 @@
"name": "product_prices_product_id_products_id_fk",
"tableFrom": "product_prices",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -4831,12 +4661,8 @@
"name": "return_items_return_request_id_return_requests_id_fk",
"tableFrom": "return_items",
"tableTo": "return_requests",
- "columnsFrom": [
- "return_request_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["return_request_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4844,12 +4670,8 @@
"name": "return_items_order_id_orders_id_fk",
"tableFrom": "return_items",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -4857,12 +4679,8 @@
"name": "return_items_order_item_id_order_items_id_fk",
"tableFrom": "return_items",
"tableTo": "order_items",
- "columnsFrom": [
- "order_item_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_item_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -4870,12 +4688,8 @@
"name": "return_items_product_id_products_id_fk",
"tableFrom": "return_items",
"tableTo": "products",
- "columnsFrom": [
- "product_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["product_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -4883,14 +4697,8 @@
"name": "return_items_return_request_order_fk",
"tableFrom": "return_items",
"tableTo": "return_requests",
- "columnsFrom": [
- "return_request_id",
- "order_id"
- ],
- "columnsTo": [
- "id",
- "order_id"
- ],
+ "columnsFrom": ["return_request_id", "order_id"],
+ "columnsTo": ["id", "order_id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5151,12 +4959,8 @@
"name": "return_requests_order_id_orders_id_fk",
"tableFrom": "return_requests",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5164,12 +4968,8 @@
"name": "return_requests_user_id_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "user_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["user_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5177,12 +4977,8 @@
"name": "return_requests_approved_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "approved_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["approved_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5190,12 +4986,8 @@
"name": "return_requests_rejected_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "rejected_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["rejected_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5203,12 +4995,8 @@
"name": "return_requests_received_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "received_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["received_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
},
@@ -5216,12 +5004,8 @@
"name": "return_requests_refunded_by_users_id_fk",
"tableFrom": "return_requests",
"tableTo": "users",
- "columnsFrom": [
- "refunded_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["refunded_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5397,12 +5181,8 @@
"name": "shipping_events_order_id_orders_id_fk",
"tableFrom": "shipping_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5410,12 +5190,8 @@
"name": "shipping_events_shipment_id_shipping_shipments_id_fk",
"tableFrom": "shipping_events",
"tableTo": "shipping_shipments",
- "columnsFrom": [
- "shipment_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["shipment_id"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5613,12 +5389,8 @@
"name": "shipping_quotes_order_id_orders_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
@@ -5626,12 +5398,8 @@
"name": "shipping_quotes_offered_by_users_id_fk",
"tableFrom": "shipping_quotes",
"tableTo": "users",
- "columnsFrom": [
- "offered_by"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["offered_by"],
+ "columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
@@ -5821,12 +5589,8 @@
"name": "shipping_shipments_order_id_orders_id_fk",
"tableFrom": "shipping_shipments",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -5959,12 +5723,8 @@
"name": "stripe_events_order_id_orders_id_fk",
"tableFrom": "stripe_events",
"tableTo": "orders",
- "columnsFrom": [
- "order_id"
- ],
- "columnsTo": [
- "id"
- ],
+ "columnsFrom": ["order_id"],
+ "columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
@@ -6073,9 +5833,7 @@
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
- "columns": [
- "email"
- ]
+ "columns": ["email"]
}
},
"policies": {},
@@ -6087,26 +5845,17 @@
"public.currency": {
"name": "currency",
"schema": "public",
- "values": [
- "USD",
- "UAH"
- ]
+ "values": ["USD", "UAH"]
},
"public.fulfillment_mode": {
"name": "fulfillment_mode",
"schema": "public",
- "values": [
- "ua_np",
- "intl"
- ]
+ "values": ["ua_np", "intl"]
},
"public.inventory_move_type": {
"name": "inventory_move_type",
"schema": "public",
- "values": [
- "reserve",
- "release"
- ]
+ "values": ["reserve", "release"]
},
"public.inventory_status": {
"name": "inventory_status",
@@ -6123,10 +5872,7 @@
"public.notification_channel": {
"name": "notification_channel",
"schema": "public",
- "values": [
- "email",
- "sms"
- ]
+ "values": ["email", "sms"]
},
"public.order_status": {
"name": "order_status",
@@ -6154,11 +5900,7 @@
"public.product_badge": {
"name": "product_badge",
"schema": "public",
- "values": [
- "NEW",
- "SALE",
- "NONE"
- ]
+ "values": ["NEW", "SALE", "NONE"]
},
"public.quote_status": {
"name": "quote_status",
@@ -6176,38 +5918,22 @@
"public.return_request_status": {
"name": "return_request_status",
"schema": "public",
- "values": [
- "requested",
- "approved",
- "rejected",
- "received",
- "refunded"
- ]
+ "values": ["requested", "approved", "rejected", "received", "refunded"]
},
"public.shipping_method_code": {
"name": "shipping_method_code",
"schema": "public",
- "values": [
- "NP_WAREHOUSE",
- "NP_LOCKER",
- "NP_COURIER"
- ]
+ "values": ["NP_WAREHOUSE", "NP_LOCKER", "NP_COURIER"]
},
"public.shipping_payer": {
"name": "shipping_payer",
"schema": "public",
- "values": [
- "customer",
- "merchant"
- ]
+ "values": ["customer", "merchant"]
},
"public.shipping_provider": {
"name": "shipping_provider",
"schema": "public",
- "values": [
- "nova_poshta",
- "ukrposhta"
- ]
+ "values": ["nova_poshta", "ukrposhta"]
},
"public.shipping_shipment_status": {
"name": "shipping_shipment_status",
@@ -6245,4 +5971,4 @@
"schemas": {},
"tables": {}
}
-}
\ No newline at end of file
+}
diff --git a/frontend/drizzle/meta/_journal.json b/frontend/drizzle/meta/_journal.json
index 941263c4..f387f51c 100644
--- a/frontend/drizzle/meta/_journal.json
+++ b/frontend/drizzle/meta/_journal.json
@@ -192,4 +192,4 @@
"breakpoints": true
}
]
-}
\ No newline at end of file
+}
diff --git a/frontend/hooks/useQuizSession.ts b/frontend/hooks/useQuizSession.ts
index 44a4a2c0..43f51945 100644
--- a/frontend/hooks/useQuizSession.ts
+++ b/frontend/hooks/useQuizSession.ts
@@ -35,10 +35,7 @@ type UseQuizSessionParams = {
state: QuizState;
};
-export function useQuizSession({
- quizId,
- state,
-}: UseQuizSessionParams): void {
+export function useQuizSession({ quizId, state }: UseQuizSessionParams): void {
const reloadKey = getQuizReloadKey(quizId);
useEffect(() => {
diff --git a/frontend/lib/achievements.ts b/frontend/lib/achievements.ts
index 8449e2a4..b3722b99 100644
--- a/frontend/lib/achievements.ts
+++ b/frontend/lib/achievements.ts
@@ -45,36 +45,156 @@ export interface EarnedAchievement extends Achievement {
export const ACHIEVEMENTS: Achievement[] = [
// ── Group 1: Progression (Attempts) ────────────────────────────────
- { id: 'first_blood', icon: 'Fire', gradient: ['#f97316', '#ef4444'], glow: 'rgba(249,115,22,0.55)' },
- { id: 'on_a_roll', icon: 'Lightning', gradient: ['#eab308', '#f59e0b'], glow: 'rgba(234,179,8,0.55)' },
- { id: 'rocket_start', icon: 'Rocket', gradient: ['#10b981', '#059669'], glow: 'rgba(16,185,129,0.55)' },
- { id: 'big_brain', icon: 'Brain', gradient: ['#06b6d4', '#3b82f6'], glow: 'rgba(6,182,212,0.55)' },
- { id: 'unstoppable', icon: 'Meteor', gradient: ['#dc2626', '#7f1d1d'], glow: 'rgba(220,38,38,0.6)' },
+ {
+ id: 'first_blood',
+ icon: 'Fire',
+ gradient: ['#f97316', '#ef4444'],
+ glow: 'rgba(249,115,22,0.55)',
+ },
+ {
+ id: 'on_a_roll',
+ icon: 'Lightning',
+ gradient: ['#eab308', '#f59e0b'],
+ glow: 'rgba(234,179,8,0.55)',
+ },
+ {
+ id: 'rocket_start',
+ icon: 'Rocket',
+ gradient: ['#10b981', '#059669'],
+ glow: 'rgba(16,185,129,0.55)',
+ },
+ {
+ id: 'big_brain',
+ icon: 'Brain',
+ gradient: ['#06b6d4', '#3b82f6'],
+ glow: 'rgba(6,182,212,0.55)',
+ },
+ {
+ id: 'unstoppable',
+ icon: 'Meteor',
+ gradient: ['#dc2626', '#7f1d1d'],
+ glow: 'rgba(220,38,38,0.6)',
+ },
// ── Group 2: Uniqueness & Points ───────────────────────────────────
- { id: 'code_wizard', icon: 'Code', gradient: ['#8b5cf6', '#6366f1'], glow: 'rgba(139,92,246,0.55)' },
- { id: 'legend', icon: 'Trophy', gradient: ['#d97706', '#b45309'], glow: 'rgba(217,119,6,0.55)' },
- { id: 'polymath', icon: 'Atom', gradient: ['#a855f7', '#4c1d95'], glow: 'rgba(168,85,247,0.6)' },
- { id: 'centurion', icon: 'Shield', gradient: ['#10b981', '#14b8a6'], glow: 'rgba(16,185,129,0.6)' },
- { id: 'endless', icon: 'Infinity', gradient: ['#14b8a6', '#0ea5e9'], glow: 'rgba(20,184,166,0.55)' },
- { id: 'deity', icon: 'Sun', gradient: ['#14b8a6', '#042f2e'], glow: 'rgba(20,184,166,0.6)' },
+ {
+ id: 'code_wizard',
+ icon: 'Code',
+ gradient: ['#8b5cf6', '#6366f1'],
+ glow: 'rgba(139,92,246,0.55)',
+ },
+ {
+ id: 'legend',
+ icon: 'Trophy',
+ gradient: ['#d97706', '#b45309'],
+ glow: 'rgba(217,119,6,0.55)',
+ },
+ {
+ id: 'polymath',
+ icon: 'Atom',
+ gradient: ['#a855f7', '#4c1d95'],
+ glow: 'rgba(168,85,247,0.6)',
+ },
+ {
+ id: 'centurion',
+ icon: 'Shield',
+ gradient: ['#10b981', '#14b8a6'],
+ glow: 'rgba(16,185,129,0.6)',
+ },
+ {
+ id: 'endless',
+ icon: 'Infinity',
+ gradient: ['#14b8a6', '#0ea5e9'],
+ glow: 'rgba(20,184,166,0.55)',
+ },
+ {
+ id: 'deity',
+ icon: 'Sun',
+ gradient: ['#14b8a6', '#042f2e'],
+ glow: 'rgba(20,184,166,0.6)',
+ },
// ── Group 3: Accuracy & Consistency ────────────────────────────────
- { id: 'sharpshooter', icon: 'Target', gradient: ['#6366f1', '#8b5cf6'], glow: 'rgba(99,102,241,0.55)' },
- { id: 'perfectionist', icon: 'Star', gradient: ['#f59e0b', '#fbbf24'], glow: 'rgba(251,191,36,0.55)' },
- { id: 'diamond_mind', icon: 'Diamond', gradient: ['#67e8f9', '#a78bfa'], glow: 'rgba(167,139,250,0.55)'},
- { id: 'flawless', icon: 'Sparkle', gradient: ['#f472b6', '#be185d'], glow: 'rgba(244,114,182,0.6)' },
- { id: 'deep_diver', icon: 'Waves', gradient: ['#0ea5e9', '#6366f1'], glow: 'rgba(14,165,233,0.6)' },
- { id: 'abyssal', icon: 'Anchor', gradient: ['#0284c7', '#082f49'], glow: 'rgba(2,132,199,0.6)' },
- { id: 'grandmaster', icon: 'GraduationCap', gradient: ['#fbbf24', '#b45309'], glow: 'rgba(251,191,36,0.7)' },
+ {
+ id: 'sharpshooter',
+ icon: 'Target',
+ gradient: ['#6366f1', '#8b5cf6'],
+ glow: 'rgba(99,102,241,0.55)',
+ },
+ {
+ id: 'perfectionist',
+ icon: 'Star',
+ gradient: ['#f59e0b', '#fbbf24'],
+ glow: 'rgba(251,191,36,0.55)',
+ },
+ {
+ id: 'diamond_mind',
+ icon: 'Diamond',
+ gradient: ['#67e8f9', '#a78bfa'],
+ glow: 'rgba(167,139,250,0.55)',
+ },
+ {
+ id: 'flawless',
+ icon: 'Sparkle',
+ gradient: ['#f472b6', '#be185d'],
+ glow: 'rgba(244,114,182,0.6)',
+ },
+ {
+ id: 'deep_diver',
+ icon: 'Waves',
+ gradient: ['#0ea5e9', '#6366f1'],
+ glow: 'rgba(14,165,233,0.6)',
+ },
+ {
+ id: 'abyssal',
+ icon: 'Anchor',
+ gradient: ['#0284c7', '#082f49'],
+ glow: 'rgba(2,132,199,0.6)',
+ },
+ {
+ id: 'grandmaster',
+ icon: 'GraduationCap',
+ gradient: ['#fbbf24', '#b45309'],
+ glow: 'rgba(251,191,36,0.7)',
+ },
// ── Group 4: Social & Special ──────────────────────────────────────
- { id: 'night_owl', icon: 'Moon', gradient: ['#6366f1', '#8b5cf6'], glow: 'rgba(99,102,241,0.6)' },
- { id: 'star_gazer', icon: 'GithubLogo',gradient: ['#fbbf24', '#f59e0b'], glow: 'rgba(251,191,36,0.7)' },
- { id: 'royalty', icon: 'Crown', gradient: ['#f59e0b', '#dc2626'], glow: 'rgba(245,158,11,0.55)' },
- { id: 'supporter', icon: 'Heart', gradient: ['#ec4899', '#f43f5e'], glow: 'rgba(236,72,153,0.55)' },
- { id: 'silver_patron', icon: 'Medal', gradient: ['#94a3b8', '#e2e8f0'], glow: 'rgba(148,163,184,0.6)' },
- { id: 'golden_patron', icon: 'Seal', gradient: ['#f59e0b', '#b45309'], glow: 'rgba(245,158,11,0.7)' },
+ {
+ id: 'night_owl',
+ icon: 'Moon',
+ gradient: ['#6366f1', '#8b5cf6'],
+ glow: 'rgba(99,102,241,0.6)',
+ },
+ {
+ id: 'star_gazer',
+ icon: 'GithubLogo',
+ gradient: ['#fbbf24', '#f59e0b'],
+ glow: 'rgba(251,191,36,0.7)',
+ },
+ {
+ id: 'royalty',
+ icon: 'Crown',
+ gradient: ['#f59e0b', '#dc2626'],
+ glow: 'rgba(245,158,11,0.55)',
+ },
+ {
+ id: 'supporter',
+ icon: 'Heart',
+ gradient: ['#ec4899', '#f43f5e'],
+ glow: 'rgba(236,72,153,0.55)',
+ },
+ {
+ id: 'silver_patron',
+ icon: 'Medal',
+ gradient: ['#94a3b8', '#e2e8f0'],
+ glow: 'rgba(148,163,184,0.6)',
+ },
+ {
+ id: 'golden_patron',
+ icon: 'Seal',
+ gradient: ['#f59e0b', '#b45309'],
+ glow: 'rgba(245,158,11,0.7)',
+ },
];
export interface UserStats {
@@ -179,40 +299,44 @@ export function computeAchievements(stats: UserStats): EarnedAchievement[] {
// ── Hard / Dedicated ─────────────────────────────────────
case 'unstoppable':
- earned = stats.totalAttempts >= 100;
+ earned = stats.totalAttempts >= 100;
progress = Math.min((stats.totalAttempts / 100) * 100, 100);
break;
case 'flawless':
- earned = stats.perfectScores >= 25;
+ earned = stats.perfectScores >= 25;
progress = Math.min((stats.perfectScores / 25) * 100, 100);
break;
case 'grandmaster':
- earned = stats.totalAttempts >= 50 && stats.averageScore >= 95;
- progress = stats.totalAttempts < 50
- ? Math.min((stats.totalAttempts / 50) * 100, 100)
- : Math.min((stats.averageScore / 95) * 100, 100);
+ earned = stats.totalAttempts >= 50 && stats.averageScore >= 95;
+ progress =
+ stats.totalAttempts < 50
+ ? Math.min((stats.totalAttempts / 50) * 100, 100)
+ : Math.min((stats.averageScore / 95) * 100, 100);
break;
case 'polymath':
- earned = stats.uniqueQuizzes >= 50;
+ earned = stats.uniqueQuizzes >= 50;
progress = Math.min((stats.uniqueQuizzes / 50) * 100, 100);
break;
case 'deity':
- earned = stats.totalPoints >= 10000;
+ earned = stats.totalPoints >= 10000;
progress = Math.min((stats.totalPoints / 10000) * 100, 100);
break;
case 'abyssal':
- earned = stats.totalAttempts >= 50 && stats.averageScore >= 90;
- progress = stats.totalAttempts < 50
- ? Math.min((stats.totalAttempts / 50) * 100, 100)
- : Math.min((stats.averageScore / 90) * 100, 100);
+ earned = stats.totalAttempts >= 50 && stats.averageScore >= 90;
+ progress =
+ stats.totalAttempts < 50
+ ? Math.min((stats.totalAttempts / 50) * 100, 100)
+ : Math.min((stats.averageScore / 90) * 100, 100);
break;
- default: earned = false; progress = 0;
+ default:
+ earned = false;
+ progress = 0;
}
return {
diff --git a/frontend/lib/env/monobank.ts b/frontend/lib/env/monobank.ts
index c8ed9e43..1ad397fd 100644
--- a/frontend/lib/env/monobank.ts
+++ b/frontend/lib/env/monobank.ts
@@ -73,8 +73,7 @@ function resolveMonobankToken(): string | null {
function resolveBaseUrlSource(): MonobankConfig['baseUrlSource'] {
if (nonEmpty(process.env.SHOP_BASE_URL)) return 'shop_base_url';
if (nonEmpty(process.env.APP_ORIGIN)) return 'app_origin';
- if (nonEmpty(process.env.NEXT_PUBLIC_SITE_URL))
- return 'next_public_site_url';
+ if (nonEmpty(process.env.NEXT_PUBLIC_SITE_URL)) return 'next_public_site_url';
return 'unknown';
}
diff --git a/frontend/lib/env/nova-poshta.ts b/frontend/lib/env/nova-poshta.ts
index a92c1e73..6eac5ef6 100644
--- a/frontend/lib/env/nova-poshta.ts
+++ b/frontend/lib/env/nova-poshta.ts
@@ -70,7 +70,8 @@ export function getNovaPoshtaConfig(): NovaPoshtaConfig {
const flags = getShopShippingFlags();
const apiBaseUrl = nonEmpty(process.env.NP_API_BASE) ?? DEFAULT_NP_API_BASE;
- const defaultCargoType = nonEmpty(process.env.NP_DEFAULT_CARGO_TYPE) ?? 'Cargo';
+ const defaultCargoType =
+ nonEmpty(process.env.NP_DEFAULT_CARGO_TYPE) ?? 'Cargo';
const defaultWeightGrams = parsePositiveInt(
process.env.NP_DEFAULT_WEIGHT_GRAMS,
1000
diff --git a/frontend/lib/env/shop-canonical-events.ts b/frontend/lib/env/shop-canonical-events.ts
index 4ff1a523..a3cdbb84 100644
--- a/frontend/lib/env/shop-canonical-events.ts
+++ b/frontend/lib/env/shop-canonical-events.ts
@@ -34,4 +34,3 @@ export function isCanonicalEventsDualWriteEnabled(): boolean {
`Invalid SHOP_CANONICAL_EVENTS_DUAL_WRITE value: "${process.env.SHOP_CANONICAL_EVENTS_DUAL_WRITE ?? ''}".`
);
}
-
diff --git a/frontend/lib/env/shop-intl.ts b/frontend/lib/env/shop-intl.ts
index fab32f21..6436fa1d 100644
--- a/frontend/lib/env/shop-intl.ts
+++ b/frontend/lib/env/shop-intl.ts
@@ -7,7 +7,10 @@ function parsePositiveInt(raw: string | undefined, fallback: number): number {
}
export function getIntlAcceptedPaymentTtlMinutes(): number {
- return parsePositiveInt(process.env.SHOP_INTL_ACCEPTED_PAYMENT_TTL_MINUTES, 30);
+ return parsePositiveInt(
+ process.env.SHOP_INTL_ACCEPTED_PAYMENT_TTL_MINUTES,
+ 30
+ );
}
export function getIntlQuoteOfferTtlMinutes(): number {
diff --git a/frontend/lib/quiz/quiz-answers-redis.ts b/frontend/lib/quiz/quiz-answers-redis.ts
index 79870f37..3ec847d4 100644
--- a/frontend/lib/quiz/quiz-answers-redis.ts
+++ b/frontend/lib/quiz/quiz-answers-redis.ts
@@ -8,7 +8,7 @@ import {
quizQuestions,
} from '@/db/schema/quiz';
import { getRedisClient } from '@/lib/redis';
-import type { AttemptReview,QuizQuestionWithAnswers } from '@/types/quiz';
+import type { AttemptReview, QuizQuestionWithAnswers } from '@/types/quiz';
interface QuizAnswersCache {
quizId: string;
diff --git a/frontend/lib/services/orders/checkout.ts b/frontend/lib/services/orders/checkout.ts
index 5e796b8f..28a0e791 100644
--- a/frontend/lib/services/orders/checkout.ts
+++ b/frontend/lib/services/orders/checkout.ts
@@ -1090,25 +1090,27 @@ export async function createOrderWithItems({
});
if (preparedShipping.required && preparedShipping.snapshot) {
- await ensureOrderShippingSnapshot({
- orderId: created.id,
- snapshot: preparedShipping.snapshot,
- });
- } catch (e) {
- // Neon HTTP: no interactive transactions. Do compensating cleanup.
- logError(
- `[createOrderWithItems] orderShipping snapshot insert failed orderId=${created.id}`,
- e
- );
try {
- await db.delete(orders).where(eq(orders.id, created.id));
- } catch (cleanupErr) {
+ await ensureOrderShippingSnapshot({
+ orderId: created.id,
+ snapshot: preparedShipping.snapshot,
+ });
+ } catch (e) {
+ // Neon HTTP: no interactive transactions. Do compensating cleanup.
logError(
- `[createOrderWithItems] cleanup delete failed orderId=${created.id}`,
- cleanupErr
+ `[createOrderWithItems] orderShipping snapshot insert failed orderId=${created.id}`,
+ e
);
+ try {
+ await db.delete(orders).where(eq(orders.id, created.id));
+ } catch (cleanupErr) {
+ logError(
+ `[createOrderWithItems] cleanup delete failed orderId=${created.id}`,
+ cleanupErr
+ );
+ }
+ throw e;
}
- throw e;
}
} catch (e) {
// Neon HTTP: no interactive transactions. Do compensating cleanup.
diff --git a/frontend/lib/services/orders/monobank-webhook.ts b/frontend/lib/services/orders/monobank-webhook.ts
index b4bb6811..d5ea4289 100644
--- a/frontend/lib/services/orders/monobank-webhook.ts
+++ b/frontend/lib/services/orders/monobank-webhook.ts
@@ -752,7 +752,8 @@ async function atomicMarkPaidOrderAndSucceedAttempt(args: {
return {
ok: Boolean(row?.order_id && row?.attempt_id),
shipmentQueued:
- Boolean(row?.shipment_is_queued) && Boolean(row?.order_shipping_is_queued),
+ Boolean(row?.shipment_is_queued) &&
+ Boolean(row?.order_shipping_is_queued),
};
}
diff --git a/frontend/lib/services/orders/restock.ts b/frontend/lib/services/orders/restock.ts
index a81a221c..5d148553 100644
--- a/frontend/lib/services/orders/restock.ts
+++ b/frontend/lib/services/orders/restock.ts
@@ -71,9 +71,13 @@ function validateRestockTransition(
if (!targetOrderStatus) return;
if (
- !isOrderNonPaymentStatusTransitionAllowed(currentStatus, targetOrderStatus, {
- includeSame: true,
- })
+ !isOrderNonPaymentStatusTransitionAllowed(
+ currentStatus,
+ targetOrderStatus,
+ {
+ includeSame: true,
+ }
+ )
) {
throw new OrderStateInvalidError(
`Invalid order status transition: ${currentStatus} -> ${targetOrderStatus}`,
diff --git a/frontend/lib/services/products/mutations/create.ts b/frontend/lib/services/products/mutations/create.ts
index bec3d9f6..2c5c3e95 100644
--- a/frontend/lib/services/products/mutations/create.ts
+++ b/frontend/lib/services/products/mutations/create.ts
@@ -24,7 +24,10 @@ export async function createProduct(
options?: { db?: ProductMutationExecutor }
): Promise {
const executor = options?.db ?? db;
- const slug = await normalizeSlug(executor, (input as any).slug ?? (input as any).title);
+ const slug = await normalizeSlug(
+ executor,
+ (input as any).slug ?? (input as any).title
+ );
let uploaded: { secureUrl: string; publicId: string } | null = null;
diff --git a/frontend/lib/services/shop/notifications/outbox-worker.ts b/frontend/lib/services/shop/notifications/outbox-worker.ts
index 1032b6cd..5e34f381 100644
--- a/frontend/lib/services/shop/notifications/outbox-worker.ts
+++ b/frontend/lib/services/shop/notifications/outbox-worker.ts
@@ -165,7 +165,11 @@ function toNotificationSendError(error: unknown): NotificationSendError {
if (error instanceof NotificationSendError) return error;
if (error instanceof ShopNotificationTransportError) {
- return new NotificationSendError(error.code, error.message, error.transient);
+ return new NotificationSendError(
+ error.code,
+ error.message,
+ error.transient
+ );
}
return new NotificationSendError(
diff --git a/frontend/lib/services/shop/notifications/projector.ts b/frontend/lib/services/shop/notifications/projector.ts
index 0887d3d9..d74a3345 100644
--- a/frontend/lib/services/shop/notifications/projector.ts
+++ b/frontend/lib/services/shop/notifications/projector.ts
@@ -3,11 +3,7 @@ import 'server-only';
import { asc } from 'drizzle-orm';
import { db } from '@/db';
-import {
- notificationOutbox,
- paymentEvents,
- shippingEvents,
-} from '@/db/schema';
+import { notificationOutbox, paymentEvents, shippingEvents } from '@/db/schema';
import { buildNotificationOutboxDedupeKey } from '@/lib/services/shop/events/dedupe-key';
import {
mapPaymentEventToTemplate,
diff --git a/frontend/lib/services/shop/notifications/templates.ts b/frontend/lib/services/shop/notifications/templates.ts
index c61e93bf..78c232a6 100644
--- a/frontend/lib/services/shop/notifications/templates.ts
+++ b/frontend/lib/services/shop/notifications/templates.ts
@@ -43,7 +43,9 @@ function escapeHtml(input: string): string {
.replaceAll("'", ''');
}
-function readCanonicalEventName(payload: Record): string | null {
+function readCanonicalEventName(
+ payload: Record
+): string | null {
const raw = payload.canonicalEventName;
if (typeof raw !== 'string') return null;
const trimmed = raw.trim();
@@ -96,7 +98,9 @@ export function renderShopNotificationTemplate(
return null;
}
- const eventLine = canonicalEvent ? `Canonical event: ${canonicalEvent}` : null;
+ const eventLine = canonicalEvent
+ ? `Canonical event: ${canonicalEvent}`
+ : null;
const text = [leadLine, `Order: ${orderTag}`, eventLine]
.filter(Boolean)
.join('\n');
diff --git a/frontend/lib/services/shop/quotes.ts b/frontend/lib/services/shop/quotes.ts
index a2c4d0cc..97f70a96 100644
--- a/frontend/lib/services/shop/quotes.ts
+++ b/frontend/lib/services/shop/quotes.ts
@@ -52,7 +52,8 @@ type QuoteRow = {
function parseDateOrNull(value: unknown): Date | null {
if (!value) return null;
- if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value;
+ if (value instanceof Date)
+ return Number.isNaN(value.getTime()) ? null : value;
const parsed = new Date(String(value));
if (Number.isNaN(parsed.getTime())) return null;
return parsed;
@@ -122,7 +123,9 @@ async function loadOrderQuote(orderId: string): Promise {
quoteVersion:
typeof row.quoteVersion === 'number' ? row.quoteVersion : null,
shippingQuoteMinor:
- typeof row.shippingQuoteMinor === 'number' ? row.shippingQuoteMinor : null,
+ typeof row.shippingQuoteMinor === 'number'
+ ? row.shippingQuoteMinor
+ : null,
itemsSubtotalMinor:
typeof row.itemsSubtotalMinor === 'number' ? row.itemsSubtotalMinor : 0,
totalAmountMinor:
@@ -168,11 +171,10 @@ async function loadQuoteByVersion(
const expiresAt = parseDateOrNull(row.expiresAt);
if (!expiresAt) {
- throw quoteError(
- 'INVALID_PAYLOAD',
- 'Stored quote expiry is invalid.',
- { orderId, version }
- );
+ throw quoteError('INVALID_PAYLOAD', 'Stored quote expiry is invalid.', {
+ orderId,
+ version,
+ });
}
return {
@@ -449,14 +451,16 @@ export async function offerIntlQuote(args: {
const latestQuote = await loadLatestQuote(order.id);
const expectedVersion = (latestQuote?.version ?? 0) + 1;
if (args.version !== expectedVersion) {
- throw quoteError(
- 'QUOTE_VERSION_CONFLICT',
- 'Quote version conflict.',
- { expectedVersion, gotVersion: args.version }
- );
+ throw quoteError('QUOTE_VERSION_CONFLICT', 'Quote version conflict.', {
+ expectedVersion,
+ gotVersion: args.version,
+ });
}
- if (!Number.isInteger(args.shippingQuoteMinor) || args.shippingQuoteMinor < 0) {
+ if (
+ !Number.isInteger(args.shippingQuoteMinor) ||
+ args.shippingQuoteMinor < 0
+ ) {
throw quoteError(
'INVALID_PAYLOAD',
'shippingQuoteMinor must be a non-negative integer.'
@@ -589,9 +593,13 @@ export async function offerIntlQuote(args: {
const row = (res as any)?.rows?.[0];
const insertedCount = Number(row?.inserted_quote_count ?? 0);
if (insertedCount === 0) {
- throw quoteError('QUOTE_VERSION_CONFLICT', 'Quote version already exists.', {
- version: args.version,
- });
+ throw quoteError(
+ 'QUOTE_VERSION_CONFLICT',
+ 'Quote version already exists.',
+ {
+ version: args.version,
+ }
+ );
}
return {
@@ -693,7 +701,11 @@ export async function acceptIntlQuote(args: {
};
for (const move of reserves) {
- const reserve = await applyReserveMove(order.id, move.productId, move.quantity);
+ const reserve = await applyReserveMove(
+ order.id,
+ move.productId,
+ move.quantity
+ );
if (!reserve.ok) {
stockFailureProductId = move.productId;
break;
@@ -952,7 +964,11 @@ export async function declineIntlQuote(args: {
}
if (latestQuote.status === 'declined') {
- return { orderId: order.id, quoteStatus: 'declined' as const, changed: false };
+ return {
+ orderId: order.id,
+ quoteStatus: 'declined' as const,
+ changed: false,
+ };
}
if (latestQuote.status !== 'offered') {
@@ -1128,7 +1144,10 @@ export async function sweepExpiredOfferedIntlQuotes(options?: {
batchSize?: number;
now?: Date;
}): Promise {
- const batchSize = Math.max(1, Math.min(100, Math.floor(options?.batchSize ?? 50)));
+ const batchSize = Math.max(
+ 1,
+ Math.min(100, Math.floor(options?.batchSize ?? 50))
+ );
const now = options?.now ?? new Date();
const candidates = await db
@@ -1166,7 +1185,10 @@ export async function sweepAcceptedIntlQuotePaymentTimeouts(options?: {
batchSize?: number;
now?: Date;
}): Promise {
- const batchSize = Math.max(1, Math.min(100, Math.floor(options?.batchSize ?? 50)));
+ const batchSize = Math.max(
+ 1,
+ Math.min(100, Math.floor(options?.batchSize ?? 50))
+ );
const now = options?.now ?? new Date();
const candidates = await db
diff --git a/frontend/lib/services/shop/returns.ts b/frontend/lib/services/shop/returns.ts
index 2fea1b74..1045895e 100644
--- a/frontend/lib/services/shop/returns.ts
+++ b/frontend/lib/services/shop/returns.ts
@@ -3,12 +3,7 @@ import 'server-only';
import { and, asc, eq, inArray, sql } from 'drizzle-orm';
import { db } from '@/db';
-import {
- orderItems,
- orders,
- returnItems,
- returnRequests,
-} from '@/db/schema';
+import { orderItems, orders, returnItems, returnRequests } from '@/db/schema';
import { createRefund } from '@/lib/psp/stripe';
import { InvalidPayloadError } from '@/lib/services/errors';
import { buildAdminAuditDedupeKey } from '@/lib/services/shop/events/dedupe-key';
@@ -270,7 +265,9 @@ async function applyReturnRestockMove(args: {
orderId: string;
productId: string;
quantity: number;
-}): Promise<'applied' | 'already' | 'already_released' | 'no_reserve' | 'noop'> {
+}): Promise<
+ 'applied' | 'already' | 'already_released' | 'no_reserve' | 'noop'
+> {
const moveKey = `return_release:${args.returnRequestId}:${args.productId}`;
const res = await db.execute<{ status: string }>(sql`
with c as (
@@ -338,7 +335,10 @@ async function applyReturnRestockMove(args: {
}
async function restockReturnItems(returnRequestId: string, orderId: string) {
- const grouped = await db.execute<{ product_id: string; quantity: number }>(sql`
+ const grouped = await db.execute<{
+ product_id: string;
+ quantity: number;
+ }>(sql`
select
ri.product_id::text as product_id,
sum(ri.quantity)::int as quantity
@@ -348,7 +348,9 @@ async function restockReturnItems(returnRequestId: string, orderId: string) {
and ri.product_id is not null
group by ri.product_id
`);
- const productsToRelease = readRows<{ product_id: string; quantity: number }>(grouped);
+ const productsToRelease = readRows<{ product_id: string; quantity: number }>(
+ grouped
+ );
if (productsToRelease.length === 0) {
throw returnError(
'RETURN_ITEMS_MISSING',
@@ -568,7 +570,10 @@ export async function createReturnRequest(args: {
if (insertedReturnId) {
const created = await loadReturnByIdWithItems(insertedReturnId);
if (!created) {
- throw returnError('RETURN_NOT_FOUND', 'Return request not found after create.');
+ throw returnError(
+ 'RETURN_NOT_FOUND',
+ 'Return request not found after create.'
+ );
}
return { created: true, request: created };
}
@@ -604,7 +609,9 @@ export async function createReturnRequest(args: {
throw returnError('RETURN_NOT_FOUND', 'Unable to create return request.');
}
-export async function listOrderReturns(orderId: string): Promise {
+export async function listOrderReturns(
+ orderId: string
+): Promise {
const requests = await db
.select({
id: returnRequests.id,
@@ -965,17 +972,26 @@ export async function refundReturnRequest(args: {
{ returnRequestId: current.id, status: current.status }
);
}
- if (!Number.isInteger(current.refundAmountMinor) || current.refundAmountMinor <= 0) {
+ if (
+ !Number.isInteger(current.refundAmountMinor) ||
+ current.refundAmountMinor <= 0
+ ) {
throw returnError(
'RETURN_REFUND_AMOUNT_INVALID',
'Refund amount is invalid.',
- { returnRequestId: current.id, refundAmountMinor: current.refundAmountMinor }
+ {
+ returnRequestId: current.id,
+ refundAmountMinor: current.refundAmountMinor,
+ }
);
}
const order = await loadOrder(current.orderId);
if (!order) {
- throw returnError('RETURN_NOT_FOUND', 'Order not found for return request.');
+ throw returnError(
+ 'RETURN_NOT_FOUND',
+ 'Order not found for return request.'
+ );
}
if (order.paymentProvider !== 'stripe') {
diff --git a/frontend/lib/services/shop/shipping/admin-actions.ts b/frontend/lib/services/shop/shipping/admin-actions.ts
index e403a1e3..acfde69e 100644
--- a/frontend/lib/services/shop/shipping/admin-actions.ts
+++ b/frontend/lib/services/shop/shipping/admin-actions.ts
@@ -574,9 +574,7 @@ export async function applyShippingAdminAction(args: {
};
}
- if (
- !isShippingStatusTransitionAllowed(state.shipping_status, 'shipped')
- ) {
+ if (!isShippingStatusTransitionAllowed(state.shipping_status, 'shipped')) {
throw new ShippingAdminActionError(
'INVALID_SHIPPING_TRANSITION',
'mark_shipped is allowed only from label_created.',
diff --git a/frontend/lib/services/shop/shipping/shipments-worker.ts b/frontend/lib/services/shop/shipping/shipments-worker.ts
index 4ef1574b..b39dabed 100644
--- a/frontend/lib/services/shop/shipping/shipments-worker.ts
+++ b/frontend/lib/services/shop/shipping/shipments-worker.ts
@@ -585,11 +585,13 @@ async function markSucceeded(args: {
(select us.order_id from updated_shipment us limit 1) as order_id
`);
- return readRows<{
- shipment_updated: boolean;
- order_updated: boolean;
- order_id: string | null;
- }>(res)[0] ?? null;
+ return (
+ readRows<{
+ shipment_updated: boolean;
+ order_updated: boolean;
+ order_id: string | null;
+ }>(res)[0] ?? null
+ );
}
async function markFailed(args: {
@@ -642,10 +644,12 @@ async function markFailed(args: {
exists (select 1 from updated_order) as order_updated
`);
- return readRows<{
- shipment_updated: boolean;
- order_updated: boolean;
- }>(res)[0] ?? null;
+ return (
+ readRows<{
+ shipment_updated: boolean;
+ order_updated: boolean;
+ }>(res)[0] ?? null
+ );
}
async function processClaimedShipment(args: {
@@ -847,7 +851,9 @@ async function processClaimedShipment(args: {
errorMessage: classified.message,
transient: classified.transient,
nextAttemptAt: nextAttemptAt ? nextAttemptAt.toISOString() : null,
- shipmentStatusTo: terminalNeedsAttention ? 'needs_attention' : 'failed',
+ shipmentStatusTo: terminalNeedsAttention
+ ? 'needs_attention'
+ : 'failed',
},
});
} catch {
diff --git a/frontend/lib/services/shop/transitions/order-state.ts b/frontend/lib/services/shop/transitions/order-state.ts
index 814064df..9fc642cc 100644
--- a/frontend/lib/services/shop/transitions/order-state.ts
+++ b/frontend/lib/services/shop/transitions/order-state.ts
@@ -16,9 +16,20 @@ const ORDER_NON_PAYMENT_ALLOWED_FROM: Record<
> = {
CREATED: [],
INVENTORY_RESERVED: ['CREATED'],
- INVENTORY_FAILED: ['CREATED', 'INVENTORY_RESERVED', 'PAID', 'INVENTORY_FAILED'],
+ INVENTORY_FAILED: [
+ 'CREATED',
+ 'INVENTORY_RESERVED',
+ 'PAID',
+ 'INVENTORY_FAILED',
+ ],
PAID: [],
- CANCELED: ['CREATED', 'INVENTORY_RESERVED', 'INVENTORY_FAILED', 'PAID', 'CANCELED'],
+ CANCELED: [
+ 'CREATED',
+ 'INVENTORY_RESERVED',
+ 'INVENTORY_FAILED',
+ 'PAID',
+ 'CANCELED',
+ ],
};
export function allowedFromOrderNonPaymentStatus(
@@ -49,7 +60,10 @@ export function orderNonPaymentTransitionWhereSql(args: {
includeSame: args.includeSame,
});
if (from.length === 0) return sql`false`;
- return sql`${args.column} in (${sql.join(from.map(v => sql`${v}`), sql`, `)})`;
+ return sql`${args.column} in (${sql.join(
+ from.map(v => sql`${v}`),
+ sql`, `
+ )})`;
}
export const ORDER_QUOTE_STATUSES = [
@@ -105,7 +119,10 @@ export function orderQuoteTransitionWhereSql(args: {
includeSame: args.includeSame,
});
if (from.length === 0) return sql`false`;
- return sql`${args.column} in (${sql.join(from.map(v => sql`${v}`), sql`, `)})`;
+ return sql`${args.column} in (${sql.join(
+ from.map(v => sql`${v}`),
+ sql`, `
+ )})`;
}
export const __orderTransitionMatrix = {
diff --git a/frontend/lib/services/shop/transitions/return-state.ts b/frontend/lib/services/shop/transitions/return-state.ts
index 21ac76e2..02d82c14 100644
--- a/frontend/lib/services/shop/transitions/return-state.ts
+++ b/frontend/lib/services/shop/transitions/return-state.ts
@@ -40,4 +40,3 @@ export function isReturnStatusTransitionAllowed(
}
export const __returnTransitionMatrix = RETURN_ALLOWED_FROM;
-
diff --git a/frontend/lib/services/shop/transitions/shipping-state.ts b/frontend/lib/services/shop/transitions/shipping-state.ts
index ca7567dd..612dfb33 100644
--- a/frontend/lib/services/shop/transitions/shipping-state.ts
+++ b/frontend/lib/services/shop/transitions/shipping-state.ts
@@ -1,4 +1,4 @@
-import { type SQL,sql } from 'drizzle-orm';
+import { type SQL, sql } from 'drizzle-orm';
export const SHIPPING_STATUSES = [
'pending',
@@ -13,16 +13,23 @@ export const SHIPPING_STATUSES = [
export type ShippingStatus = (typeof SHIPPING_STATUSES)[number];
-const SHIPPING_ALLOWED_FROM: Record = {
- pending: [],
- queued: ['pending', 'queued', 'creating_label', 'needs_attention'],
- creating_label: ['pending', 'queued', 'creating_label'],
- label_created: ['pending', 'queued', 'creating_label'],
- shipped: ['label_created'],
- delivered: ['shipped'],
- cancelled: ['pending', 'queued', 'creating_label', 'label_created', 'shipped'],
- needs_attention: ['pending', 'queued', 'creating_label', 'needs_attention'],
-};
+const SHIPPING_ALLOWED_FROM: Record =
+ {
+ pending: [],
+ queued: ['pending', 'queued', 'creating_label', 'needs_attention'],
+ creating_label: ['pending', 'queued', 'creating_label'],
+ label_created: ['pending', 'queued', 'creating_label'],
+ shipped: ['label_created'],
+ delivered: ['shipped'],
+ cancelled: [
+ 'pending',
+ 'queued',
+ 'creating_label',
+ 'label_created',
+ 'shipped',
+ ],
+ needs_attention: ['pending', 'queued', 'creating_label', 'needs_attention'],
+ };
Object.values(SHIPPING_ALLOWED_FROM).forEach(arr => {
Object.freeze(arr);
});
@@ -58,7 +65,10 @@ export function shippingStatusTransitionWhereSql(args: {
});
const inAllowed =
from.length > 0
- ? sql`${args.column} in (${sql.join(from.map(v => sql`${v}`), sql`, `)})`
+ ? sql`${args.column} in (${sql.join(
+ from.map(v => sql`${v}`),
+ sql`, `
+ )})`
: sql`false`;
if (args.allowNullFrom) {
@@ -68,4 +78,3 @@ export function shippingStatusTransitionWhereSql(args: {
}
export const __shippingTransitionMatrix = SHIPPING_ALLOWED_FROM;
-
diff --git a/frontend/lib/tests/helpers/db-safety.ts b/frontend/lib/tests/helpers/db-safety.ts
index e3c79c6c..5a39326f 100644
--- a/frontend/lib/tests/helpers/db-safety.ts
+++ b/frontend/lib/tests/helpers/db-safety.ts
@@ -31,9 +31,7 @@ export function assertNotProductionDb(): void {
}
if (strictLocal && !databaseUrlLocal.trim()) {
- reasons.push(
- 'DATABASE_URL_LOCAL must be set when SHOP_STRICT_LOCAL_DB=1'
- );
+ reasons.push('DATABASE_URL_LOCAL must be set when SHOP_STRICT_LOCAL_DB=1');
}
if (strictLocal && requiredLocal && databaseUrlLocal !== requiredLocal) {
diff --git a/frontend/lib/tests/helpers/seed-product.ts b/frontend/lib/tests/helpers/seed-product.ts
index 2aa2fcf5..4ddab97b 100644
--- a/frontend/lib/tests/helpers/seed-product.ts
+++ b/frontend/lib/tests/helpers/seed-product.ts
@@ -219,10 +219,12 @@ export async function cleanupSeededTemplateProduct(): Promise {
} catch {}
try {
- await db.delete(productPrices).where(eq(productPrices.productId, productId));
+ await db
+ .delete(productPrices)
+ .where(eq(productPrices.productId, productId));
} catch {}
try {
await db.delete(products).where(eq(products.id, productId));
} catch {}
-}
\ No newline at end of file
+}
diff --git a/frontend/lib/tests/shop/admin-product-canonical-audit-phase5.test.ts b/frontend/lib/tests/shop/admin-product-canonical-audit-phase5.test.ts
index 81d2b591..98fa9abb 100644
--- a/frontend/lib/tests/shop/admin-product-canonical-audit-phase5.test.ts
+++ b/frontend/lib/tests/shop/admin-product-canonical-audit-phase5.test.ts
@@ -113,7 +113,9 @@ describe('admin product canonical audit phase 5', () => {
data: {
title: 'New product',
badge: 'NONE',
- prices: [{ currency: 'USD', priceMinor: 1000, originalPriceMinor: null }],
+ prices: [
+ { currency: 'USD', priceMinor: 1000, originalPriceMinor: null },
+ ],
},
});
@@ -161,7 +163,9 @@ describe('admin product canonical audit phase 5', () => {
data: {
title: 'Updated title',
badge: 'NONE',
- prices: [{ currency: 'USD', priceMinor: 2000, originalPriceMinor: null }],
+ prices: [
+ { currency: 'USD', priceMinor: 2000, originalPriceMinor: null },
+ ],
},
});
mocks.updateProduct.mockResolvedValue(makeProduct(productId, true));
@@ -245,17 +249,19 @@ describe('admin product canonical audit phase 5', () => {
mocks.toggleProductStatus.mockResolvedValue(makeProduct(productId, false));
- const { PATCH } = await import(
- '@/app/api/shop/admin/products/[id]/status/route'
- );
+ const { PATCH } =
+ await import('@/app/api/shop/admin/products/[id]/status/route');
const req = new NextRequest(
- new Request(`http://localhost/api/shop/admin/products/${productId}/status`, {
- method: 'PATCH',
- headers: {
- origin: 'http://localhost:3000',
- 'x-request-id': requestId,
- },
- })
+ new Request(
+ `http://localhost/api/shop/admin/products/${productId}/status`,
+ {
+ method: 'PATCH',
+ headers: {
+ origin: 'http://localhost:3000',
+ 'x-request-id': requestId,
+ },
+ }
+ )
);
const res = await PATCH(req, {
diff --git a/frontend/lib/tests/shop/admin-product-create-atomic-phasec.test.ts b/frontend/lib/tests/shop/admin-product-create-atomic-phasec.test.ts
index 8663a1b1..6b96daa0 100644
--- a/frontend/lib/tests/shop/admin-product-create-atomic-phasec.test.ts
+++ b/frontend/lib/tests/shop/admin-product-create-atomic-phasec.test.ts
@@ -105,7 +105,9 @@ describe.sequential('admin products create atomicity (phase C)', () => {
slug,
title: 'Atomic create product',
badge: 'NONE',
- prices: [{ currency: 'USD', priceMinor: 1999, originalPriceMinor: null }],
+ prices: [
+ { currency: 'USD', priceMinor: 1999, originalPriceMinor: null },
+ ],
stock: 2,
isActive: true,
isFeatured: false,
@@ -164,7 +166,9 @@ describe.sequential('admin products create atomicity (phase C)', () => {
slug,
title: 'Atomic create rollback guard',
badge: 'NONE',
- prices: [{ currency: 'USD', priceMinor: 2099, originalPriceMinor: null }],
+ prices: [
+ { currency: 'USD', priceMinor: 2099, originalPriceMinor: null },
+ ],
stock: 2,
isActive: true,
isFeatured: false,
diff --git a/frontend/lib/tests/shop/checkout-legal-consent-phase4.test.ts b/frontend/lib/tests/shop/checkout-legal-consent-phase4.test.ts
index 759ac7d2..9106776f 100644
--- a/frontend/lib/tests/shop/checkout-legal-consent-phase4.test.ts
+++ b/frontend/lib/tests/shop/checkout-legal-consent-phase4.test.ts
@@ -9,9 +9,7 @@ import {
productPrices,
products,
} from '@/db/schema/shop';
-import {
- IdempotencyConflictError,
-} from '@/lib/services/errors';
+import { IdempotencyConflictError } from '@/lib/services/errors';
import { createOrderWithItems } from '@/lib/services/orders';
import { toDbMoney } from '@/lib/shop/money';
diff --git a/frontend/lib/tests/shop/checkout-shipping-phase3.test.ts b/frontend/lib/tests/shop/checkout-shipping-phase3.test.ts
index 63eeb626..ed70dcf4 100644
--- a/frontend/lib/tests/shop/checkout-shipping-phase3.test.ts
+++ b/frontend/lib/tests/shop/checkout-shipping-phase3.test.ts
@@ -235,9 +235,9 @@ describe('checkout shipping phase 3', () => {
expect((shippingRow?.shippingAddress as any)?.selection?.cityRef).toBe(
seed.cityRef
);
- expect((shippingRow?.shippingAddress as any)?.selection?.warehouseRef).toBe(
- seed.warehouseRefA
- );
+ expect(
+ (shippingRow?.shippingAddress as any)?.selection?.warehouseRef
+ ).toBe(seed.warehouseRefA);
expect((shippingRow?.shippingAddress as any)?.recipient?.fullName).toBe(
'Alice'
);
diff --git a/frontend/lib/tests/shop/intl-quote-domain-phase2.test.ts b/frontend/lib/tests/shop/intl-quote-domain-phase2.test.ts
index eae4496c..10bfa177 100644
--- a/frontend/lib/tests/shop/intl-quote-domain-phase2.test.ts
+++ b/frontend/lib/tests/shop/intl-quote-domain-phase2.test.ts
@@ -89,7 +89,9 @@ async function seedIntlOrder(args?: {
}
async function cleanupSeed(seed: Seeded) {
- await db.delete(paymentAttempts).where(eq(paymentAttempts.orderId, seed.orderId));
+ await db
+ .delete(paymentAttempts)
+ .where(eq(paymentAttempts.orderId, seed.orderId));
await db.delete(orders).where(eq(orders.id, seed.orderId));
await db.delete(products).where(eq(products.id, seed.productId));
}
@@ -190,9 +192,7 @@ describe.sequential('intl quote domain (phase 2)', () => {
expiresAt: new Date(Date.now() - 60_000),
updatedAt: new Date(),
})
- .where(
- eq(shippingQuotes.orderId, seed.orderId)
- );
+ .where(eq(shippingQuotes.orderId, seed.orderId));
await expect(
acceptIntlQuote({
@@ -224,7 +224,11 @@ describe.sequential('intl quote domain (phase 2)', () => {
});
it('accept reserves inventory and sets accepted payment deadline', async () => {
- const seed = await seedIntlOrder({ stock: 5, quantity: 2, totalAmountMinor: 2000 });
+ const seed = await seedIntlOrder({
+ stock: 5,
+ quantity: 2,
+ totalAmountMinor: 2000,
+ });
try {
await requestIntlQuote({
orderId: seed.orderId,
@@ -279,7 +283,11 @@ describe.sequential('intl quote domain (phase 2)', () => {
});
it('accept returns QUOTE_STOCK_UNAVAILABLE and sets requires_requote when reserve fails', async () => {
- const seed = await seedIntlOrder({ stock: 0, quantity: 1, totalAmountMinor: 1000 });
+ const seed = await seedIntlOrder({
+ stock: 0,
+ quantity: 1,
+ totalAmountMinor: 1000,
+ });
try {
await requestIntlQuote({
orderId: seed.orderId,
@@ -333,7 +341,11 @@ describe.sequential('intl quote domain (phase 2)', () => {
it('writes canonical quote transition events by default', async () => {
const orderA = await seedIntlOrder();
const orderB = await seedIntlOrder();
- const orderC = await seedIntlOrder({ stock: 2, quantity: 1, totalAmountMinor: 1000 });
+ const orderC = await seedIntlOrder({
+ stock: 2,
+ quantity: 1,
+ totalAmountMinor: 1000,
+ });
try {
await requestIntlQuote({
diff --git a/frontend/lib/tests/shop/monobank-webhook-apply-outcomes.test.ts b/frontend/lib/tests/shop/monobank-webhook-apply-outcomes.test.ts
index 5fb616a3..e76f4d24 100644
--- a/frontend/lib/tests/shop/monobank-webhook-apply-outcomes.test.ts
+++ b/frontend/lib/tests/shop/monobank-webhook-apply-outcomes.test.ts
@@ -150,7 +150,7 @@ async function insertAttempt(args: {
invoiceId: string;
providerModifiedAt: Date | null;
}) {
- const attemptStatus =
+ const attemptStatus =
args.status ??
(await pickEnumLabelByColumn('payment_attempts', 'status', [
'active',
diff --git a/frontend/lib/tests/shop/monobank-webhook-retry-classifier.test.ts b/frontend/lib/tests/shop/monobank-webhook-retry-classifier.test.ts
index d07026b4..10ca4f8b 100644
--- a/frontend/lib/tests/shop/monobank-webhook-retry-classifier.test.ts
+++ b/frontend/lib/tests/shop/monobank-webhook-retry-classifier.test.ts
@@ -35,4 +35,3 @@ describe('monobank webhook retry classifier', () => {
expect(isRetryableApplyError(err)).toBe(true);
});
});
-
diff --git a/frontend/lib/tests/shop/notifications-projector-phase3.test.ts b/frontend/lib/tests/shop/notifications-projector-phase3.test.ts
index 6783f815..fde37297 100644
--- a/frontend/lib/tests/shop/notifications-projector-phase3.test.ts
+++ b/frontend/lib/tests/shop/notifications-projector-phase3.test.ts
@@ -99,7 +99,9 @@ describe.sequential('notifications projector phase 3', () => {
await db.insert(shippingEvents).values({
id: crypto.randomUUID(),
orderId,
- provider: eventName.startsWith('quote_') ? 'intl_quote' : 'nova_poshta',
+ provider: eventName.startsWith('quote_')
+ ? 'intl_quote'
+ : 'nova_poshta',
eventName,
eventSource: 'test_mapping',
eventRef: `evt_${crypto.randomUUID()}`,
diff --git a/frontend/lib/tests/shop/notifications-worker-phase3.test.ts b/frontend/lib/tests/shop/notifications-worker-phase3.test.ts
index cad45f4f..55c8c25b 100644
--- a/frontend/lib/tests/shop/notifications-worker-phase3.test.ts
+++ b/frontend/lib/tests/shop/notifications-worker-phase3.test.ts
@@ -234,7 +234,9 @@ describe.sequential('notifications worker phase 3', () => {
expect(row?.leaseOwner).toBeNull();
expect(row?.leaseExpiresAt).toBeNull();
expect(row?.lastErrorCode).toBe('TEMP_SEND_FAIL');
- expect(row?.updatedAt.getTime()).toBeGreaterThan(expiredLeaseAt.getTime());
+ expect(row?.updatedAt.getTime()).toBeGreaterThan(
+ expiredLeaseAt.getTime()
+ );
expect(row?.nextAttemptAt.getTime()).toBeGreaterThan(Date.now() - 1000);
} finally {
await cleanupOrder(orderId);
diff --git a/frontend/lib/tests/shop/notifications-worker-transport-phase3.test.ts b/frontend/lib/tests/shop/notifications-worker-transport-phase3.test.ts
index d18b74bf..d7f9e568 100644
--- a/frontend/lib/tests/shop/notifications-worker-transport-phase3.test.ts
+++ b/frontend/lib/tests/shop/notifications-worker-transport-phase3.test.ts
@@ -86,7 +86,9 @@ describe.sequential('notifications worker transport phase 3', () => {
});
it('marks outbox row as sent only when transport succeeds', async () => {
- sendShopNotificationEmailMock.mockResolvedValue({ messageId: 'msg-test-1' });
+ sendShopNotificationEmailMock.mockResolvedValue({
+ messageId: 'msg-test-1',
+ });
const orderId = await seedOrder();
try {
@@ -134,7 +136,9 @@ describe.sequential('notifications worker transport phase 3', () => {
});
it('dead-letters immediately when recipient email is missing', async () => {
- sendShopNotificationEmailMock.mockResolvedValue({ messageId: 'msg-test-2' });
+ sendShopNotificationEmailMock.mockResolvedValue({
+ messageId: 'msg-test-2',
+ });
const orderId = await seedOrder();
try {
diff --git a/frontend/lib/tests/shop/nova-poshta-client-network-failure.test.ts b/frontend/lib/tests/shop/nova-poshta-client-network-failure.test.ts
index 38606c5d..6cb079b4 100644
--- a/frontend/lib/tests/shop/nova-poshta-client-network-failure.test.ts
+++ b/frontend/lib/tests/shop/nova-poshta-client-network-failure.test.ts
@@ -45,7 +45,9 @@ describe('nova poshta client network failure', () => {
status: 0,
message: 'fetch failed',
});
- expect((error as NovaPoshtaApiError & { cause?: unknown }).cause).toBe(fetchError);
+ expect((error as NovaPoshtaApiError & { cause?: unknown }).cause).toBe(
+ fetchError
+ );
}
});
@@ -55,7 +57,9 @@ describe('nova poshta client network failure', () => {
vi.stubGlobal('fetch', fetchMock);
try {
- await getWarehousesBySettlementRef('aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee');
+ await getWarehousesBySettlementRef(
+ 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
+ );
throw new Error('expected getWarehousesBySettlementRef to throw');
} catch (error) {
expect(fetchMock).toHaveBeenCalledTimes(1);
@@ -65,7 +69,9 @@ describe('nova poshta client network failure', () => {
status: 0,
message: 'fetch failed',
});
- expect((error as NovaPoshtaApiError & { cause?: unknown }).cause).toBe(fetchError);
+ expect((error as NovaPoshtaApiError & { cause?: unknown }).cause).toBe(
+ fetchError
+ );
}
});
});
diff --git a/frontend/lib/tests/shop/order-payment-init-intl-gate-phase2.test.ts b/frontend/lib/tests/shop/order-payment-init-intl-gate-phase2.test.ts
index ad791dae..53eac00c 100644
--- a/frontend/lib/tests/shop/order-payment-init-intl-gate-phase2.test.ts
+++ b/frontend/lib/tests/shop/order-payment-init-intl-gate-phase2.test.ts
@@ -107,9 +107,8 @@ describe.sequential('order payment init intl gate (phase 2)', () => {
});
try {
- const { POST } = await import(
- '@/app/api/shop/orders/[id]/payment/init/route'
- );
+ const { POST } =
+ await import('@/app/api/shop/orders/[id]/payment/init/route');
const res = await POST(makeInitRequest(orderId), {
params: Promise.resolve({ id: orderId }),
});
@@ -131,9 +130,8 @@ describe.sequential('order payment init intl gate (phase 2)', () => {
});
try {
- const { POST } = await import(
- '@/app/api/shop/orders/[id]/payment/init/route'
- );
+ const { POST } =
+ await import('@/app/api/shop/orders/[id]/payment/init/route');
const res = await POST(makeInitRequest(orderId), {
params: Promise.resolve({ id: orderId }),
});
@@ -155,9 +153,8 @@ describe.sequential('order payment init intl gate (phase 2)', () => {
});
try {
- const { POST } = await import(
- '@/app/api/shop/orders/[id]/payment/init/route'
- );
+ const { POST } =
+ await import('@/app/api/shop/orders/[id]/payment/init/route');
const res = await POST(makeInitRequest(orderId), {
params: Promise.resolve({ id: orderId }),
});
diff --git a/frontend/lib/tests/shop/order-payment-init-token-scope-phase7.test.ts b/frontend/lib/tests/shop/order-payment-init-token-scope-phase7.test.ts
index 68c52735..78a594a5 100644
--- a/frontend/lib/tests/shop/order-payment-init-token-scope-phase7.test.ts
+++ b/frontend/lib/tests/shop/order-payment-init-token-scope-phase7.test.ts
@@ -2,7 +2,15 @@ import crypto from 'node:crypto';
import { eq } from 'drizzle-orm';
import { NextRequest } from 'next/server';
-import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
+import {
+ afterAll,
+ beforeAll,
+ beforeEach,
+ describe,
+ expect,
+ it,
+ vi,
+} from 'vitest';
import { db } from '@/db';
import { orders } from '@/db/schema';
@@ -23,12 +31,14 @@ vi.mock('@/lib/logging', async () => {
};
});
-const ensureStripePaymentIntentForOrderMock = vi.fn(async (..._args: unknown[]) => ({
- paymentIntentId: `pi_${crypto.randomUUID().replace(/-/g, '').slice(0, 24)}`,
- clientSecret: `cs_${crypto.randomUUID().replace(/-/g, '').slice(0, 24)}`,
- attemptId: crypto.randomUUID(),
- attemptNumber: 1,
-}));
+const ensureStripePaymentIntentForOrderMock = vi.fn(
+ async (..._args: unknown[]) => ({
+ paymentIntentId: `pi_${crypto.randomUUID().replace(/-/g, '').slice(0, 24)}`,
+ clientSecret: `cs_${crypto.randomUUID().replace(/-/g, '').slice(0, 24)}`,
+ attemptId: crypto.randomUUID(),
+ attemptNumber: 1,
+ })
+);
vi.mock('@/lib/services/orders/payment-attempts', () => ({
PaymentAttemptsExhaustedError: class PaymentAttemptsExhaustedError extends Error {
@@ -105,7 +115,8 @@ describe.sequential('order payment init token scope (phase 7)', () => {
await insertOrder(orderId);
try {
- const { POST } = await import('@/app/api/shop/orders/[id]/payment/init/route');
+ const { POST } =
+ await import('@/app/api/shop/orders/[id]/payment/init/route');
const unscopedToken = createStatusToken({ orderId });
const unscopedRes = await POST(makeRequest(orderId, unscopedToken), {
diff --git a/frontend/lib/tests/shop/order-status-token.test.ts b/frontend/lib/tests/shop/order-status-token.test.ts
index 6ce9ede6..0df03938 100644
--- a/frontend/lib/tests/shop/order-status-token.test.ts
+++ b/frontend/lib/tests/shop/order-status-token.test.ts
@@ -319,8 +319,12 @@ describe('order status token access control', () => {
)}`
);
- const res1 = await GET(req1, { params: Promise.resolve({ id: orderId }) });
- const res2 = await GET(req2, { params: Promise.resolve({ id: orderId }) });
+ const res1 = await GET(req1, {
+ params: Promise.resolve({ id: orderId }),
+ });
+ const res2 = await GET(req2, {
+ params: Promise.resolve({ id: orderId }),
+ });
expect(res1.status).toBe(200);
expect(res2.status).toBe(200);
@@ -332,7 +336,9 @@ describe('order status token access control', () => {
.from(adminAuditLog)
.where(eq(adminAuditLog.orderId, orderId));
- const tokenUseRows = rows.filter(r => r.action === 'guest_status_token.used');
+ const tokenUseRows = rows.filter(
+ r => r.action === 'guest_status_token.used'
+ );
expect(tokenUseRows.length).toBe(1);
expect(tokenUseRows[0]?.orderId).toBe(orderId);
} finally {
diff --git a/frontend/lib/tests/shop/orders-status-ownership.test.ts b/frontend/lib/tests/shop/orders-status-ownership.test.ts
index 3896ac8a..30e6fcb3 100644
--- a/frontend/lib/tests/shop/orders-status-ownership.test.ts
+++ b/frontend/lib/tests/shop/orders-status-ownership.test.ts
@@ -397,8 +397,7 @@ describe.sequential('orders/[id]/status ownership (J)', () => {
expect((json as any).paymentStatus).toBeTruthy();
expect((json as any).totalAmountMinor).toBeGreaterThan(0);
- const returnedId =
- (json as any).orderId ?? (json as any).id;
+ const returnedId = (json as any).orderId ?? (json as any).id;
if (!returnedId) {
const topKeys =
diff --git a/frontend/lib/tests/shop/returns-route-phase4.test.ts b/frontend/lib/tests/shop/returns-route-phase4.test.ts
index a8cb3772..0ead6aa2 100644
--- a/frontend/lib/tests/shop/returns-route-phase4.test.ts
+++ b/frontend/lib/tests/shop/returns-route-phase4.test.ts
@@ -5,7 +5,13 @@ import { NextRequest } from 'next/server';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { db } from '@/db';
-import { orderItems, orders, products, returnRequests, users } from '@/db/schema';
+import {
+ orderItems,
+ orders,
+ products,
+ returnRequests,
+ users,
+} from '@/db/schema';
import { toDbMoney } from '@/lib/shop/money';
const getCurrentUserMock = vi.hoisted(() => vi.fn());
diff --git a/frontend/lib/tests/shop/shipping-internal-retention-route-phase7.test.ts b/frontend/lib/tests/shop/shipping-internal-retention-route-phase7.test.ts
index 044308ca..2cd7a9ac 100644
--- a/frontend/lib/tests/shop/shipping-internal-retention-route-phase7.test.ts
+++ b/frontend/lib/tests/shop/shipping-internal-retention-route-phase7.test.ts
@@ -17,7 +17,8 @@ vi.mock('@/lib/logging', () => ({
logInfo: vi.fn(),
}));
-const { POST } = await import('@/app/api/shop/internal/shipping/retention/run/route');
+const { POST } =
+ await import('@/app/api/shop/internal/shipping/retention/run/route');
describe('internal shipping retention route (phase 7)', () => {
beforeEach(() => {
diff --git a/frontend/lib/tests/shop/shipping-np-cities-route-p2.test.ts b/frontend/lib/tests/shop/shipping-np-cities-route-p2.test.ts
index d0353208..1b17bd2d 100644
--- a/frontend/lib/tests/shop/shipping-np-cities-route-p2.test.ts
+++ b/frontend/lib/tests/shop/shipping-np-cities-route-p2.test.ts
@@ -31,10 +31,9 @@ vi.mock('@/lib/security/rate-limit', () => ({
}));
vi.mock('@/lib/services/shop/shipping/nova-poshta-client', async () => {
- const actual =
- await vi.importActual(
- '@/lib/services/shop/shipping/nova-poshta-client'
- );
+ const actual = await vi.importActual<
+ typeof import('@/lib/services/shop/shipping/nova-poshta-client')
+ >('@/lib/services/shop/shipping/nova-poshta-client');
return {
...actual,
searchSettlements: (...args: any[]) => searchSettlementsMock(...args),
diff --git a/frontend/lib/tests/shop/shipping-np-warehouses-route-p2.test.ts b/frontend/lib/tests/shop/shipping-np-warehouses-route-p2.test.ts
index f2ddb878..cd9cf088 100644
--- a/frontend/lib/tests/shop/shipping-np-warehouses-route-p2.test.ts
+++ b/frontend/lib/tests/shop/shipping-np-warehouses-route-p2.test.ts
@@ -31,10 +31,9 @@ vi.mock('@/lib/security/rate-limit', () => ({
}));
vi.mock('@/lib/services/shop/shipping/nova-poshta-client', async () => {
- const actual =
- await vi.importActual(
- '@/lib/services/shop/shipping/nova-poshta-client'
- );
+ const actual = await vi.importActual<
+ typeof import('@/lib/services/shop/shipping/nova-poshta-client')
+ >('@/lib/services/shop/shipping/nova-poshta-client');
return {
...actual,
getWarehousesBySettlementRef: (...args: any[]) =>
diff --git a/frontend/lib/tests/shop/shipping-shipments-worker-phase5.test.ts b/frontend/lib/tests/shop/shipping-shipments-worker-phase5.test.ts
index cdf5cd0d..ba6f2a13 100644
--- a/frontend/lib/tests/shop/shipping-shipments-worker-phase5.test.ts
+++ b/frontend/lib/tests/shop/shipping-shipments-worker-phase5.test.ts
@@ -4,7 +4,12 @@ import { asc, eq } from 'drizzle-orm';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { db } from '@/db';
-import { orders, orderShipping, shippingEvents, shippingShipments } from '@/db/schema';
+import {
+ orders,
+ orderShipping,
+ shippingEvents,
+ shippingShipments,
+} from '@/db/schema';
import { resetEnvCache } from '@/lib/env';
import * as logging from '@/lib/logging';
import {
@@ -69,7 +74,12 @@ function baseShippingSnapshot() {
async function seedShipment(args?: {
currency?: 'USD' | 'UAH';
attemptCount?: number;
- shipmentStatus?: 'queued' | 'failed' | 'processing' | 'needs_attention' | 'succeeded';
+ shipmentStatus?:
+ | 'queued'
+ | 'failed'
+ | 'processing'
+ | 'needs_attention'
+ | 'succeeded';
orderShippingStatus?:
| 'pending'
| 'queued'
@@ -125,7 +135,9 @@ async function seedShipment(args?: {
}
async function cleanupSeed(seed: Seeded) {
- await db.delete(shippingShipments).where(eq(shippingShipments.id, seed.shipmentId));
+ await db
+ .delete(shippingShipments)
+ .where(eq(shippingShipments.id, seed.shipmentId));
await db.delete(orderShipping).where(eq(orderShipping.orderId, seed.orderId));
await db.delete(orders).where(eq(orders.id, seed.orderId));
}
@@ -237,9 +249,9 @@ describe.sequential('shipping shipments worker phase 5', () => {
event => event.eventName === 'creating_label'
);
expect(creatingLabelEvents).toHaveLength(1);
- expect(events.every(event => event.eventSource === 'shipments_worker')).toBe(
- true
- );
+ expect(
+ events.every(event => event.eventSource === 'shipments_worker')
+ ).toBe(true);
} finally {
await cleanupSeed(seed);
}
@@ -285,7 +297,9 @@ describe.sequential('shipping shipments worker phase 5', () => {
expect(shipment?.attemptCount).toBe(1);
expect(shipment?.nextAttemptAt).toBeTruthy();
expect(shipment?.lastErrorCode).toBe('NP_HTTP_ERROR');
- expect(shipment?.lastErrorMessage).toBe('Nova Poshta temporary API error.');
+ expect(shipment?.lastErrorMessage).toBe(
+ 'Nova Poshta temporary API error.'
+ );
const [order] = await db
.select({
@@ -312,8 +326,9 @@ describe.sequential('shipping shipments worker phase 5', () => {
it('keeps retry outcome when failure-path event write throws', async () => {
const seed = await seedShipment();
- const originalWriteShippingEventImpl =
- vi.mocked(writeShippingEvent).getMockImplementation();
+ const originalWriteShippingEventImpl = vi
+ .mocked(writeShippingEvent)
+ .getMockImplementation();
try {
vi.mocked(createInternetDocument).mockRejectedValue(
@@ -372,9 +387,13 @@ describe.sequential('shipping shipments worker phase 5', () => {
expect(order?.shippingStatus).toBe('queued');
const events = await readOrderShippingEvents(seed.orderId);
- expect(events.some(event => event.eventName === 'creating_label')).toBe(true);
+ expect(events.some(event => event.eventName === 'creating_label')).toBe(
+ true
+ );
expect(
- events.some(event => event.eventName === 'label_creation_retry_scheduled')
+ events.some(
+ event => event.eventName === 'label_creation_retry_scheduled'
+ )
).toBe(false);
} finally {
if (originalWriteShippingEventImpl) {
@@ -389,7 +408,10 @@ describe.sequential('shipping shipments worker phase 5', () => {
});
it('max attempts -> needs_attention', async () => {
- const seed = await seedShipment({ attemptCount: 2, shipmentStatus: 'failed' });
+ const seed = await seedShipment({
+ attemptCount: 2,
+ shipmentStatus: 'failed',
+ });
try {
vi.mocked(createInternetDocument).mockRejectedValue(
@@ -453,8 +475,9 @@ describe.sequential('shipping shipments worker phase 5', () => {
it('keeps success outcome when post-success event write throws', async () => {
const seed = await seedShipment();
- const originalWriteShippingEventImpl =
- vi.mocked(writeShippingEvent).getMockImplementation();
+ const originalWriteShippingEventImpl = vi
+ .mocked(writeShippingEvent)
+ .getMockImplementation();
try {
vi.mocked(createInternetDocument).mockResolvedValue({
@@ -596,8 +619,12 @@ describe.sequential('shipping shipments worker phase 5', () => {
expect(order?.shippingProviderRef).toBeNull();
const events = await readOrderShippingEvents(seed.orderId);
- expect(events.some(event => event.eventName === 'creating_label')).toBe(false);
- expect(events.some(event => event.eventName === 'label_created')).toBe(false);
+ expect(events.some(event => event.eventName === 'creating_label')).toBe(
+ false
+ );
+ expect(events.some(event => event.eventName === 'label_created')).toBe(
+ false
+ );
} finally {
await cleanupSeed(seed);
}
@@ -676,7 +703,8 @@ describe.sequential('shipping shipments worker phase 5', () => {
warnSpy.mock.calls.some(
([name, meta]) =>
name === 'shipping_shipments_worker_order_transition_blocked' &&
- (meta as Record)?.code === 'ORDER_TRANSITION_BLOCKED'
+ (meta as Record)?.code ===
+ 'ORDER_TRANSITION_BLOCKED'
)
).toBe(false);
} finally {
@@ -736,9 +764,10 @@ describe.sequential('shipping shipments worker phase 5', () => {
const events = await readOrderShippingEvents(seed.orderId);
expect(
- events.some(event =>
- event.eventName === 'label_creation_retry_scheduled' ||
- event.eventName === 'label_creation_needs_attention'
+ events.some(
+ event =>
+ event.eventName === 'label_creation_retry_scheduled' ||
+ event.eventName === 'label_creation_needs_attention'
)
).toBe(false);
} finally {
@@ -773,7 +802,10 @@ describe.sequential('shipping shipments worker phase 5', () => {
});
it('dedupes creating_label event on processing-claim replay for same attempt', async () => {
- const seed = await seedShipment({ shipmentStatus: 'processing', attemptCount: 0 });
+ const seed = await seedShipment({
+ shipmentStatus: 'processing',
+ attemptCount: 0,
+ });
try {
const runA = `worker-a-${crypto.randomUUID()}`;
@@ -800,7 +832,9 @@ describe.sequential('shipping shipments worker phase 5', () => {
expect(second.length).toBe(1);
const events = await readOrderShippingEvents(seed.orderId);
- const creating = events.filter(event => event.eventName === 'creating_label');
+ const creating = events.filter(
+ event => event.eventName === 'creating_label'
+ );
expect(creating.length).toBe(1);
} finally {
await cleanupSeed(seed);
diff --git a/frontend/lib/tests/shop/stripe-webhook-psp-fields.test.ts b/frontend/lib/tests/shop/stripe-webhook-psp-fields.test.ts
index bc4cba95..7a3cd55e 100644
--- a/frontend/lib/tests/shop/stripe-webhook-psp-fields.test.ts
+++ b/frontend/lib/tests/shop/stripe-webhook-psp-fields.test.ts
@@ -76,7 +76,12 @@ async function cleanup(params: {
.where(eq(shippingShipments.orderId, orderId));
} catch (e) {
logTestCleanupFailed(
- { step: 'delete shippingShipments by orderId', orderId, eventId, productId },
+ {
+ step: 'delete shippingShipments by orderId',
+ orderId,
+ eventId,
+ productId,
+ },
e
);
}
diff --git a/frontend/lib/tests/shop/transition-matrix-phase6.test.ts b/frontend/lib/tests/shop/transition-matrix-phase6.test.ts
index 14823ba4..a7a21946 100644
--- a/frontend/lib/tests/shop/transition-matrix-phase6.test.ts
+++ b/frontend/lib/tests/shop/transition-matrix-phase6.test.ts
@@ -54,22 +54,22 @@ describe('transition matrix phase 6', () => {
it('shipping matrix allows/forbids expected transitions', () => {
expect(isShippingStatusTransitionAllowed('pending', 'queued')).toBe(true);
- expect(
- isShippingStatusTransitionAllowed('creating_label', 'queued')
- ).toBe(true);
- expect(
- isShippingStatusTransitionAllowed('needs_attention', 'queued')
- ).toBe(true);
+ expect(isShippingStatusTransitionAllowed('creating_label', 'queued')).toBe(
+ true
+ );
+ expect(isShippingStatusTransitionAllowed('needs_attention', 'queued')).toBe(
+ true
+ );
expect(
isShippingStatusTransitionAllowed(null, 'queued', { allowNullFrom: true })
).toBe(true);
expect(isShippingStatusTransitionAllowed('shipped', 'queued')).toBe(false);
- expect(
- isShippingStatusTransitionAllowed('label_created', 'shipped')
- ).toBe(true);
- expect(
- isShippingStatusTransitionAllowed('creating_label', 'shipped')
- ).toBe(false);
+ expect(isShippingStatusTransitionAllowed('label_created', 'shipped')).toBe(
+ true
+ );
+ expect(isShippingStatusTransitionAllowed('creating_label', 'shipped')).toBe(
+ false
+ );
expect(isShippingStatusTransitionAllowed('shipped', 'delivered')).toBe(
true
);
@@ -85,8 +85,6 @@ describe('transition matrix phase 6', () => {
expect(isReturnStatusTransitionAllowed('requested', 'refunded')).toBe(
false
);
- expect(isReturnStatusTransitionAllowed('refunded', 'approved')).toBe(
- false
- );
+ expect(isReturnStatusTransitionAllowed('refunded', 'approved')).toBe(false);
});
});
diff --git a/frontend/lib/user-stats.ts b/frontend/lib/user-stats.ts
index a17db70b..357eb9cf 100644
--- a/frontend/lib/user-stats.ts
+++ b/frontend/lib/user-stats.ts
@@ -1,4 +1,7 @@
-import { getUserLastAttemptPerQuiz, getUserQuizStats } from '@/db/queries/quizzes/quiz';
+import {
+ getUserLastAttemptPerQuiz,
+ getUserQuizStats,
+} from '@/db/queries/quizzes/quiz';
import { getUserProfile } from '@/db/queries/users';
import { getAllSponsors, getSponsors } from '@/lib/about/github-sponsors';
import { type UserStats } from '@/lib/achievements';
@@ -8,7 +11,9 @@ import { checkHasStarredRepo, resolveGitHubLogin } from '@/lib/github-stars';
* Fetches and resolves all necessary dependencies to compute a user's `UserStats`
* object required for evaluating achievements.
*/
-export async function getUserStatsForAchievements(userId: string): Promise {
+export async function getUserStatsForAchievements(
+ userId: string
+): Promise {
const user = await getUserProfile(userId);
if (!user) return null;
@@ -22,14 +27,16 @@ export async function getUserStatsForAchievements(userId: string): Promise {
if (s.email && s.email.toLowerCase() === userEmail) return true;
- if (userName && s.login && s.login.toLowerCase() === userName) return true;
+ if (userName && s.login && s.login.toLowerCase() === userName)
+ return true;
if (userName && s.name && s.name.toLowerCase() === userName) return true;
if (
userImage &&
s.avatarUrl &&
s.avatarUrl.trim().length > 0 &&
userImage.includes(s.avatarUrl.split('?')[0])
- ) return true;
+ )
+ return true;
return false;
});
}
@@ -39,12 +46,15 @@ export async function getUserStatsForAchievements(userId: string): Promise Number(a.percentage) === 100).length;
+ const perfectScores = attempts.filter(
+ a => Number(a.percentage) === 100
+ ).length;
const highScores = attempts.filter(a => Number(a.percentage) >= 90).length;
const uniqueQuizzes = lastAttempts.length;
@@ -80,7 +92,7 @@ export async function getUserStatsForAchievements(userId: string): Promise {
if (
- (value.methodCode === 'NP_WAREHOUSE' || value.methodCode === 'NP_LOCKER') &&
+ (value.methodCode === 'NP_WAREHOUSE' ||
+ value.methodCode === 'NP_LOCKER') &&
!value.selection.warehouseRef
) {
ctx.addIssue({
@@ -560,7 +561,9 @@ export type CheckoutLegalConsentPayload = z.infer<
>;
export type OrderIdParams = z.infer;
export type IntlQuoteOfferPayload = z.infer;
-export type IntlQuoteAcceptPayload = z.infer;
+export type IntlQuoteAcceptPayload = z.infer<
+ typeof intlQuoteAcceptPayloadSchema
+>;
export type IntlQuoteDeclinePayload = z.infer<
typeof intlQuoteDeclinePayloadSchema
>;
diff --git a/frontend/tests/e2e/shop-minimal-phase9.spec.ts b/frontend/tests/e2e/shop-minimal-phase9.spec.ts
index 5485e065..39fac50b 100644
--- a/frontend/tests/e2e/shop-minimal-phase9.spec.ts
+++ b/frontend/tests/e2e/shop-minimal-phase9.spec.ts
@@ -152,7 +152,9 @@ test.describe('shop e2e minimal phase 9', () => {
await insertOrder({ orderId });
try {
- const res = await request.get(`/api/shop/orders/${orderId}/status?view=lite`);
+ const res = await request.get(
+ `/api/shop/orders/${orderId}/status?view=lite`
+ );
expect(res.status()).toBe(401);
const body = await res.json();
expect(body.code).toBe('STATUS_TOKEN_REQUIRED');