diff --git a/dev-server.log b/dev-server.log
new file mode 100644
index 00000000..226a7751
--- /dev/null
+++ b/dev-server.log
@@ -0,0 +1,4170 @@
+
+> stormcom@0.1.0 dev
+> next dev
+
+▲ Next.js 16.1.6 (Turbopack)
+- Local: http://localhost:3000
+- Network: http://192.168.1.101:3000
+- Environments: .env.local, .env
+- Experiments (use with caution):
+ · optimizePackageImports
+
+✓ Starting...
+✓ Ready in 2.4s
+○ Compiling /dashboard/subscriptions ...
+ GET /api/notifications?limit=10 200 in 2.3s (compile: 1587ms, render: 696ms)
+ GET /dashboard/subscriptions 200 in 9.4s (compile: 8.7s, render: 719ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/auth/session 200 in 1081ms (compile: 1043ms, render: 38ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 107ms (compile: 53ms, render: 55ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 563ms (compile: 129ms, render: 434ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 693ms (compile: 11ms, render: 682ms)
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+ GET /api/billing/history?page=1&limit=10 200 in 822ms (compile: 68ms, render: 754ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772881246308 200 in 986ms (compile: 101ms, render: 885ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 1009ms (compile: 103ms, render: 906ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 45ms (compile: 5ms, render: 39ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 889ms (compile: 13ms, render: 876ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 37ms (compile: 5ms, render: 32ms)
+ GET /api/auth/session 200 in 67ms (compile: 35ms, render: 31ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 995ms (compile: 12ms, render: 984ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 80ms (compile: 14ms, render: 66ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 503ms (compile: 17ms, render: 486ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 73ms (compile: 15ms, render: 58ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 489ms (compile: 16ms, render: 473ms)
+ GET /api/auth/session 200 in 68ms (compile: 31ms, render: 37ms)
+ GET /api/auth/session 200 in 50ms (compile: 31ms, render: 19ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772881546690 200 in 4.5s (compile: 12ms, render: 4.5s)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 523ms (compile: 12ms, render: 511ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 185ms (compile: 12ms, render: 172ms)
+ GET / 200 in 598ms (compile: 359ms, render: 239ms)
+ GET / 200 in 168ms (compile: 4ms, render: 164ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 646ms (compile: 65ms, render: 581ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 60ms (compile: 6ms, render: 54ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 659ms (compile: 11ms, render: 648ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 253ms (compile: 22ms, render: 230ms)
+ GET /api/auth/session 200 in 90ms (compile: 42ms, render: 47ms)
+ GET /api/auth/session 200 in 63ms (compile: 35ms, render: 28ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 786ms (compile: 11ms, render: 774ms)
+ GET / 200 in 75ms (compile: 9ms, render: 66ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 87ms (compile: 19ms, render: 67ms)
+ GET / 200 in 75ms (compile: 10ms, render: 65ms)
+ GET / 200 in 66ms (compile: 3ms, render: 63ms)
+ GET / 200 in 76ms (compile: 2ms, render: 74ms)
+ GET / 200 in 97ms (compile: 5ms, render: 93ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 473ms (compile: 28ms, render: 445ms)
+○ Compiling /login ...
+ GET /login 200 in 8.0s (compile: 7.7s, render: 318ms)
+ GET /api/auth/session 200 in 115ms (compile: 43ms, render: 72ms)
+ GET /api/auth/providers 200 in 68ms (compile: 44ms, render: 23ms)
+ GET /api/auth/csrf 200 in 44ms (compile: 30ms, render: 14ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+ POST /api/auth/callback/credentials 401 in 479ms (compile: 22ms, render: 457ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 76ms (compile: 18ms, render: 58ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772881846689 200 in 1558ms (compile: 24ms, render: 1534ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 422ms (compile: 10ms, render: 412ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 170ms (compile: 42ms, render: 128ms)
+ GET /api/auth/session 200 in 60ms (compile: 31ms, render: 29ms)
+ GET /dashboard/subscriptions 200 in 235ms (compile: 15ms, render: 219ms)
+ GET /api/auth/session 200 in 79ms (compile: 37ms, render: 42ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 488ms (compile: 15ms, render: 473ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 450ms (compile: 8ms, render: 442ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+ GET /api/billing/history?page=1&limit=10 200 in 711ms (compile: 15ms, render: 696ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 929ms (compile: 18ms, render: 911ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772881903662 200 in 854ms (compile: 23ms, render: 830ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 42ms (compile: 6ms, render: 36ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 46ms (compile: 7ms, render: 39ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 847ms (compile: 30ms, render: 818ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 104ms (compile: 14ms, render: 90ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 741ms (compile: 80ms, render: 661ms)
+ GET /api/auth/session 200 in 166ms (compile: 90ms, render: 77ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 203ms (compile: 19ms, render: 184ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 868ms (compile: 31ms, render: 836ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 110ms (compile: 16ms, render: 94ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 754ms (compile: 33ms, render: 721ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 251ms (compile: 22ms, render: 230ms)
+ GET /api/auth/session 200 in 128ms (compile: 46ms, render: 82ms)
+ GET /api/auth/session 200 in 73ms (compile: 45ms, render: 28ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772882203692 200 in 1545ms (compile: 77ms, render: 1468ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 353ms (compile: 26ms, render: 327ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 83ms (compile: 14ms, render: 69ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 503ms (compile: 33ms, render: 470ms)
+ GET /api/auth/session 200 in 48ms (compile: 29ms, render: 19ms)
+ GET / 200 in 350ms (compile: 229ms, render: 121ms)
+ GET / 200 in 114ms (compile: 10ms, render: 104ms)
+ GET /login 200 in 167ms (compile: 13ms, render: 154ms)
+ GET /api/auth/session 200 in 95ms (compile: 53ms, render: 42ms)
+ GET /api/auth/providers 200 in 320ms (compile: 262ms, render: 58ms)
+ GET /api/auth/csrf 200 in 56ms (compile: 39ms, render: 17ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1478ms (compile: 27ms, render: 1450ms)
+ GET /api/auth/session 200 in 48ms (compile: 29ms, render: 19ms)
+○ Compiling /dashboard ...
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 467ms (compile: 18ms, render: 449ms)
+ GET /dashboard 200 in 9.6s (compile: 9.4s, render: 276ms)
+ GET /login 200 in 249ms (compile: 11ms, render: 238ms)
+ GET /api/auth/session 200 in 92ms (compile: 50ms, render: 42ms)
+ GET /api/auth/providers 200 in 89ms (compile: 65ms, render: 24ms)
+ GET /api/auth/csrf 200 in 64ms (compile: 39ms, render: 24ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1044ms (compile: 19ms, render: 1025ms)
+ GET /api/auth/session 200 in 43ms (compile: 23ms, render: 20ms)
+ GET /dashboard 200 in 388ms (compile: 31ms, render: 357ms)
+ GET /dashboard/subscriptions 200 in 1067ms (compile: 62ms, render: 1006ms)
+ GET /api/auth/session 200 in 90ms (compile: 66ms, render: 24ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 110ms (compile: 19ms, render: 91ms)
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 817ms (compile: 22ms, render: 795ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+ GET /api/billing/history?page=1&limit=10 200 in 789ms (compile: 41ms, render: 748ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1215ms (compile: 29ms, render: 1185ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1200ms (compile: 63ms, render: 1137ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772882328759 200 in 611ms (compile: 48ms, render: 563ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 113ms (compile: 18ms, render: 95ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772882332198 200 in 554ms (compile: 24ms, render: 531ms)
+ GET / 200 in 101ms (compile: 6ms, render: 95ms)
+ GET / 200 in 101ms (compile: 9ms, render: 92ms)
+ GET /login 200 in 111ms (compile: 10ms, render: 100ms)
+ GET /api/auth/session 200 in 80ms (compile: 49ms, render: 30ms)
+ GET /api/auth/providers 200 in 47ms (compile: 32ms, render: 15ms)
+ GET /api/auth/csrf 200 in 27ms (compile: 20ms, render: 7ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 917ms (compile: 11ms, render: 905ms)
+ GET /api/auth/session 200 in 42ms (compile: 19ms, render: 23ms)
+ GET /dashboard 200 in 119ms (compile: 11ms, render: 109ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 321ms (compile: 189ms, render: 132ms)
+ GET /login 200 in 490ms (compile: 7ms, render: 482ms)
+ GET /login 200 in 435ms (compile: 25ms, render: 410ms)
+ GET /login 200 in 372ms (compile: 37ms, render: 335ms)
+ GET /login 200 in 375ms (compile: 15ms, render: 361ms)
+ GET /api/auth/session 200 in 224ms (compile: 192ms, render: 32ms)
+ GET /api/auth/session 200 in 136ms (compile: 56ms, render: 80ms)
+ GET /api/auth/session 200 in 203ms (compile: 145ms, render: 58ms)
+ GET /api/auth/session 200 in 152ms (compile: 109ms, render: 43ms)
+ GET /api/auth/providers 200 in 670ms (compile: 563ms, render: 107ms)
+ GET /api/auth/providers 200 in 624ms (compile: 574ms, render: 49ms)
+ GET /api/auth/providers 200 in 144ms (compile: 47ms, render: 97ms)
+ GET /api/auth/providers 200 in 105ms (compile: 70ms, render: 35ms)
+ GET /api/auth/csrf 200 in 98ms (compile: 45ms, render: 53ms)
+ GET /api/auth/csrf 200 in 87ms (compile: 53ms, render: 34ms)
+ GET /api/auth/csrf 200 in 70ms (compile: 27ms, render: 42ms)
+ GET /api/auth/csrf 200 in 47ms (compile: 22ms, render: 26ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1065ms (compile: 37ms, render: 1028ms)
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1099ms (compile: 20ms, render: 1079ms)
+ POST /api/auth/callback/credentials 200 in 1037ms (compile: 14ms, render: 1023ms)
+ GET /api/auth/session 200 in 35ms (compile: 20ms, render: 15ms)
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1076ms (compile: 19ms, render: 1057ms)
+ GET /api/auth/session 200 in 69ms (compile: 14ms, render: 56ms)
+ GET /api/auth/session 200 in 762ms (compile: 18ms, render: 744ms)
+ GET /api/auth/session 200 in 1159ms (compile: 197ms, render: 962ms)
+ GET /dashboard 200 in 17.6s (compile: 222ms, render: 17.3s)
+ GET /dashboard 200 in 17.3s (compile: 204ms, render: 17.1s)
+ GET /dashboard 200 in 20.4s (compile: 336ms, render: 20.1s)
+ GET /dashboard 200 in 19.8s (compile: 133ms, render: 19.7s)
+ GET /api/auth/session 200 in 418ms (compile: 117ms, render: 301ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 7.7s (compile: 224ms, render: 7.4s)
+ GET /dashboard/subscriptions?renewed=true 200 in 33.9s (compile: 1794ms, render: 32.1s)
+ GET /dashboard/subscriptions 200 in 36.6s (compile: 939ms, render: 35.7s)
+ GET /dashboard/subscriptions 200 in 37.0s (compile: 267ms, render: 36.7s)
+ GET /api/auth/session 200 in 25.0s (compile: 10.7s, render: 14.3s)
+ GET /dashboard/subscriptions 200 in 58s (compile: 2.0s, render: 56s)
+ GET /api/auth/session 200 in 4.1s (compile: 1366ms, render: 2.7s)
+ GET /api/auth/session 200 in 4.1s (compile: 1710ms, render: 2.4s)
+ GET /api/auth/session 200 in 2.6s (compile: 2.3s, render: 273ms)
+ GET /dashboard/subscriptions 200 in 65s (compile: 232ms, render: 65s)
+ GET /api/auth/session 200 in 11.7s (compile: 2.4s, render: 9.3s)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+ GET /api/subscriptions/current 200 in 11.5s (compile: 11.2s, render: 336ms)
+ GET /api/subscriptions/plans 200 in 12.9s (compile: 11.9s, render: 915ms)
+ GET /api/subscriptions/current?t=1772882469781 200 in 13.5s (compile: 12.5s, render: 991ms)
+ GET /api/notifications?limit=10 200 in 15.0s (compile: 12.2s, render: 2.8s)
+ GET /api/billing/history?page=1&limit=10 200 in 15.0s (compile: 13.7s, render: 1263ms)
+ GET /api/subscriptions/current 200 in 15.0s (compile: 12.6s, render: 2.4s)
+ GET /api/subscriptions/current?t=1772882469817 200 in 13.8s (compile: 12.8s, render: 946ms)
+ GET /api/subscriptions/plans 200 in 14.2s (compile: 13.1s, render: 1101ms)
+ GET /api/notifications?limit=10 200 in 15.0s (compile: 10.4s, render: 4.6s)
+ GET /api/subscriptions/plans 200 in 11.5s (compile: 11.2s, render: 250ms)
+ GET /api/billing/history?page=1&limit=10 200 in 11.5s (compile: 11.4s, render: 81ms)
+ GET /api/subscriptions/current?t=1772882472473 200 in 11.5s (compile: 11.2s, render: 283ms)
+ GET /api/subscriptions/current 200 in 11.5s (compile: 11.3s, render: 163ms)
+ GET /dashboard/subscriptions 200 in 13.3s (compile: 12.6s, render: 732ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 822ms (compile: 378ms, render: 445ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 213ms (compile: 46ms, render: 167ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 737ms (compile: 40ms, render: 698ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 938ms (compile: 83ms, render: 856ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+ GET /api/billing/history?page=1&limit=10 200 in 1289ms (compile: 132ms, render: 1157ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 1578ms (compile: 35ms, render: 1544ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772882506740 200 in 1000ms (compile: 39ms, render: 961ms)
+ GET /login 200 in 184ms (compile: 16ms, render: 169ms)
+ GET /api/auth/session 200 in 83ms (compile: 49ms, render: 33ms)
+ GET /api/auth/providers 200 in 202ms (compile: 150ms, render: 52ms)
+ GET /api/auth/csrf 200 in 58ms (compile: 31ms, render: 27ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 670ms (compile: 39ms, render: 630ms)
+ GET /api/auth/session 200 in 62ms (compile: 38ms, render: 24ms)
+ GET /dashboard 200 in 335ms (compile: 169ms, render: 166ms)
+ GET /dashboard 200 in 1518ms (compile: 44ms, render: 1474ms)
+ GET /api/auth/session 200 in 125ms (compile: 95ms, render: 31ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+ GET /api/subscriptions/current 200 in 270ms (compile: 38ms, render: 232ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+[GET /api/stores] Calling getUserContext...
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 1046ms (compile: 69ms, render: 977ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1358ms (compile: 633ms, render: 726ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1437ms (compile: 726ms, render: 712ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1533ms (compile: 34ms, render: 1499ms)
+[API] GET /api/subscriptions/current - initializing system
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 530ms (compile: 46ms, render: 484ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 717ms (compile: 72ms, render: 646ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 968ms (compile: 390ms, render: 578ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1437ms (compile: 35ms, render: 1402ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 3.0s (compile: 987ms, render: 2000ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1224ms (compile: 22ms, render: 1202ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772882522742 200 in 659ms (compile: 15ms, render: 645ms)
+ GET / 200 in 183ms (compile: 93ms, render: 91ms)
+ GET / 200 in 80ms (compile: 4ms, render: 76ms)
+ GET /login 200 in 104ms (compile: 12ms, render: 92ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 69ms (compile: 13ms, render: 56ms)
+ GET /api/auth/session 200 in 110ms (compile: 86ms, render: 24ms)
+ GET /api/auth/providers 200 in 196ms (compile: 162ms, render: 35ms)
+ GET /api/auth/csrf 200 in 47ms (compile: 29ms, render: 18ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1236ms (compile: 25ms, render: 1211ms)
+ GET /api/auth/session 200 in 137ms (compile: 48ms, render: 89ms)
+ GET /api/auth/session 200 in 174ms (compile: 76ms, render: 98ms)
+ GET /dashboard 200 in 388ms (compile: 113ms, render: 274ms)
+ GET /login 200 in 89ms (compile: 7ms, render: 82ms)
+ GET /api/auth/session 200 in 65ms (compile: 38ms, render: 27ms)
+ GET /api/auth/providers 200 in 58ms (compile: 44ms, render: 14ms)
+ GET /api/auth/csrf 200 in 41ms (compile: 21ms, render: 20ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 447ms (compile: 14ms, render: 432ms)
+ GET /api/auth/session 200 in 31ms (compile: 8ms, render: 23ms)
+ GET /dashboard 200 in 125ms (compile: 38ms, render: 87ms)
+ GET /dashboard/subscriptions 200 in 523ms (compile: 78ms, render: 445ms)
+ GET /api/auth/session 200 in 47ms (compile: 15ms, render: 32ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 478ms (compile: 19ms, render: 459ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 427ms (compile: 6ms, render: 421ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 615ms (compile: 19ms, render: 597ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+ GET /api/billing/history?page=1&limit=10 200 in 490ms (compile: 27ms, render: 463ms)
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 964ms (compile: 27ms, render: 937ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772882551229 200 in 716ms (compile: 17ms, render: 699ms)
+ GET /api/auth/session 200 in 41ms (compile: 22ms, render: 19ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 604ms (compile: 14ms, render: 590ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 68ms (compile: 16ms, render: 52ms)
+ GET / 200 in 108ms (compile: 30ms, render: 78ms)
+ GET / 200 in 73ms (compile: 3ms, render: 70ms)
+ GET /login 200 in 686ms (compile: 15ms, render: 671ms)
+ GET /api/auth/session 200 in 61ms (compile: 26ms, render: 35ms)
+ GET /api/auth/providers 200 in 146ms (compile: 106ms, render: 39ms)
+ GET /api/auth/csrf 200 in 34ms (compile: 17ms, render: 17ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1683ms (compile: 23ms, render: 1660ms)
+ GET /api/auth/session 200 in 50ms (compile: 18ms, render: 33ms)
+ GET /dashboard 200 in 360ms (compile: 19ms, render: 341ms)
+ GET /login 200 in 153ms (compile: 8ms, render: 145ms)
+ GET /api/auth/session 200 in 55ms (compile: 32ms, render: 23ms)
+ GET /api/auth/providers 200 in 73ms (compile: 54ms, render: 19ms)
+ GET /api/auth/csrf 200 in 54ms (compile: 39ms, render: 15ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 418ms (compile: 30ms, render: 388ms)
+ GET /api/auth/session 200 in 35ms (compile: 9ms, render: 26ms)
+ GET /dashboard 200 in 199ms (compile: 21ms, render: 177ms)
+ GET /dashboard/subscriptions?renewed=true 200 in 677ms (compile: 52ms, render: 626ms)
+ GET /api/auth/session 200 in 71ms (compile: 53ms, render: 18ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+ GET /dashboard/subscriptions 200 in 337ms (compile: 24ms, render: 313ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 677ms (compile: 13ms, render: 664ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 632ms (compile: 102ms, render: 530ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1266ms (compile: 35ms, render: 1231ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+ GET /api/billing/history?page=1&limit=10 200 in 873ms (compile: 44ms, render: 828ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772882625365 200 in 569ms (compile: 23ms, render: 546ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1967ms (compile: 176ms, render: 1791ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 81ms (compile: 6ms, render: 75ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 43ms (compile: 5ms, render: 38ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 1211ms (compile: 8ms, render: 1203ms)
+ GET / 200 in 79ms (compile: 13ms, render: 66ms)
+ GET / 200 in 69ms (compile: 2ms, render: 67ms)
+ GET /login 200 in 97ms (compile: 4ms, render: 93ms)
+ GET /api/auth/session 200 in 60ms (compile: 39ms, render: 21ms)
+ GET /api/auth/providers 200 in 78ms (compile: 49ms, render: 29ms)
+ GET /api/auth/csrf 200 in 70ms (compile: 42ms, render: 29ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1919ms (compile: 13ms, render: 1907ms)
+ GET /api/auth/session 200 in 60ms (compile: 21ms, render: 39ms)
+ GET /dashboard 200 in 268ms (compile: 29ms, render: 239ms)
+ GET /login 200 in 104ms (compile: 12ms, render: 92ms)
+ GET /api/auth/session 200 in 224ms (compile: 122ms, render: 102ms)
+ GET /api/auth/providers 200 in 90ms (compile: 68ms, render: 22ms)
+ GET /api/auth/csrf 200 in 69ms (compile: 48ms, render: 22ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 478ms (compile: 24ms, render: 454ms)
+ GET /api/auth/session 200 in 45ms (compile: 6ms, render: 39ms)
+ GET /dashboard 200 in 219ms (compile: 12ms, render: 207ms)
+ GET /dashboard 200 in 768ms (compile: 29ms, render: 739ms)
+ GET /api/auth/session 200 in 122ms (compile: 61ms, render: 61ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+ GET /api/subscriptions/current 200 in 268ms (compile: 20ms, render: 248ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 744ms (compile: 20ms, render: 723ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1665ms (compile: 52ms, render: 1613ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1679ms (compile: 164ms, render: 1516ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1714ms (compile: 92ms, render: 1622ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 535ms (compile: 23ms, render: 512ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 743ms (compile: 17ms, render: 727ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 221ms (compile: 44ms, render: 177ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 482ms (compile: 64ms, render: 417ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1389ms (compile: 21ms, render: 1368ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 851ms (compile: 77ms, render: 774ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1102ms (compile: 8ms, render: 1094ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772882722177 200 in 541ms (compile: 8ms, render: 533ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 953ms (compile: 24ms, render: 929ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 66ms (compile: 7ms, render: 59ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772882807698 200 in 1347ms (compile: 22ms, render: 1325ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 133ms (compile: 14ms, render: 119ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 66ms (compile: 7ms, render: 59ms)
+ GET /api/auth/session 200 in 96ms (compile: 52ms, render: 43ms)
+ GET /dashboard/subscriptions 200 in 168ms (compile: 16ms, render: 152ms)
+ GET /api/auth/session 200 in 48ms (compile: 24ms, render: 24ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 508ms (compile: 11ms, render: 497ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 464ms (compile: 4ms, render: 460ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5) OFFSET $6
+ GET /api/billing/history?page=1&limit=10 200 in 770ms (compile: 25ms, render: 744ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 990ms (compile: 13ms, render: 977ms)
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772882863880 200 in 900ms (compile: 20ms, render: 881ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 47ms (compile: 5ms, render: 42ms)
+ GET /api/auth/session 200 in 62ms (compile: 41ms, render: 21ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 61ms (compile: 9ms, render: 51ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 1629ms (compile: 11ms, render: 1618ms)
+✓ Compiled in 2.3s
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 105ms (compile: 36ms, render: 68ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 79ms (compile: 3ms, render: 76ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 74ms (compile: 3ms, render: 71ms)
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 581ms (compile: 21ms, render: 560ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 1052ms (compile: 19ms, render: 1034ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 708ms (compile: 25ms, render: 683ms)
+✓ Compiled in 697ms
+✓ Compiled in 1353ms
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 265ms (compile: 29ms, render: 236ms)
+✓ Compiled in 361ms
+✓ Compiled in 387ms
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 856ms (compile: 61ms, render: 795ms)
+ GET /api/auth/session 200 in 442ms (compile: 117ms, render: 325ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 302ms (compile: 56ms, render: 246ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 822ms (compile: 41ms, render: 781ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 297ms (compile: 45ms, render: 252ms)
+ GET / 200 in 396ms (compile: 134ms, render: 262ms)
+ GET / 200 in 183ms (compile: 6ms, render: 176ms)
+ GET /login 200 in 397ms (compile: 44ms, render: 353ms)
+ GET /api/auth/session 200 in 329ms (compile: 201ms, render: 128ms)
+ GET /api/auth/providers 200 in 113ms (compile: 73ms, render: 40ms)
+ GET /api/auth/csrf 200 in 51ms (compile: 28ms, render: 23ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1227ms (compile: 40ms, render: 1187ms)
+ GET /api/auth/session 200 in 65ms (compile: 35ms, render: 31ms)
+ GET /dashboard 200 in 323ms (compile: 68ms, render: 256ms)
+ GET /login 200 in 2.4s (compile: 24ms, render: 2.4s)
+ GET /login 200 in 2.5s (compile: 126ms, render: 2.4s)
+ GET /login 200 in 2.5s (compile: 120ms, render: 2.3s)
+ GET /login 200 in 2.5s (compile: 169ms, render: 2.3s)
+ GET /api/auth/session 200 in 611ms (compile: 337ms, render: 274ms)
+ GET /api/auth/session 200 in 744ms (compile: 381ms, render: 363ms)
+ GET /api/auth/session 200 in 744ms (compile: 404ms, render: 340ms)
+ GET /api/auth/session 200 in 302ms (compile: 238ms, render: 64ms)
+ GET /api/auth/providers 200 in 721ms (compile: 125ms, render: 596ms)
+ GET /api/auth/csrf 200 in 217ms (compile: 122ms, render: 95ms)
+ GET /api/auth/providers 200 in 356ms (compile: 287ms, render: 69ms)
+ GET /api/auth/providers 200 in 185ms (compile: 61ms, render: 123ms)
+ GET /api/auth/providers 200 in 194ms (compile: 122ms, render: 71ms)
+ GET /api/auth/csrf 200 in 171ms (compile: 57ms, render: 114ms)
+ GET /api/auth/csrf 200 in 456ms (compile: 182ms, render: 274ms)
+ GET /api/auth/csrf 200 in 1119ms (compile: 253ms, render: 866ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 3.4s (compile: 42ms, render: 3.3s)
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 4.9s (compile: 104ms, render: 4.8s)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 4.2s (compile: 708ms, render: 3.5s)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+ GET /api/auth/session 200 in 41ms (compile: 20ms, render: 21ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+ GET /api/auth/session 200 in 332ms (compile: 177ms, render: 155ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 4.6s (compile: 155ms, render: 4.4s)
+ POST /api/auth/callback/credentials 200 in 4.7s (compile: 1885ms, render: 2.9s)
+ GET /dashboard 200 in 31.1s (compile: 26ms, render: 31.1s)
+ GET /dashboard 200 in 30.6s (compile: 6.8s, render: 23.7s)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 335ms (compile: 43ms, render: 292ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+ GET /login 200 in 534ms (compile: 18ms, render: 517ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772883164685 200 in 3.6s (compile: 41ms, render: 3.6s)
+ GET /api/auth/session 200 in 124ms (compile: 74ms, render: 51ms)
+ GET /api/auth/providers 200 in 68ms (compile: 48ms, render: 20ms)
+ GET /api/auth/csrf 200 in 68ms (compile: 50ms, render: 18ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+ POST /api/auth/callback/credentials 200 in 511ms (compile: 24ms, render: 487ms)
+ GET /api/auth/session 200 in 45ms (compile: 23ms, render: 22ms)
+ GET /dashboard 200 in 208ms (compile: 34ms, render: 174ms)
+ GET /dashboard 200 in 1028ms (compile: 36ms, render: 992ms)
+ GET /api/auth/session 200 in 59ms (compile: 37ms, render: 22ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+ GET /api/subscriptions/current 200 in 173ms (compile: 16ms, render: 157ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 880ms (compile: 20ms, render: 860ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1270ms (compile: 87ms, render: 1183ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1312ms (compile: 66ms, render: 1245ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1355ms (compile: 48ms, render: 1307ms)
+[API] GET /api/subscriptions/current - initializing system
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+ GET /api/subscriptions/current 200 in 1435ms (compile: 11ms, render: 1424ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1974ms (compile: 26ms, render: 1948ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 1394ms (compile: 119ms, render: 1274ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 2.7s (compile: 46ms, render: 2.6s)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query ROLLBACK
+prisma:error
+Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.aggregate()` invocation in
+F:\stromcomuil\stormcomui\.next\dev\server\chunks\[root-of-the-server]__33e07598._.js:445:152
+
+ 442 // Use $transaction to batch all queries - reduces DB round-trips from 7 to 1
+ 443 [currentRevenueResult, currentOrdersCount, currentCustomersCount, productsCount, previousRevenueResult, previousOrdersCount, previousCustomersCount] = await __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].$transaction([
+ 444 // Current period revenue
+→ 445 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.aggregate(
+Transaction API error: A rollback cannot be executed on an expired transaction. The timeout for this transaction was 5000 ms, however 5903 ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.
+prisma:error
+Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.count()` invocation in
+F:\stromcomuil\stormcomui\.next\dev\server\chunks\[root-of-the-server]__33e07598._.js:467:152
+
+ 464 }
+ 465 }),
+ 466 // Current period orders
+→ 467 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.count(
+Transaction API error: A rollback cannot be executed on an expired transaction. The timeout for this transaction was 5000 ms, however 5903 ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.
+prisma:error
+Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].customer.count()` invocation in
+F:\stromcomuil\stormcomui\.next\dev\server\chunks\[root-of-the-server]__33e07598._.js:478:155
+
+ 475 }
+ 476 }),
+ 477 // Current period new customers
+→ 478 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].customer.count(
+Transaction API error: A rollback cannot be executed on an expired transaction. The timeout for this transaction was 5000 ms, however 5903 ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.
+prisma:error
+Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].product.count()` invocation in
+F:\stromcomuil\stormcomui\.next\dev\server\chunks\[root-of-the-server]__33e07598._.js:489:154
+
+ 486 }
+ 487 }),
+ 488 // Total active products (not period-specific)
+→ 489 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].product.count(
+Transaction API error: A rollback cannot be executed on an expired transaction. The timeout for this transaction was 5000 ms, however 5903 ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.
+prisma:error
+Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.aggregate()` invocation in
+F:\stromcomuil\stormcomui\.next\dev\server\chunks\[root-of-the-server]__33e07598._.js:497:152
+
+ 494 }
+ 495 }),
+ 496 // Previous period revenue
+→ 497 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.aggregate(
+Transaction API error: A rollback cannot be executed on an expired transaction. The timeout for this transaction was 5000 ms, however 5903 ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.
+prisma:error
+Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.count()` invocation in
+F:\stromcomuil\stormcomui\.next\dev\server\chunks\[root-of-the-server]__33e07598._.js:519:152
+
+ 516 }
+ 517 }),
+ 518 // Previous period orders
+→ 519 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.count(
+Transaction API error: A rollback cannot be executed on an expired transaction. The timeout for this transaction was 5000 ms, however 5903 ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.
+prisma:error
+Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].customer.count()` invocation in
+F:\stromcomuil\stormcomui\.next\dev\server\chunks\[root-of-the-server]__33e07598._.js:530:155
+
+ 527 }
+ 528 }),
+ 529 // Previous period new customers
+→ 530 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].customer.count(
+Transaction API error: A rollback cannot be executed on an expired transaction. The timeout for this transaction was 5000 ms, however 5903 ms passed since the start of the transaction. Consider increasing the interactive transaction timeout or doing less work in the transaction.
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 500 in 7.9s (compile: 14ms, render: 7.9s)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 6.5s (compile: 47ms, render: 6.5s)
+node.exe : Failed to fetch dashboard stats via Prisma transaction {
+At C:\nvm4w\nodejs\npm.ps1:30 char:3
++ & $NODE_EXE $NPM_CLI_JS $args
++ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ + CategoryInfo : NotSpecified: (Failed to fetch...a transaction {
+ :String) [], RemoteException
+ + FullyQualifiedErrorId : NativeCommandError
+
+ storeId: 'cmma49691000lqgkarjv1duds',
+ from: '2026-02-05T11:32:57.585Z',
+ to: '2026-03-07T11:32:57.585Z',
+ error: '\n' +
+ 'Invalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$pri
+sma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.aggregate
+()` invocation in\n' +
+ 'F:\\stromcomuil\\stormcomui\\.next\\dev\\server\\chunks\\[root-of-the-serv
+er]__33e07598._.js:445:152\n' +
+ '\n' +
+ ' 442 // Use $transaction to batch all queries - reduces DB round-trips
+from 7 to 1\n' +
+ ' 443 [currentRevenueResult, currentOrdersCount, currentCustomersCount,
+productsCount, previousRevenueResult, previousOrdersCount,
+previousCustomersCount] = await __TURBOPACK__imported__module__$5b$project$5d2f
+$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma
+"].$transaction([\n' +
+ ' 444 // Current period revenue\n' +
+ '→ 445 __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$pr
+isma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__["prisma"].order.aggregat
+e(\n' +
+ 'Transaction API error: A rollback cannot be executed on an expired
+transaction. The timeout for this transaction was 5000 ms, however 5903 ms
+passed since the start of the transaction. Consider increasing the interactive
+transaction timeout or doing less work in the transaction.'
+}
+[2026-03-07T11:33:03.529Z] [ERROR] [API] Failed to process request
+{"error":"\nInvalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib
+$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__[\"prisma\"].order.
+aggregate()` invocation in\nF:\\stromcomuil\\stormcomui\\.next\\dev\\server\\ch
+unks\\[root-of-the-server]__33e07598._.js:445:152\n\n 442 // Use $transaction
+to batch all queries - reduces DB round-trips from 7 to 1\n 443
+[currentRevenueResult, currentOrdersCount, currentCustomersCount,
+productsCount, previousRevenueResult, previousOrdersCount,
+previousCustomersCount] = await __TURBOPACK__imported__module__$5b$project$5d2f
+$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__[\"prism
+a\"].$transaction([\n 444 // Current period revenue\n→ 445 __TURBOPACK
+__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$rou
+te$5d$__$28$ecmascript$29$__[\"prisma\"].order.aggregate(\nTransaction API
+error: A rollback cannot be executed on an expired transaction. The timeout
+for this transaction was 5000 ms, however 5903 ms passed since the start of
+the transaction. Consider increasing the interactive transaction timeout or
+doing less work in the transaction.","stack":"PrismaClientKnownRequestError:
+\nInvalid `__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma
+$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__[\"prisma\"].order.aggregate(
+)` invocation in\nF:\\stromcomuil\\stormcomui\\.next\\dev\\server\\chunks\\[roo
+t-of-the-server]__33e07598._.js:445:152\n\n 442 // Use $transaction to batch
+all queries - reduces DB round-trips from 7 to 1\n 443 [currentRevenueResult,
+currentOrdersCount, currentCustomersCount, productsCount,
+previousRevenueResult, previousOrdersCount, previousCustomersCount] = await __T
+URBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$prisma$2e$ts__$5b$ap
+p$2d$route$5d$__$28$ecmascript$29$__[\"prisma\"].$transaction([\n 444 //
+Current period revenue\n→ 445 __TURBOPACK__imported__module__$5b$project$5d
+2f$src$2f$lib$2f$prisma$2e$ts__$5b$app$2d$route$5d$__$28$ecmascript$29$__[\"pri
+sma\"].order.aggregate(\nTransaction API error: A rollback cannot be executed
+on an expired transaction. The timeout for this transaction was 5000 ms,
+however 5903 ms passed since the start of the transaction. Consider increasing
+the interactive transaction timeout or doing less work in the transaction.\n
+ at zr.handleRequestError (F:\\stromcomuil\\stormcomui\\node_modules\\@prisma\\
+client\\runtime\\client.js:65:8286)\n at zr.handleAndLogRequestError (F:\\st
+romcomuil\\stormcomui\\node_modules\\@prisma\\client\\runtime\\client.js:65:758
+1)\n at zr.request (F:\\stromcomuil\\stormcomui\\node_modules\\@prisma\\clie
+nt\\runtime\\client.js:65:7288)\n at process.processTicksAndRejections
+(node:internal/process/task_queues:105:5)\n at async a (F:\\stromcomuil\\sto
+rmcomui\\node_modules\\@prisma\\client\\runtime\\client.js:75:5816)"}
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 3.4s (compile: 19ms, render: 3.4s)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883187427 200 in 1138ms (compile: 22ms, render: 1116ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 78ms (compile: 17ms, render: 61ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 495ms (compile: 13ms, render: 482ms)
+ GET / 200 in 217ms (compile: 84ms, render: 134ms)
+ GET / 200 in 78ms (compile: 3ms, render: 74ms)
+ GET /login 200 in 148ms (compile: 19ms, render: 129ms)
+ GET /api/auth/session 200 in 125ms (compile: 42ms, render: 83ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 56ms (compile: 7ms, render: 49ms)
+ GET /api/auth/providers 200 in 124ms (compile: 89ms, render: 34ms)
+ GET /api/auth/csrf 200 in 61ms (compile: 48ms, render: 12ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1419ms (compile: 8ms, render: 1410ms)
+ GET /api/auth/session 200 in 49ms (compile: 23ms, render: 26ms)
+ GET /dashboard 200 in 309ms (compile: 17ms, render: 292ms)
+ GET /dashboard 200 in 50s (compile: 51ms, render: 50s)
+ GET /dashboard 200 in 52s (compile: 324ms, render: 52s)
+ GET /dashboard 200 in 53s (compile: 330ms, render: 53s)
+ GET /dashboard 200 in 60s (compile: 115ms, render: 60s)
+ GET /api/auth/session 200 in 16.8s (compile: 4.0s, render: 12.9s)
+ GET /api/auth/session 200 in 16.7s (compile: 12.8s, render: 3.8s)
+ GET /api/auth/session 200 in 1889ms (compile: 1725ms, render: 164ms)
+ GET /api/auth/session 200 in 17.9s (compile: 8.1s, render: 9.8s)
+ GET /dashboard 200 in 2.8s (compile: 97ms, render: 2.7s)
+ GET /api/auth/session 200 in 214ms (compile: 108ms, render: 106ms)
+[API] GET /api/subscriptions/current - initializing system
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 1348ms (compile: 113ms, render: 1235ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1940ms (compile: 198ms, render: 1743ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 2.6s (compile: 55ms, render: 2.6s)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 646ms (compile: 106ms, render: 540ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 726ms (compile: 61ms, render: 666ms)
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1535ms (compile: 86ms, render: 1449ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1410ms (compile: 64ms, render: 1346ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 1081ms (compile: 133ms, render: 948ms)
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1361ms (compile: 215ms, render: 1146ms)
+ GET /dashboard 200 in 522ms (compile: 36ms, render: 486ms)
+ GET /api/auth/session 200 in 159ms (compile: 92ms, render: 67ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+ GET /api/subscriptions/current 200 in 366ms (compile: 42ms, render: 324ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[GET /api/stores] Calling getUserContext...
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 406ms (compile: 120ms, render: 286ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1169ms (compile: 134ms, render: 1036ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1314ms (compile: 194ms, render: 1120ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1248ms (compile: 97ms, render: 1151ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 547ms (compile: 64ms, render: 484ms)
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 665ms (compile: 39ms, render: 626ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 383ms (compile: 31ms, render: 352ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1180ms (compile: 110ms, render: 1070ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 700ms (compile: 31ms, render: 669ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 963ms (compile: 24ms, render: 939ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883418992 200 in 891ms (compile: 11ms, render: 880ms)
+ GET / 200 in 332ms (compile: 71ms, render: 261ms)
+ GET / 200 in 449ms (compile: 25ms, render: 424ms)
+ GET /login 200 in 128ms (compile: 11ms, render: 117ms)
+ GET /api/auth/session 200 in 96ms (compile: 72ms, render: 24ms)
+ GET /api/auth/providers 200 in 196ms (compile: 132ms, render: 64ms)
+ GET /api/auth/csrf 200 in 78ms (compile: 61ms, render: 16ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."email" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId", "public"."Membership"."createdAt", "public"."Membership"."userId" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."storeId", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."userId" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."isActive" = $1 AND "public"."StoreStaff"."userId" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC LIMIT $3 OFFSET $4
+ POST /api/auth/callback/credentials 200 in 1940ms (compile: 23ms, render: 1916ms)
+ GET /api/auth/session 200 in 40ms (compile: 15ms, render: 24ms)
+ GET /dashboard 200 in 210ms (compile: 12ms, render: 199ms)
+ GET /dashboard 200 in 344ms (compile: 31ms, render: 313ms)
+ GET /api/auth/session 200 in 88ms (compile: 54ms, render: 34ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 458ms (compile: 25ms, render: 433ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 785ms (compile: 15ms, render: 770ms)
+[API] GET /api/subscriptions/current - initializing system
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1353ms (compile: 57ms, render: 1296ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 671ms (compile: 52ms, render: 619ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+ GET /api/subscriptions/current 200 in 815ms (compile: 34ms, render: 781ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 448ms (compile: 49ms, render: 399ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1241ms (compile: 42ms, render: 1200ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 664ms (compile: 61ms, render: 603ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1161ms (compile: 35ms, render: 1125ms)
+ GET /dashboard/subscriptions 200 in 1180ms (compile: 379ms, render: 801ms)
+ GET /api/auth/session 200 in 99ms (compile: 56ms, render: 42ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 164ms (compile: 16ms, render: 148ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 112ms (compile: 8ms, render: 104ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1450ms (compile: 32ms, render: 1418ms)
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1431ms (compile: 30ms, render: 1400ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883469095 200 in 1042ms (compile: 51ms, render: 992ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+ GET /api/billing/history?page=1&limit=10 200 in 1746ms (compile: 72ms, render: 1675ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883473352 200 in 556ms (compile: 12ms, render: 544ms)
+ GET /dashboard 200 in 436ms (compile: 22ms, render: 414ms)
+ GET /api/auth/session 200 in 113ms (compile: 74ms, render: 39ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 260ms (compile: 57ms, render: 204ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 916ms (compile: 103ms, render: 814ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 580ms (compile: 51ms, render: 529ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 487ms (compile: 11ms, render: 475ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 611ms (compile: 47ms, render: 564ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 351ms (compile: 19ms, render: 332ms)
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1192ms (compile: 102ms, render: 1090ms)
+ GET /api/subscriptions/current 200 in 598ms (compile: 23ms, render: 575ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query COMMIT
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+ GET /dashboard/subscriptions 200 in 554ms (compile: 52ms, render: 502ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/auth/session 200 in 84ms (compile: 55ms, render: 28ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 125ms (compile: 15ms, render: 110ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 98ms (compile: 17ms, render: 81ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 588ms (compile: 20ms, render: 568ms)
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+ GET /api/billing/history?page=1&limit=10 200 in 394ms (compile: 27ms, render: 367ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 619ms (compile: 32ms, render: 587ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883479741 200 in 582ms (compile: 13ms, render: 570ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883482853 200 in 544ms (compile: 8ms, render: 536ms)
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE "public"."Store"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."role" = CAST($1::text AS "public"."Role") AND "public"."Membership"."organizationId" IN ($2)) ORDER BY "public"."Membership"."id" ASC OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email" FROM "public"."User" WHERE "public"."User"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query INSERT INTO "public"."sub_payments" ("id","subscriptionId","amount","currency","status","gateway","gatewayTransactionId","gatewayResponse","idempotencyKey","retryCount","maxRetries","createdAt","updatedAt") VALUES ($1,$2,$3,$4,CAST($5::text AS "public"."SubPaymentStatus"),$6,$7,$8,$9,$10,$11,$12,$13) RETURNING "public"."sub_payments"."id", "public"."sub_payments"."subscriptionId", "public"."sub_payments"."invoiceId", "public"."sub_payments"."amount", "public"."sub_payments"."currency", "public"."sub_payments"."status"::text, "public"."sub_payments"."gateway", "public"."sub_payments"."gatewayTransactionId", "public"."sub_payments"."gatewayResponse", "public"."sub_payments"."idempotencyKey", "public"."sub_payments"."retryCount", "public"."sub_payments"."maxRetries", "public"."sub_payments"."nextRetryAt", "public"."sub_payments"."lastError", "public"."sub_payments"."metadata", "public"."sub_payments"."refundedAmount", "public"."sub_payments"."refundReason", "public"."sub_payments"."refundedAt", "public"."sub_payments"."paidAt", "public"."sub_payments"."failedAt", "public"."sub_payments"."createdAt", "public"."sub_payments"."updatedAt"
+ POST /api/subscriptions/renew 200 in 2.7s (compile: 1281ms, render: 1375ms)
+○ Compiling /api/subscriptions/[id] ...
+ GET /api/subscriptions/payments?status=PENDING&t=1772883486074 405 in 6.0s (compile: 6.0s, render: 19ms)
+[sub/sslcommerz/success] Callback received: {
+ status: 'VALID',
+ tran_id: '__LATEST_PENDING__',
+ val_id: 'test_val_1772883492113',
+ amount: '100.00'
+}
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."subscriptionId", "public"."sub_payments"."invoiceId", "public"."sub_payments"."amount", "public"."sub_payments"."currency", "public"."sub_payments"."status"::text, "public"."sub_payments"."gateway", "public"."sub_payments"."gatewayTransactionId", "public"."sub_payments"."gatewayResponse", "public"."sub_payments"."idempotencyKey", "public"."sub_payments"."retryCount", "public"."sub_payments"."maxRetries", "public"."sub_payments"."nextRetryAt", "public"."sub_payments"."lastError", "public"."sub_payments"."metadata", "public"."sub_payments"."refundedAmount", "public"."sub_payments"."refundReason", "public"."sub_payments"."refundedAt", "public"."sub_payments"."paidAt", "public"."sub_payments"."failedAt", "public"."sub_payments"."createdAt", "public"."sub_payments"."updatedAt" FROM "public"."sub_payments" WHERE "public"."sub_payments"."gatewayTransactionId" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE "public"."subscriptions"."id" IN (NULL) OFFSET $1
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" IN (NULL) OFFSET $1
+[sub/sslcommerz/success] Payment not found for: __LATEST_PENDING__
+ POST /api/subscriptions/sslcommerz/success 307 in 306ms (compile: 126ms, render: 180ms)
+ GET /dashboard 200 in 333ms (compile: 12ms, render: 321ms)
+ GET /api/auth/session 200 in 73ms (compile: 52ms, render: 21ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+ GET /api/subscriptions/current 200 in 223ms (compile: 29ms, render: 194ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 611ms (compile: 72ms, render: 539ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 912ms (compile: 49ms, render: 863ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 1202ms (compile: 133ms, render: 1070ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 1338ms (compile: 109ms, render: 1229ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 409ms (compile: 41ms, render: 367ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 592ms (compile: 32ms, render: 560ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 932ms (compile: 20ms, render: 913ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 374ms (compile: 14ms, render: 360ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 557ms (compile: 26ms, render: 531ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1070ms (compile: 14ms, render: 1056ms)
+ GET /dashboard/subscriptions?renewed=true 200 in 236ms (compile: 8ms, render: 228ms)
+ GET /api/auth/session 200 in 68ms (compile: 33ms, render: 35ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 113ms (compile: 15ms, render: 98ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 88ms (compile: 11ms, render: 77ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+ GET /dashboard/subscriptions 200 in 224ms (compile: 50ms, render: 174ms)
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 728ms (compile: 19ms, render: 709ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+ GET /api/billing/history?page=1&limit=10 200 in 433ms (compile: 27ms, render: 406ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 678ms (compile: 34ms, render: 644ms)
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883500126 200 in 627ms (compile: 23ms, render: 604ms)
+ GET /dashboard 200 in 357ms (compile: 20ms, render: 337ms)
+ GET /api/auth/session 200 in 92ms (compile: 57ms, render: 35ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 214ms (compile: 25ms, render: 189ms)
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 799ms (compile: 61ms, render: 738ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 493ms (compile: 39ms, render: 453ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+ GET /api/subscriptions/current 200 in 770ms (compile: 14ms, render: 756ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 846ms (compile: 18ms, render: 827ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 393ms (compile: 18ms, render: 375ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 998ms (compile: 30ms, render: 967ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1839ms (compile: 21ms, render: 1818ms)
+prisma:query COMMIT
+ GET /dashboard/subscriptions 200 in 1309ms (compile: 882ms, render: 427ms)
+ GET /api/auth/session 200 in 71ms (compile: 34ms, render: 37ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 1205ms (compile: 19ms, render: 1186ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 2.6s (compile: 11ms, render: 2.6s)
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 3.5s (compile: 12ms, render: 3.5s)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 3.0s (compile: 1212ms, render: 1765ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883511930 200 in 706ms (compile: 62ms, render: 643ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1) OFFSET $2
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1) OFFSET $2
+ GET /api/billing/history?page=1&limit=10 200 in 3.4s (compile: 35ms, render: 3.4s)
+ GET /dashboard 200 in 446ms (compile: 50ms, render: 396ms)
+ GET /api/auth/session 200 in 9.1s (compile: 8.9s, render: 202ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+ GET /api/stores 200 in 442ms (compile: 47ms, render: 395ms)
+ GET /api/stores 200 in 440ms (compile: 321ms, render: 119ms)
+ GET /api/subscriptions/current 200 in 442ms (compile: 34ms, render: 408ms)
+ GET /api/notifications?limit=10 200 in 444ms (compile: 15ms, render: 429ms)
+[GET /api/stores] Calling getUserContext...
+[GET /api/stores] Calling getUserContext...
+ GET /dashboard 200 in 513ms (compile: 330ms, render: 183ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+✓ Finished writing to filesystem cache in 13.7s
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+ GET /api/auth/session 200 in 1671ms (compile: 505ms, render: 1167ms)
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 106ms (compile: 23ms, render: 83ms)
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 325ms (compile: 7ms, render: 318ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma49641000jqgkaq56kbdud'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 647ms (compile: 20ms, render: 627ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 3.0s (compile: 9ms, render: 3.0s)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+ GET /api/subscriptions/current 200 in 1074ms (compile: 10ms, render: 1064ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 1412ms (compile: 148ms, render: 1264ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma49691000lqgkarjv1duds 200 in 455ms (compile: 30ms, render: 425ms)
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current 200 in 644ms (compile: 88ms, render: 556ms)
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma49691000lqgkarjv1duds 200 in 987ms (compile: 12ms, render: 975ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4962g000iqgkas43fycrb
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma49691000lqgkarjv1duds
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 150,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:37:25.095Z',
+ trialStartedAt: '2026-03-03T05:37:25.095Z'
+}
+ GET /api/subscriptions/current?t=1772883541860 200 in 572ms (compile: 15ms, render: 557ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 744ms (compile: 42ms, render: 702ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 91,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772883597639 200 in 721ms (compile: 52ms, render: 669ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 198ms (compile: 18ms, render: 179ms)
+ GET /api/auth/session 200 in 222ms (compile: 95ms, render: 127ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE "public"."Store"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."role" = CAST($1::text AS "public"."Role") AND "public"."Membership"."organizationId" IN ($2)) ORDER BY "public"."Membership"."id" ASC OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email" FROM "public"."User" WHERE "public"."User"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query INSERT INTO "public"."sub_payments" ("id","subscriptionId","amount","currency","status","gateway","gatewayTransactionId","gatewayResponse","idempotencyKey","retryCount","maxRetries","createdAt","updatedAt") VALUES ($1,$2,$3,$4,CAST($5::text AS "public"."SubPaymentStatus"),$6,$7,$8,$9,$10,$11,$12,$13) RETURNING "public"."sub_payments"."id", "public"."sub_payments"."subscriptionId", "public"."sub_payments"."invoiceId", "public"."sub_payments"."amount", "public"."sub_payments"."currency", "public"."sub_payments"."status"::text, "public"."sub_payments"."gateway", "public"."sub_payments"."gatewayTransactionId", "public"."sub_payments"."gatewayResponse", "public"."sub_payments"."idempotencyKey", "public"."sub_payments"."retryCount", "public"."sub_payments"."maxRetries", "public"."sub_payments"."nextRetryAt", "public"."sub_payments"."lastError", "public"."sub_payments"."metadata", "public"."sub_payments"."refundedAmount", "public"."sub_payments"."refundReason", "public"."sub_payments"."refundedAt", "public"."sub_payments"."paidAt", "public"."sub_payments"."failedAt", "public"."sub_payments"."createdAt", "public"."sub_payments"."updatedAt"
+ POST /api/subscriptions/renew 200 in 1743ms (compile: 40ms, render: 1703ms)
+[sub/sslcommerz/success] Callback received: {
+ status: 'VALID',
+ tran_id: 'SUB_1772883636369_23df54bf',
+ val_id: '260307174101wIv6GanAso7grdD',
+ amount: '999.00'
+}
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."subscriptionId", "public"."sub_payments"."invoiceId", "public"."sub_payments"."amount", "public"."sub_payments"."currency", "public"."sub_payments"."status"::text, "public"."sub_payments"."gateway", "public"."sub_payments"."gatewayTransactionId", "public"."sub_payments"."gatewayResponse", "public"."sub_payments"."idempotencyKey", "public"."sub_payments"."retryCount", "public"."sub_payments"."maxRetries", "public"."sub_payments"."nextRetryAt", "public"."sub_payments"."lastError", "public"."sub_payments"."metadata", "public"."sub_payments"."refundedAmount", "public"."sub_payments"."refundReason", "public"."sub_payments"."refundedAt", "public"."sub_payments"."paidAt", "public"."sub_payments"."failedAt", "public"."sub_payments"."createdAt", "public"."sub_payments"."updatedAt" FROM "public"."sub_payments" WHERE "public"."sub_payments"."gatewayTransactionId" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE "public"."subscriptions"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."subscriptionId", "public"."sub_payments"."invoiceId", "public"."sub_payments"."amount", "public"."sub_payments"."currency", "public"."sub_payments"."status"::text, "public"."sub_payments"."gateway", "public"."sub_payments"."gatewayTransactionId", "public"."sub_payments"."gatewayResponse", "public"."sub_payments"."idempotencyKey", "public"."sub_payments"."retryCount", "public"."sub_payments"."maxRetries", "public"."sub_payments"."nextRetryAt", "public"."sub_payments"."lastError", "public"."sub_payments"."metadata", "public"."sub_payments"."refundedAmount", "public"."sub_payments"."refundReason", "public"."sub_payments"."refundedAt", "public"."sub_payments"."paidAt", "public"."sub_payments"."failedAt", "public"."sub_payments"."createdAt", "public"."sub_payments"."updatedAt" FROM "public"."sub_payments" WHERE "public"."sub_payments"."gatewayTransactionId" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE "public"."subscriptions"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" IN ($1) OFFSET $2
+prisma:query UPDATE "public"."sub_payments" SET "status" = CAST($1::text AS "public"."SubPaymentStatus"), "paidAt" = $2, "updatedAt" = $3 WHERE ("public"."sub_payments"."id" = $4 AND 1=1) RETURNING "public"."sub_payments"."id", "public"."sub_payments"."subscriptionId", "public"."sub_payments"."invoiceId", "public"."sub_payments"."amount", "public"."sub_payments"."currency", "public"."sub_payments"."status"::text, "public"."sub_payments"."gateway", "public"."sub_payments"."gatewayTransactionId", "public"."sub_payments"."gatewayResponse", "public"."sub_payments"."idempotencyKey", "public"."sub_payments"."retryCount", "public"."sub_payments"."maxRetries", "public"."sub_payments"."nextRetryAt", "public"."sub_payments"."lastError", "public"."sub_payments"."metadata", "public"."sub_payments"."refundedAmount", "public"."sub_payments"."refundReason", "public"."sub_payments"."refundedAt", "public"."sub_payments"."paidAt", "public"."sub_payments"."failedAt", "public"."sub_payments"."createdAt", "public"."sub_payments"."updatedAt"
+prisma:query UPDATE "public"."subscriptions" SET "planId" = $1, "billingCycle" = CAST($2::text AS "public"."BillingCycle"), "currentPrice" = $3, "status" = CAST($4::text AS "public"."SubscriptionStatus"), "currentPeriodStart" = $5, "currentPeriodEnd" = $6, "lastPaymentAt" = $7, "nextPaymentAt" = $8, "failedPaymentCount" = $9, "autoRenew" = $10, "cancelAtPeriodEnd" = $11, "scheduledDowngradePlanId" = $12, "scheduledDowngradeAt" = $13, "updatedAt" = $14 WHERE ("public"."subscriptions"."id" = $15 AND 1=1) RETURNING "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt"
+prisma:query COMMIT
+prisma:query INSERT INTO "public"."subscription_logs" ("id","subscriptionId","changeType","fromStatus","toStatus","reason","performedByRole","createdAt") VALUES ($1,$2,CAST($3::text AS "public"."SubscriptionChangeType"),CAST($4::text AS "public"."SubscriptionStatus"),CAST($5::text AS "public"."SubscriptionStatus"),$6,$7,$8) RETURNING "public"."subscription_logs"."id", "public"."subscription_logs"."subscriptionId", "public"."subscription_logs"."changeType"::text, "public"."subscription_logs"."fromStatus"::text, "public"."subscription_logs"."toStatus"::text, "public"."subscription_logs"."fromPlanId", "public"."subscription_logs"."toPlanId", "public"."subscription_logs"."reason", "public"."subscription_logs"."metadata", "public"."subscription_logs"."performedBy", "public"."subscription_logs"."performedByRole", "public"."subscription_logs"."ipAddress", "public"."subscription_logs"."createdAt"
+prisma:query INSERT INTO "public"."invoices" ("id","subscriptionId","invoiceNumber","status","subtotal","taxAmount","discountAmount","totalAmount","currency","periodStart","periodEnd","issuedAt","paidAt","createdAt","updatedAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15) RETURNING "public"."invoices"."id"
+prisma:query INSERT INTO "public"."invoice_items" ("id","invoiceId","description","quantity","unitPrice","totalPrice","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING "public"."invoice_items"."id"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."id" = $1 LIMIT $2 OFFSET $3
+prisma:query COMMIT
+prisma:query UPDATE "public"."sub_payments" SET "gatewayResponse" = $1, "updatedAt" = $2 WHERE ("public"."sub_payments"."id" = $3 AND 1=1) RETURNING "public"."sub_payments"."id", "public"."sub_payments"."subscriptionId", "public"."sub_payments"."invoiceId", "public"."sub_payments"."amount", "public"."sub_payments"."currency", "public"."sub_payments"."status"::text, "public"."sub_payments"."gateway", "public"."sub_payments"."gatewayTransactionId", "public"."sub_payments"."gatewayResponse", "public"."sub_payments"."idempotencyKey", "public"."sub_payments"."retryCount", "public"."sub_payments"."maxRetries", "public"."sub_payments"."nextRetryAt", "public"."sub_payments"."lastError", "public"."sub_payments"."metadata", "public"."sub_payments"."refundedAmount", "public"."sub_payments"."refundReason", "public"."sub_payments"."refundedAt", "public"."sub_payments"."paidAt", "public"."sub_payments"."failedAt", "public"."sub_payments"."createdAt", "public"."sub_payments"."updatedAt"
+[sub/sslcommerz/success] Payment processed, redirecting to success page
+ POST /api/subscriptions/sslcommerz/success 307 in 2.3s (compile: 73ms, render: 2.2s)
+ POST /payment/success?txn=SUB_1772883636369_23df54bf&renewed=true 200 in 1127ms (compile: 951ms, render: 175ms)
+ GET /api/auth/session 200 in 143ms (compile: 50ms, render: 93ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 77ms (compile: 11ms, render: 67ms)
+ GET /settings/billing?upgraded=true&txn=SUB_1772883636369_23df54bf 200 in 597ms (compile: 548ms, render: 49ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+ GET /settings/billing 200 in 91ms (compile: 25ms, render: 66ms)
+ GET /settings/billing 200 in 34ms (compile: 5ms, render: 29ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 631ms (compile: 10ms, render: 621ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 67ms (compile: 3ms, render: 64ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 66ms (compile: 3ms, render: 62ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 64ms (compile: 4ms, render: 60ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 1482ms (compile: 28ms, render: 1454ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 499ms (compile: 6ms, render: 492ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 554ms (compile: 12ms, render: 543ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 535ms (compile: 14ms, render: 522ms)
+ GET /dashboard 200 in 209ms (compile: 41ms, render: 168ms)
+ GET /api/auth/session 200 in 51ms (compile: 27ms, render: 25ms)
+ GET /api/auth/session 200 in 44ms (compile: 13ms, render: 31ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 132ms (compile: 22ms, render: 110ms)
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+ GET /api/auth/session 200 in 67ms (compile: 20ms, render: 48ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 550ms (compile: 17ms, render: 533ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma4kv6s00010al0hk7o5uoc'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma4kv6s00010al0hk7o5uoc'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 330ms (compile: 11ms, render: 319ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 904ms (compile: 38ms, render: 866ms)
+[API] GET /api/subscriptions/current - initializing system
+[GET /api/stores] Calling getUserContext...
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+[GET /api/stores] userContext: exists
+[GET /api/stores] Role context: {
+ effectiveRole: 'OWNER',
+ userStoreId: undefined,
+ userOrganizationId: 'cmma4kv6s00010al0hk7o5uoc'
+}
+[GET /api/stores] Calling storeService.list...
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Store"."id" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."deletedAt" IS NULL AND "public"."Store"."organizationId" = $1) ORDER BY "public"."Store"."createdAt" DESC LIMIT $2 OFFSET $3
+[GET /api/stores] storeService.list returned: { storesCount: 1, hasPagination: true }
+ GET /api/stores 200 in 435ms (compile: 10ms, render: 425ms)
+ GET /api/subscriptions/current 200 in 442ms (compile: 32ms, render: 410ms)
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId", "public"."Store"."name", "public"."Store"."slug", "public"."Store"."subdomain", "public"."Store"."customDomain", "public"."Store"."description", "public"."Store"."logo", "public"."Store"."email", "public"."Store"."phone", "public"."Store"."website", "public"."Store"."address", "public"."Store"."city", "public"."Store"."state", "public"."Store"."postalCode", "public"."Store"."country", "public"."Store"."currency", "public"."Store"."timezone", "public"."Store"."locale", "public"."Store"."subscriptionPlan", "public"."Store"."subscriptionStatus"::text, "public"."Store"."trialEndsAt", "public"."Store"."subscriptionEndsAt", "public"."Store"."productLimit", "public"."Store"."orderLimit", "public"."Store"."createdAt", "public"."Store"."updatedAt", "public"."Store"."deletedAt", "public"."Store"."storefrontConfig", "public"."Store"."storefrontConfigDraft", "public"."Store"."storefrontConfigVersions", "public"."Store"."pathaoClientId", "public"."Store"."pathaoClientSecret", "public"."Store"."pathaoRefreshToken", "public"."Store"."pathaoStoreId", "public"."Store"."pathaoMode", "public"."Store"."pathaoAccessToken", "public"."Store"."pathaoEnabled", "public"."Store"."pathaoPassword", "public"."Store"."pathaoStoreName", "public"."Store"."pathaoTokenExpiry", "public"."Store"."pathaoUsername" FROM "public"."Store" WHERE ("public"."Store"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."role"::text, "public"."Membership"."organizationId" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."organizationId" IN ($2)) OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+ GET /api/subscription/grace-period-status?storeId=cmma6oy2j0000m8kaif20239x 200 in 405ms (compile: 48ms, render: 357ms)
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma6oy2j0000m8kaif20239x 200 in 1035ms (compile: 48ms, render: 987ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 615ms (compile: 24ms, render: 591ms)
+prisma:query SELECT "public"."User"."id", "public"."User"."name", "public"."User"."email", "public"."User"."emailVerified", "public"."User"."image", "public"."User"."passwordHash", "public"."User"."isSuperAdmin", "public"."User"."accountStatus"::text, "public"."User"."statusChangedAt", "public"."User"."statusChangedBy", "public"."User"."rejectionReason", "public"."User"."businessName", "public"."User"."businessDescription", "public"."User"."businessCategory", "public"."User"."phoneNumber", "public"."User"."approvedAt", "public"."User"."approvedBy", "public"."User"."createdAt", "public"."User"."updatedAt" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE "public"."Membership"."userId" = $1 ORDER BY "public"."Membership"."createdAt" DESC OFFSET $2
+prisma:query SELECT "public"."StoreStaff"."id", "public"."StoreStaff"."userId", "public"."StoreStaff"."storeId", "public"."StoreStaff"."role"::text, "public"."StoreStaff"."customRoleId", "public"."StoreStaff"."isActive", "public"."StoreStaff"."invitedBy", "public"."StoreStaff"."invitedAt", "public"."StoreStaff"."acceptedAt", "public"."StoreStaff"."createdAt", "public"."StoreStaff"."updatedAt" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."isActive" = $2) ORDER BY "public"."StoreStaff"."createdAt" DESC OFFSET $3
+prisma:query INSERT INTO "public"."audit_logs" ("id","userId","action","entityType","entityId","permission","role","allowed","ipAddress","userAgent","changes","createdAt") VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12) RETURNING "public"."audit_logs"."id", "public"."audit_logs"."storeId", "public"."audit_logs"."userId", "public"."audit_logs"."action", "public"."audit_logs"."entityType", "public"."audit_logs"."entityId", "public"."audit_logs"."permission", "public"."audit_logs"."role", "public"."audit_logs"."allowed", "public"."audit_logs"."endpoint", "public"."audit_logs"."method", "public"."audit_logs"."ipAddress", "public"."audit_logs"."userAgent", "public"."audit_logs"."changes", "public"."audit_logs"."createdAt"
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL AND "public"."Product"."status" = CAST($2::text AS "public"."ProductStatus")) OFFSET $3) AS "sub"
+prisma:query SELECT SUM("totalAmount") AS "_sum$totalAmount" FROM (SELECT "public"."Order"."totalAmount" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."status" IN (CAST($4::text AS "public"."OrderStatus"),CAST($5::text AS "public"."OrderStatus"),CAST($6::text AS "public"."OrderStatus"),CAST($7::text AS "public"."OrderStatus")) AND "public"."Order"."deletedAt" IS NULL) OFFSET $8) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."createdAt" <= $3 AND "public"."Order"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Customer"."id" FROM "public"."Customer" WHERE ("public"."Customer"."storeId" = $1 AND "public"."Customer"."createdAt" >= $2 AND "public"."Customer"."createdAt" <= $3 AND "public"."Customer"."deletedAt" IS NULL) OFFSET $4) AS "sub"
+prisma:query COMMIT
+ GET /api/analytics/dashboard?storeId=cmma6oy2j0000m8kaif20239x 200 in 933ms (compile: 20ms, render: 913ms)
+ GET /dashboard/subscriptions 200 in 170ms (compile: 46ms, render: 124ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+ GET /api/subscriptions/current 200 in 118ms (compile: 19ms, render: 99ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 112ms (compile: 31ms, render: 81ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 108ms (compile: 29ms, render: 79ms)
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+ GET /api/billing/history?page=1&limit=10 200 in 499ms (compile: 51ms, render: 448ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772883678318 200 in 646ms (compile: 53ms, render: 593ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 666ms (compile: 39ms, render: 627ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 700ms (compile: 15ms, render: 685ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772883678309 200 in 1222ms (compile: 23ms, render: 1199ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+ GET /api/billing/history?page=1&limit=10 200 in 924ms (compile: 24ms, render: 900ms)
+ GET /dashboard/subscriptions 200 in 155ms (compile: 11ms, render: 144ms)
+ GET /api/auth/session 200 in 75ms (compile: 42ms, render: 33ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 1384ms (compile: 28ms, render: 1357ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 1515ms (compile: 35ms, render: 1480ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 1563ms (compile: 15ms, render: 1547ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772883689653 200 in 1660ms (compile: 19ms, render: 1641ms)
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+ GET /api/billing/history?page=1&limit=10 200 in 1672ms (compile: 42ms, render: 1630ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 34ms (compile: 4ms, render: 30ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 79ms (compile: 14ms, render: 65ms)
+ GET /api/auth/session 200 in 49ms (compile: 25ms, render: 24ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 1070ms (compile: 9ms, render: 1061ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 44ms (compile: 5ms, render: 39ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 581ms (compile: 8ms, render: 573ms)
+ GET /api/auth/session 200 in 52ms (compile: 28ms, render: 24ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 45ms (compile: 7ms, render: 38ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 519ms (compile: 10ms, render: 509ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 38ms (compile: 8ms, render: 30ms)
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+ GET /api/notifications?limit=10 200 in 500ms (compile: 14ms, render: 486ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 40ms (compile: 6ms, render: 35ms)
+ GET /api/auth/session 200 in 89ms (compile: 55ms, render: 34ms)
+ GET /dashboard/subscriptions 200 in 262ms (compile: 43ms, render: 219ms)
+ GET /api/auth/session 200 in 88ms (compile: 56ms, render: 32ms)
+[API] GET /api/subscriptions/current - initializing system
+[API] GET /api/subscriptions/current - initializing system
+prisma:query SELECT "public"."User"."id", "public"."User"."isSuperAdmin" FROM "public"."User" WHERE ("public"."User"."id" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."trialDays" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."slug" = $1 LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."userId" = $1 AND "public"."StoreStaff"."storeId" = $2 AND "public"."StoreStaff"."isActive" = $3) LIMIT $4 OFFSET $5
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+ GET /api/notifications?limit=10 200 in 790ms (compile: 22ms, render: 768ms)
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."description", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."gracePeriodDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."dedicatedSupport", "public"."subscription_plans"."isPublic", "public"."subscription_plans"."isActive", "public"."subscription_plans"."sortOrder", "public"."subscription_plans"."badge", "public"."subscription_plans"."features", "public"."subscription_plans"."createdAt", "public"."subscription_plans"."updatedAt", "public"."subscription_plans"."deletedAt" FROM "public"."subscription_plans" WHERE ("public"."subscription_plans"."isActive" = $1 AND "public"."subscription_plans"."isPublic" = $2 AND "public"."subscription_plans"."deletedAt" IS NULL) ORDER BY "public"."subscription_plans"."sortOrder" ASC OFFSET $3
+ GET /api/subscriptions/plans 200 in 787ms (compile: 53ms, render: 734ms)
+prisma:query SELECT "public"."Membership"."id" FROM "public"."Membership" LEFT JOIN "public"."Organization" AS "j0" ON ("j0"."id") = ("public"."Membership"."organizationId") LEFT JOIN "public"."Store" AS "j1" ON ("j1"."organizationId") = ("j0"."id") WHERE ("public"."Membership"."userId" = $1 AND ("j1"."id" = $2 AND ("j1"."id" IS NOT NULL) AND ("j0"."id" IS NOT NULL))) LIMIT $3 OFFSET $4
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."status" = CAST($1::text AS "public"."SubscriptionStatus") AND "public"."subscriptions"."trialStartedAt" IS NOT NULL AND "public"."subscriptions"."trialEndsAt" IS NOT NULL) ORDER BY "public"."subscriptions"."id" ASC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+[API] Fetching subscription for user: cmma4kv0e00000al0327jbdoi
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Membership"."id", "public"."Membership"."userId", "public"."Membership"."organizationId", "public"."Membership"."role"::text, "public"."Membership"."createdAt", "public"."Membership"."updatedAt" FROM "public"."Membership" WHERE ("public"."Membership"."userId" = $1 AND "public"."Membership"."role" IN (CAST($2::text AS "public"."Role"),CAST($3::text AS "public"."Role"))) LIMIT $4 OFFSET $5
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."invoices"."id" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."Organization"."id", "public"."Organization"."name", "public"."Organization"."slug", "public"."Organization"."image", "public"."Organization"."createdAt", "public"."Organization"."updatedAt" FROM "public"."Organization" WHERE "public"."Organization"."id" IN ($1) OFFSET $2
+prisma:query SELECT "public"."invoices"."id", "public"."invoices"."subscriptionId", "public"."invoices"."invoiceNumber", "public"."invoices"."status", "public"."invoices"."subtotal", "public"."invoices"."taxAmount", "public"."invoices"."discountAmount", "public"."invoices"."totalAmount", "public"."invoices"."currency", "public"."invoices"."periodStart", "public"."invoices"."periodEnd", "public"."invoices"."issuedAt", "public"."invoices"."dueAt", "public"."invoices"."paidAt", "public"."invoices"."notes", "public"."invoices"."createdAt", "public"."invoices"."updatedAt" FROM "public"."invoices" WHERE "public"."invoices"."subscriptionId" = $1 ORDER BY "public"."invoices"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."invoice_items"."id", "public"."invoice_items"."invoiceId", "public"."invoice_items"."description", "public"."invoice_items"."quantity", "public"."invoice_items"."unitPrice", "public"."invoice_items"."totalPrice", "public"."invoice_items"."createdAt" FROM "public"."invoice_items" WHERE "public"."invoice_items"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+prisma:query SELECT "public"."Store"."id", "public"."Store"."organizationId" FROM "public"."Store" WHERE "public"."Store"."organizationId" IN ($1) OFFSET $2
+[API] Getting dashboard data for store: cmma6oy2j0000m8kaif20239x
+prisma:query SELECT "public"."sub_payments"."id", "public"."sub_payments"."gateway", "public"."sub_payments"."status"::text, "public"."sub_payments"."paidAt", "public"."sub_payments"."invoiceId" FROM "public"."sub_payments" WHERE "public"."sub_payments"."invoiceId" IN ($1,$2,$3,$4,$5,$6) OFFSET $7
+ GET /api/billing/history?page=1&limit=10 200 in 1086ms (compile: 55ms, render: 1031ms)
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscriptions"."id", "public"."subscriptions"."storeId", "public"."subscriptions"."planId", "public"."subscriptions"."status"::text, "public"."subscriptions"."billingCycle"::text, "public"."subscriptions"."priceOverride", "public"."subscriptions"."currentPrice", "public"."subscriptions"."trialStartedAt", "public"."subscriptions"."trialEndsAt", "public"."subscriptions"."currentPeriodStart", "public"."subscriptions"."currentPeriodEnd", "public"."subscriptions"."graceEndsAt", "public"."subscriptions"."cancelledAt", "public"."subscriptions"."suspendedAt", "public"."subscriptions"."autoRenew", "public"."subscriptions"."cancelAtPeriodEnd", "public"."subscriptions"."scheduledDowngradePlanId", "public"."subscriptions"."scheduledDowngradeAt", "public"."subscriptions"."featureOverrides", "public"."subscriptions"."lastPaymentAt", "public"."subscriptions"."nextPaymentAt", "public"."subscriptions"."failedPaymentCount", "public"."subscriptions"."maxPaymentRetries", "public"."subscriptions"."termsAcceptedAt", "public"."subscriptions"."termsVersion", "public"."subscriptions"."createdAt", "public"."subscriptions"."updatedAt" FROM "public"."subscriptions" WHERE ("public"."subscriptions"."storeId" = $1 AND 1=1) LIMIT $2 OFFSET $3
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT "public"."subscription_plans"."id", "public"."subscription_plans"."name", "public"."subscription_plans"."slug", "public"."subscription_plans"."tier"::text, "public"."subscription_plans"."monthlyPrice", "public"."subscription_plans"."yearlyPrice", "public"."subscription_plans"."trialDays", "public"."subscription_plans"."maxProducts", "public"."subscription_plans"."maxStaff", "public"."subscription_plans"."storageLimitMb", "public"."subscription_plans"."maxOrders", "public"."subscription_plans"."posEnabled", "public"."subscription_plans"."accountingEnabled", "public"."subscription_plans"."customDomainEnabled", "public"."subscription_plans"."apiAccessEnabled", "public"."subscription_plans"."features", "public"."subscription_plans"."badge" FROM "public"."subscription_plans" WHERE "public"."subscription_plans"."id" = $1 OFFSET $2
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."StoreStaff"."id" FROM "public"."StoreStaff" WHERE ("public"."StoreStaff"."storeId" = $1 AND "public"."StoreStaff"."isActive" = $2) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current?t=1772883986171 200 in 1365ms (compile: 40ms, render: 1325ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Order"."id" FROM "public"."Order" WHERE ("public"."Order"."storeId" = $1 AND "public"."Order"."createdAt" >= $2 AND "public"."Order"."deletedAt" IS NULL) OFFSET $3) AS "sub"
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."Product"."id" FROM "public"."Product" WHERE ("public"."Product"."storeId" = $1 AND "public"."Product"."deletedAt" IS NULL) OFFSET $2) AS "sub"
+[API] RESPONSE: {
+ status: 'ACTIVE',
+ remainingDays: 121,
+ isExpiringSoon: false,
+ trialEndsAt: '2026-03-10T05:45:24.985Z',
+ trialStartedAt: '2026-03-03T05:45:24.985Z'
+}
+ GET /api/subscriptions/current 200 in 1426ms (compile: 30ms, render: 1395ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 63ms (compile: 5ms, render: 58ms)
+ GET /api/auth/session 200 in 62ms (compile: 36ms, render: 26ms)
+ GET /api/stores/cmma74j6n00070ajyfy6sdgw8/sw 404 in 57ms (compile: 6ms, render: 51ms)
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 OFFSET $2) AS "sub"
+prisma:query SELECT "public"."notifications"."id", "public"."notifications"."userId", "public"."notifications"."type"::text, "public"."notifications"."title", "public"."notifications"."message", "public"."notifications"."data", "public"."notifications"."read", "public"."notifications"."readAt", "public"."notifications"."actionUrl", "public"."notifications"."actionLabel", "public"."notifications"."createdAt" FROM "public"."notifications" WHERE "public"."notifications"."userId" = $1 ORDER BY "public"."notifications"."createdAt" DESC LIMIT $2 OFFSET $3
+prisma:query SELECT COUNT(*) AS "_count$_all" FROM (SELECT "public"."notifications"."id" FROM "public"."notifications" WHERE ("public"."notifications"."userId" = $1 AND "public"."notifications"."read" = $2) OFFSET $3) AS "sub"
+ GET /api/notifications?limit=10 200 in 501ms (compile: 21ms, render: 479ms)
diff --git a/diagnose-renewal.mjs b/diagnose-renewal.mjs
new file mode 100644
index 00000000..a6351a2e
--- /dev/null
+++ b/diagnose-renewal.mjs
@@ -0,0 +1,53 @@
+import pkg from '@prisma/client';
+import { PrismaPg } from '@prisma/adapter-pg';
+const { PrismaClient } = pkg;
+
+const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
+const prisma = new PrismaClient({ adapter });
+
+async function main() {
+ const user = await prisma.user.findFirst({ where: { email: 'shisir4@gmail.com' } });
+ if (!user) { console.log('User not found'); return; }
+ console.log('User ID:', user.id);
+
+ const membership = await prisma.membership.findFirst({
+ where: { userId: user.id, role: { in: ['OWNER', 'ADMIN'] } },
+ include: { organization: { include: { store: { select: { id: true, name: true } } } } }
+ });
+ if (!membership?.organization?.store) { console.log('No store found'); return; }
+ const storeId = membership.organization.store.id;
+ console.log('Store:', membership.organization.store.name, 'ID:', storeId);
+
+ const sub = await prisma.subscription.findUnique({
+ where: { storeId },
+ include: { plan: true }
+ });
+ if (!sub) { console.log('No subscription'); return; }
+ console.log('\n=== SUBSCRIPTION ===');
+ console.log('Plan:', sub.plan.name, 'ID:', sub.plan.id);
+ console.log('Plan isPublic:', sub.plan.isPublic, 'isActive:', sub.plan.isActive);
+ console.log('Status:', sub.status);
+ console.log('PeriodStart:', sub.currentPeriodStart);
+ console.log('PeriodEnd:', sub.currentPeriodEnd);
+ console.log('billingCycle:', sub.billingCycle);
+
+ const plans = await prisma.subscriptionPlanModel.findMany({ where: { isPublic: true, isActive: true, deletedAt: null } });
+ console.log('\n=== PUBLIC PLANS ===');
+ plans.forEach(p => console.log(' -', p.name, 'id=' + p.id));
+ const found = plans.find(p => p.id === sub.planId);
+ console.log('\nCurrent plan in public list?', !!found);
+
+ const payments = await prisma.subPayment.findMany({
+ where: { subscriptionId: sub.id },
+ orderBy: { createdAt: 'desc' },
+ take: 5
+ });
+ console.log('\n=== RECENT PAYMENTS ===');
+ payments.forEach(p => {
+ let meta = {};
+ try { meta = JSON.parse(p.gatewayResponse); } catch {}
+ console.log(' -', p.status, '| tran:', p.gatewayTransactionId, '| created:', p.createdAt, '| planId:', meta.targetPlanId, '| isRenewal:', meta.isRenewal);
+ });
+}
+
+main().then(() => prisma.$disconnect()).catch(e => { console.error(e); prisma.$disconnect(); });
diff --git a/e2e/auth.setup.ts b/e2e/auth.setup.ts
index 19331496..d41fc64b 100644
--- a/e2e/auth.setup.ts
+++ b/e2e/auth.setup.ts
@@ -28,8 +28,8 @@ setup('authenticate', async ({ page }) => {
}
// Fill in credentials
- await page.locator('#email').fill('owner@example.com');
- await page.locator('#password').fill('Test123!@#');
+ await page.locator('#email').fill('shisir4@gmail.com');
+ await page.locator('#password').fill('susmoy14');
// Submit form
await page.locator('button[type="submit"]').filter({ hasText: /Sign In/i }).click();
diff --git a/e2e/subscription-renew.spec.ts b/e2e/subscription-renew.spec.ts
new file mode 100644
index 00000000..ea6adf3f
--- /dev/null
+++ b/e2e/subscription-renew.spec.ts
@@ -0,0 +1,301 @@
+/**
+ * Subscription Renewal E2E Tests
+ *
+ * Tests the full renewal flow:
+ * 1. Before payment → "Renew Plan" button visible
+ * 2. Click renew → API creates PENDING payment → SSLCommerz checkout URL
+ * 3. Simulate SSLCommerz success callback with real tran_id
+ * 4. Browser navigates through /payment/success redirect chain
+ * 5. After payment → "Renew Plan" button STILL visible (not "Select Plan")
+ */
+import { test, expect, type Page } from '@playwright/test';
+
+// ─────────────────────────────────────────────────────────────────────────────
+// Helpers
+// ─────────────────────────────────────────────────────────────────────────────
+
+/** Wait for PlanSelector to finish loading (skeleton → rendered cards) */
+async function waitForPlansLoaded(page: Page) {
+ await page
+ .waitForSelector('[class*="animate-pulse"]', {
+ state: 'detached',
+ timeout: 15000,
+ })
+ .catch(() => {});
+ await page.waitForTimeout(2000);
+}
+
+/** Get all plan buttons via data-testid */
+async function getPlanButtons(page: Page) {
+ return page.evaluate(() => {
+ const btns = Array.from(
+ document.querySelectorAll