// Database Service - Central export for all database-related imports
// This file re-exports everything from postgresImporter to provide a clean abstraction layer

import type { AdminOrderDetails } from '@packages/shared'
// import { getOrderDetails } from '@/src/postgresImporter'
import { getOrderDetails, initDb } from '@/src/sqliteImporter'

// Re-export everything from postgresImporter
// export * from '@/src/postgresImporter'

export * from '@/src/sqliteImporter'

export { initDb }

// Re-export getOrderDetails with the correct signature
export async function getOrderDetailsWrapper(orderId: number): Promise<AdminOrderDetails | null> {
  return getOrderDetails(orderId)
}

// Re-export all types from shared package
export type {
  // Admin types
  Banner,
  Complaint,
  ComplaintWithUser,
  Constant,
  ConstantUpdateResult,
  Coupon,
  CouponValidationResult,
  UserMiniInfo,
  Store,
  StaffUser,
  StaffRole,
  AdminOrderRow,
  AdminOrderDetails,
  AdminOrderUpdateResult,
  AdminOrderItemPackagingResult,
  AdminOrderMessageResult,
  AdminOrderBasicResult,
  AdminGetSlotOrdersResult,
  AdminGetAllOrdersResult,
  AdminGetAllOrdersResultWithUserId,
  AdminRebalanceSlotsResult,
  AdminCancelOrderResult,
  AdminUnit,
  AdminProduct,
  AdminProductWithRelations,
  AdminProductWithDetails,
  AdminProductTagInfo,
  AdminProductTagWithProducts,
  AdminProductListResponse,
  AdminProductResponse,
  AdminDeleteProductResult,
  AdminToggleOutOfStockResult,
  AdminUpdateSlotProductsResult,
  AdminSlotProductIdsResult,
  AdminSlotsProductIdsResult,
  AdminProductReview,
  AdminProductReviewWithSignedUrls,
  AdminProductReviewsResult,
  AdminProductReviewResponse,
  AdminProductGroup,
  AdminProductGroupsResult,
  AdminProductGroupResponse,
  AdminProductGroupInfo,
  AdminUpdateProductPricesResult,
  AdminDeliverySlot,
  AdminSlotProductSummary,
  AdminSlotWithProducts,
  AdminSlotWithProductsAndSnippets,
  AdminSlotWithProductsAndSnippetsBase,
  AdminSlotsResult,
  AdminSlotsListResult,
  AdminSlotResult,
  AdminSlotCreateResult,
  AdminSlotUpdateResult,
  AdminSlotDeleteResult,
  AdminDeliverySequence,
  AdminDeliverySequenceResult,
  AdminUpdateDeliverySequenceResult,
  AdminUpdateSlotCapacityResult,
  AdminVendorSnippet,
  AdminVendorSnippetWithAccess,
  AdminVendorSnippetWithSlot,
  AdminVendorSnippetProduct,
  AdminVendorSnippetWithProducts,
  AdminVendorSnippetCreateInput,
  AdminVendorSnippetUpdateInput,
  AdminVendorSnippetDeleteResult,
  AdminVendorSnippetOrderProduct,
  AdminVendorSnippetOrderSummary,
  AdminVendorSnippetOrdersResult,
  AdminVendorSnippetOrdersWithSlotResult,
  AdminVendorOrderSummary,
  AdminUpcomingSlotsResult,
  AdminVendorUpdatePackagingResult,
  UserAddress,
  UserAddressResponse,
  UserAddressesResponse,
  UserAddressDeleteResponse,
  UserBanner,
  UserBannersResponse,
  UserCartProduct,
  UserCartItem,
  UserCartResponse,
  UserComplaint,
  UserComplaintsResponse,
  UserRaiseComplaintResponse,
  UserStoreSummary,
  UserStoreSummaryData,
  UserStoresResponse,
  UserStoreSampleProduct,
  UserStoreSampleProductData,
  UserStoreDetail,
  UserStoreDetailData,
  UserStoreProduct,
  UserStoreProductData,
  UserTagSummary,
  UserProductDetail,
  UserProductDetailData,
  UserProductReview,
  UserProductReviewWithSignedUrls,
  UserProductReviewsResponse,
  UserCreateReviewResponse,
  UserSlotProduct,
  UserSlotWithProducts,
  UserSlotData,
  UserSlotAvailability,
  UserDeliverySlot,
  UserSlotsResponse,
  UserSlotsWithProductsResponse,
  UserSlotsListResponse,
  UserPaymentOrderResponse,
  UserPaymentVerifyResponse,
  UserPaymentFailResponse,
  UserAuthProfile,
  UserAuthResponse,
  UserAuthResult,
  UserOtpVerifyResponse,
  UserPasswordUpdateResponse,
  UserProfileResponse,
  UserDeleteAccountResponse,
  UserCouponUsage,
  UserCouponApplicableUser,
  UserCouponApplicableProduct,
  UserCoupon,
  UserCouponWithRelations,
  UserEligibleCouponsResponse,
  UserCouponDisplay,
  UserMyCouponsResponse,
  UserRedeemCouponResponse,
  UserSelfDataResponse,
  UserProfileCompleteResponse,
  UserSavePushTokenResponse,
  UserOrderItemSummary,
  UserOrderSummary,
  UserOrdersResponse,
  UserOrderDetail,
  UserCancelOrderResponse,
  UserUpdateNotesResponse,
  UserRecentProduct,
  UserRecentProductsResponse,
  // Store types
  StoreSummary,
  StoresSummaryResponse,
} from '@packages/shared';

export type {
  // User types
  User,
  UserDetails,
  Address,
  Product,
  CartItem,
  Order,
  OrderItem,
  Payment,
} from '@packages/shared';
