- Remove obsolete LogoutDialog component that displayed private keys
- Replace nostrStore.account references with authService.user in market module
- Fix property access paths to use authService.user.value instead of currentUser
- Update connection state checks to use relayHub instead of nostrStore
- Clean up TODOs and remove unused nostrStore imports
- Update chat module to use SERVICE_TOKENS for chat service registration and injection, enhancing consistency across the application.
- Modify useChat composable to reference the standardized service token, ensuring alignment with the new DI container structure.
- Clean up references to the previous CHAT_SERVICE_TOKEN, streamlining the codebase and improving maintainability.
- Reset payment state on initialization in PaymentService to prevent stuck states.
- Introduce forceResetPaymentState method for debugging purposes.
- Update useTicketPurchase and useLightningPayment composables to reflect changes in computed properties for better state handling.
- Ensure OrderHistory component resets payment state on mount to enhance user experience.
- Add detailed examples for WebSocket connection recovery and chat message synchronization in the VisibilityService documentation.
- Refactor ChatService to register with VisibilityService, enabling automatic handling of app visibility changes and missed message synchronization.
- Implement connection recovery logic in NostrclientHub and ChatService to ensure seamless user experience during app backgrounding.
- Update base module to ensure proper initialization of services with VisibilityService dependencies, enhancing overall connection management.
- Create comprehensive documentation for the new VisibilityService, detailing its purpose, core concepts, and architecture.
- Include an integration guide for module developers, outlining best practices for registering services and handling app visibility changes.
- Add example code snippets for implementing visibility management in various service types, ensuring clarity and ease of use.
- Introduce a troubleshooting section to address common issues and provide debugging tips for developers.
- Enhance the VisibilityService integration guide with real-world examples to illustrate practical usage scenarios.
- Introduce a new VisibilityService to handle application visibility state, including online/offline status and connection management.
- Update DI container to register the new VisibilityService and integrate it into the base module.
- Modify BaseService to include visibilityService as a dependency, ensuring proper initialization and error handling.
- Enhance RelayHub to register with VisibilityService for improved connection management during visibility changes.
- Refactor related components to utilize the new service, streamlining visibility handling across the application.
- Rename methods in PaymentService for improved readability: payInvoiceWithUserWallet to payWithWallet, openExternalLightningWallet to openExternalWallet, and handlePaymentWithFallback to handlePayment.
- Update related composables (useTicketPurchase, useLightningPayment) to reflect method name changes, ensuring consistent usage across the application.
- Modify RelayHub initialization process to set relay URLs before calling initialize, enhancing configuration clarity.
- Remove legacy compatibility flags in RelayHub to streamline the codebase and improve maintainability.
- Introduce PAYMENT_SERVICE token in di-container for dependency injection.
- Update base module to register and initialize PaymentService, ensuring it is available for use.
- Refactor useTicketPurchase and useLightningPayment composables to utilize PaymentService for wallet management, payment processing, and QR code generation.
- Delegate payment handling and error management to PaymentService, streamlining the payment workflow and improving user experience.
- Modify Navbar.vue to import and utilize the 'Store' icon in place of 'BarChart3' for improved visual representation.
- Update useModularNavigation.ts to change the icon for the 'Market Dashboard' from 'BarChart3' to 'Store', ensuring consistency across the application.
- Update AuthService and RelayHub to extend BaseService, introducing standardized initialization and metadata handling.
- Implement service-specific initialization methods in both services, enhancing error handling and logging.
- Modify NostrmarketService to inherit from BaseService, ensuring consistent dependency management and initialization.
- Refactor market module to dynamically import NostrmarketService, improving service registration and initialization flow.
- Enhance debug logging across services for better traceability during initialization and operation.
- Introduce BaseService as a foundational class for services, providing standardized dependency injection and initialization logic.
- Refactor ChatService to extend BaseService, enhancing its initialization process and dependency handling.
- Implement service metadata and structured initialization in ChatService, allowing for better tracking and error handling during service setup.
- Update chat module to initialize ChatService with dependency management, ensuring readiness before use.
- Import and utilize the Nostr store to retrieve the user's public key for order placement.
- Implement debug logging to track authentication state and public key availability.
- Ensure that the order placement process checks for a valid Nostr public key, improving user feedback and error handling during the checkout process.
- Introduce useMultiAsyncOperation to manage multiple async operations in useAuth, enhancing error handling and loading state management.
- Replace manual loading and error state management with standardized async operation patterns for initialize, login, register, and logout functions.
- Update related components to utilize the new async operation structure, improving code clarity and maintainability.
- Add useAsyncOperation to other composables (useChat, useTicketPurchase, useMarket) for consistent async handling across the application.
- Introduce a comprehensive analysis of the Ario web application's modular architecture, highlighting opportunities for code consolidation and maintainability improvements.
- Document key findings, including identified duplicate patterns and recommended abstractions to enhance type safety and reduce code duplication by 30-40%.
- Provide an implementation roadmap and expected benefits, emphasizing improved development velocity and user experience.
- Include a PDF version of the analysis for easy sharing and reference.
- Update import paths for useTicketPurchase in PurchaseTicketDialog.vue to reflect new module structure.
- Adjust type handling in Navbar.vue and various market components to use 'any' for improved compatibility with existing data structures.
- Enhance useLightningPayment composable to include shipping zone details, ensuring better order management.
- Remove unused pages (events.vue, MyTickets.vue, OrderHistory.vue) to streamline the codebase and improve maintainability.
- Delete RelayHubStatus.vue and its associated components to streamline the application structure.
- Remove NostrFeed.vue to eliminate unused functionality and improve maintainability.
- Eliminate the legacy useRelayHub composable, reflecting a shift towards modular service architecture.
- Clean up router configuration by removing references to deleted components, enhancing clarity and organization.
- Simplify imports in app.ts by removing unused SERVICE_TOKENS.
- Eliminate the NavigationItem interface in Navbar.vue as its functionality is now managed by useModularNavigation.
- Introduce new legacy composable stubs for useNostrChat and useRelayHub, indicating a shift towards modular chat and relay services.
- Update MyTicketsPage.vue to correct the import path for useUserTickets, enhancing module organization.
- Refactor ChatService to improve type handling for event tags, ensuring better type safety.
Remove ChatComponent, useNostrChat composable, and ChatPage for a modular chat architecture
- Delete ChatComponent.vue to streamline chat functionality.
- Remove legacy useNostrChat composable, transitioning to a more modular chat service approach.
- Eliminate ChatPage.vue as part of the refactor to enhance code organization and maintainability.
- Update OrderHistory.vue to utilize a new method, getEffectiveStatus, for determining the effective order status based on payment and shipping conditions.
- Modify the display logic for pending orders to check if the order is paid before showing the waiting for invoice message, enhancing clarity for users.
- Ensure consistent status formatting by applying the new method across relevant components.
- Update OrderHistory.vue to utilize a new method for determining effective order status, enhancing clarity in payment and shipping status display.
- Add a new composable, usePaymentStatusChecker, to handle payment status checks via LNbits API, improving order payment verification.
- Modify nostrmarketService to streamline order updates with consolidated status handling for paid and shipped states.
- Enhance market store initialization to include payment status and paid fields for better order management.
- Update market types to include new fields for payment and shipping status, ensuring consistency across the application.
- Make ChatService globally available for other modules, enabling market-related message handling.
- Introduce a market message handler in ChatService to process market-related direct messages (DMs).
- Update useMarket to register the market message handler with ChatService, streamlining order-related DM processing.
- Refactor message handling logic to differentiate between market messages and regular chat messages, improving message management.
- Enhance order update logging in nostrmarketService for better debugging and verification of order status.
- Replace the existing openLightningWallet function with payWithLightning for improved payment processing.
- Introduce useLightningPayment composable to manage wallet payment logic and state.
- Update button text dynamically based on payment status and wallet availability.
- Enhance error handling and user feedback during payment attempts, ensuring a smoother user experience.
- Update imports in DashboardOverview.vue to use relative paths for better module organization.
- Modify OrderHistory.vue to replace 'lightningInvoice' with 'paymentRequest' for consistency in payment handling.
- Enhance order event handling in useMarket.ts by adding subscription and decryption logic for order-related DMs.
- Update nostrmarketService.ts to use relative imports, ensuring consistency across the module.
- Introduce error handling and logging for order updates, improving the robustness of the market module.
- Delete the useNostrOrders composable as it is no longer needed.
- Update MerchantStore.vue to utilize nostrmarketService for publishing orders instead of the removed composable.
- Refactor market store to check the readiness of nostrmarketService instead of useNostrOrders.
- Remove the Checkout.vue page, streamlining the checkout process and improving code maintainability.
- Inject AuthService into useMarket for improved user authentication checks.
- Add error handling for missing AuthService and RelayHub to ensure proper module installation.
- Update comments to clarify the use of pubkey from either nostrStore or AuthService, indicating a need for confirmation on the preferred source.
- Refactor NostrmarketService to utilize injected RelayHub, improving error handling and code clarity.
- Inject AuthService to verify user authentication before placing orders.
- Enhance order creation process by ensuring required data is present, including checkout cart and stall information.
- Update order data structure to include detailed buyer and seller information, contact details, and shipping zone data.
- Implement error handling for order placement failures, improving user feedback during the checkout process.
- Add 'shipping_zones' property to the Stall interface to support LNbits format.
- Update ShippingZone interface to include optional 'countries' property for better zone coverage representation.
- Modify CheckoutPage.vue to display shipping zone details, including a message for zones that do not require physical shipping.
- Improve user feedback by updating messages related to shipping address requirements based on selected shipping zone.
- Refactor logic to auto-select shipping zones and handle cases where no shipping zones are available, enhancing user experience during checkout.
- Introduce routes for the Shopping Cart and Checkout pages, enhancing user navigation within the market module.
- Implement a redirect for the Market Dashboard to improve user flow.
- Add an alias for clearCheckout for consistency in the market store functions.
- Integrate LNbits API for authentication in AuthService, replacing token management with direct API calls for user data.
- Enhance login and registration processes to utilize the new API, improving user experience and error handling.
- Update market components to include detailed logging and fallback mechanisms for offline scenarios, ensuring better resilience during market data loading.
- Refactor market preloader to handle connection timeouts and provide sample data as a fallback, enhancing user experience in offline mode.
- Refactor AuthService to integrate LNbits authentication, including fetching user data from the API and handling token validation.
- Update ChatComponent to reflect changes in peer management, replacing user_id with pubkey and username with name for better clarity.
- Enhance connection status indicators in ChatComponent for improved user feedback during chat initialization.
- Simplify connection checks by directly accessing the isConnected property of relayHub, enhancing code clarity.
- Update the loadNotes and startRealtimeSubscription functions to reflect the new connection logic, improving maintainability.
- Comment out the useOrderEvents import and replace it with a temporary mock object for order events, indicating a future move to the market module.
- This change aims to improve modularity and maintainability within the market components.
- Remove deprecated Nostr chat and relay hub components, transitioning to a modular chat service for better encapsulation.
- Update App.vue and Navbar.vue to utilize the new chat module, enhancing user experience with automatic peer management.
- Simplify event handling and connection logic in ChatComponent.vue, ensuring compatibility with the new chat service architecture.
- Adjust market settings and order history components to reflect changes in the chat module, improving overall coherence in the application structure.
- Clean up unused imports and streamline configuration access for better performance and maintainability.
- Update architecture overview to emphasize the modular structure of the application.
- Introduce detailed sections on core modules, module configuration, and the plugin manager.
- Outline the dependency injection pattern for service management across modules.
- Add development guidelines for module structure, plugin patterns, and service integration.
- Emphasize the importance of using dependency injection for cross-module service access.
- Update Badge components in ChatComponent.vue to use new variant props for better styling consistency.
- Simplify ChatPage.vue by removing debug information and authentication checks, directly rendering ChatComponent for a cleaner layout.
- Simplify the authentication guard by directly using the auth composable for user authentication checks.
- Enhance logging within the auth guard to provide better feedback during navigation based on authentication status.
- Remove unnecessary dependency on the auth service, streamlining the code for better maintainability.
- Update app configuration to load chat module on startup for route registration.
- Introduce useModularNavigation composable for dynamic navigation based on enabled modules.
- Simplify Navbar.vue by utilizing userMenuItems for dropdown and button rendering, enhancing maintainability.
- Enhance ChatPage.vue with detailed debug information and user authentication checks for better feedback.
- Modify app configuration to use environment variables for base URL and API key, enhancing flexibility for different environments.
- Refactor plugin installation logic in the PluginManager to ensure proper configuration object structure.
- Update base module initialization to correctly access Nostr relay options from the configuration, improving reliability.
- Introduce chat module with components, services, and composables for real-time messaging.
- Implement events module with API service, components, and ticket purchasing functionality.
- Update app configuration to include new modules and their respective settings.
- Refactor existing components to integrate with the new chat and events features.
- Enhance market store and services to support new functionalities and improve order management.
- Update routing to accommodate new views for chat and events, ensuring seamless navigation.
- Introduce a modular application structure with a new app configuration file to manage module settings and features.
- Implement a dependency injection container for service management across modules.
- Create a plugin manager to handle module registration, installation, and lifecycle management.
- Develop a global event bus for inter-module communication, enhancing loose coupling between components.
- Add core modules including base functionalities, Nostr feed, and PWA services, with support for dynamic loading and configuration.
- Establish a Nostr client hub for managing WebSocket connections and event handling.
- Enhance user experience with a responsive Nostr feed component, integrating admin announcements and community posts.
- Refactor existing components to align with the new modular architecture, improving maintainability and scalability.
- Introduce comprehensive documentation for the Ario Web App's architecture, focusing on modular plugin-based development.
- Assess current strengths and critical issues, providing a modularity rating of 6.5/10.
- Outline required changes for a modular architecture, including a plugin registration system and event-driven communication.
- Recommend a ground-up architecture approach with a focus on dependency inversion, event-driven communication, and dynamic module loading.
- Include an implementation roadmap prioritizing immediate, medium, and low-priority tasks for architectural improvements.
- Upgrade @types/node to version 22.18.1 and add @types/qrcode version 1.5.5 in package.json and package-lock.json.
- Refactor cleanupInterval and reconnectInterval types from NodeJS.Timeout to number in various Nostr-related files for better type compatibility.
- Enhance error handling in useNostrclientHub and useNostrChat components by specifying error parameter types.
- Introduce a comprehensive roadmap for integrating nostr-market-app purchasing functionality into the web-app.
- Outline key components of the shopping cart system, checkout process, and order management.
- Detail phased implementation strategy, including enhanced user experience and advanced features.
- Include security, performance, and testing considerations to ensure robust integration.
feat: Enhance market store with new order and cart management features
- Introduce new interfaces for Order, OrderItem, ContactInfo, and ShippingZone to support enhanced order management.
- Update Stall and Product interfaces to include currency and shipping details.
- Implement a comprehensive shopping cart system with stall-specific carts, including methods for adding, removing, and updating items.
- Add payment-related interfaces and methods for managing payment requests and statuses.
- Enhance filter options to include in-stock status and payment methods, improving product filtering capabilities.
- Refactor computed properties and methods for better cart management and checkout processes.
feat: Implement shopping cart functionality with new components and routing
- Add ShoppingCart, CartItem, and CartSummary components to manage cart items and display summaries.
- Introduce Cart.vue page to serve as the main shopping cart interface, integrating cart and summary components.
- Update Navbar.vue to include a cart icon with item count, enhancing user navigation.
- Implement cart management features in the market store, including item addition, quantity updates, and removal.
- Establish routing for the cart page, ensuring seamless navigation for users.
- Enhance ProductCard.vue to support adding items to the cart directly from the product listing.
feat: Update cart and checkout functionality with improved navigation and button labels
- Change "Proceed to Checkout" button text to dynamic "Place Order" based on context in CartSummary.vue.
- Update "Continue Shopping" button to "Back to Cart" in CartSummary.vue for clearer navigation.
- Modify routing for checkout to include stall ID in ShoppingCart.vue, enhancing checkout process.
- Simplify Cart.vue by removing CartSummary component and focusing on ShoppingCart display.
- Add new route for checkout with stall ID in router configuration for better handling of checkout flows.
feat: Enhance cart and checkout components with improved shipping address handling
- Update CartSummary.vue to use readonly types for cart items and shipping zones, ensuring immutability.
- Modify Checkout.vue to conditionally display the shipping address field based on the selected shipping zone's requirements for physical shipping.
- Add a digital delivery note for products that do not require a shipping address.
- Introduce a computed property to determine if a shipping address is required, improving validation logic during checkout.
- Update market store to include a new property for shipping zones indicating if physical shipping is required.
feat: Implement order placement functionality in checkout process
- Add a "Place Order" button in Checkout.vue that triggers the order placement process.
- Introduce loading state during order placement to enhance user experience.
- Implement createAndPlaceOrder method in market store to handle order creation and status updates.
- Include error handling for order placement failures, providing user feedback on errors.
- Update checkout logic to validate shipping zone and contact information before proceeding.
feat: Add Order History page and update Navbar for order tracking
- Introduce a new OrderHistory.vue page to display users' past orders with filtering and sorting options.
- Update Navbar.vue to include an "Order History" option with a badge showing the count of orders.
- Implement computed properties for order count and enhance user navigation experience.
feat: Integrate Nostr functionality for order management and user notifications
- Add NostrExtensionGuide component to inform users about the required Nostr extension for order transmission.
- Implement useNostrOrders composable to manage Nostr connection, event creation, and order sending.
- Update Checkout.vue to display Nostr connection status and provide feedback on order transmission.
- Enhance OrderHistory.vue to show Nostr transmission status and details for each order.
- Modify market store to handle Nostr event details and errors during order placement, ensuring local fallback.
- Introduce types for Nostr events to improve type safety and integration with the existing order management system.
refactor: Update Nostr relay configuration to use environment variable
- Change DEFAULT_RELAYS to dynamically retrieve relay URLs from the VITE_MARKET_RELAYS environment variable.
- Add error handling to ensure relays are configured before establishing a connection.
- Modify createBlankEvent function to return a more precise type.
- Update event signing process to ensure the event ID is generated correctly before signing.
refactor: useAuth switch Enhance Nostr order management with authentication checks
- Integrate user authentication checks to ensure Nostr features are only accessible to authenticated users.
- Replace direct window.nostr calls with auth store methods for retrieving public and private keys.
- Implement a helper function for signing events and mock encryption for order content.
- Remove obsolete Nostr type definitions to streamline the codebase.
feat: Enhance Checkout.vue with Nostr processing feedback and cleanup
- Update the checkout button to disable based on order placement state.
- Simplify order placement feedback by removing unnecessary Nostr processing checks.
- Introduce a new visual indicator for Nostr order processing status.
- Refactor computed properties for better clarity and efficiency in shipping zone handling.
refactor: Streamline Nostr order handling and integrate buyer public key retrieval
- Remove redundant Nostr relay tag from order event creation in useNostrOrders.
- Update Checkout.vue to retrieve the buyer's public key from the auth store, enhancing order placement logic.
- Modify createAndPlaceOrder method in market store to accept an optional Nostr orders instance for improved flexibility in order processing.
refactor: Remove Nostr-related components and streamline order processing
- Delete NostrExtensionGuide.vue and associated type definitions to simplify the codebase.
- Remove unused useNostr.ts file and related logic from useNostrOrders.ts.
- Update order handling in market store to directly integrate Nostr publishing without relying on external components.
- Enhance Checkout.vue and Cart.vue to reflect changes in Nostr integration and provide clearer order status feedback.
feat: Enhance Nostr chat functionality with malformed message handling
- Introduce tracking for malformed message IDs to prevent repeated processing attempts.
- Implement functions to mark messages as malformed, clean up old entries, and retrieve statistics on malformed messages.
- Add periodic cleanup of malformed messages to manage memory usage.
- Enhance message processing logic to skip previously identified malformed messages and provide detailed error handling for decryption failures.
- Update the return object to include new functions for managing malformed messages.
ZZ feat: Implement Lightning invoice management in market store
- Add functionality to create and manage Lightning invoices for orders.
- Introduce payment monitoring and status updates for invoices.
- Implement payment confirmation messaging via Nostr upon successful payment.
- Enhance order interface to include new fields for Lightning invoice details and payment status.
ZZ feat: Enhance OrderHistory.vue with payment status indicators and invoice management
- Add visual indicators for payment status, including 'Paid' and
'Payment Pending' badges.
- Implement expandable payment display for orders with Lightning
invoices.
- Introduce functionality to toggle payment display and generate
Lightning invoices.
- Update order status messaging to reflect payment requirements and
invoice generation status.
ZZ feat: Enhance OrderHistory.vue with payment status indicators and invoice management
- Add visual indicators for payment status, including 'Paid' and
'Payment Pending' badges.
- Implement expandable payment display for orders with Lightning
invoices.
- Introduce functionality to toggle payment display and generate
Lightning invoices.
- Update order status messaging to reflect payment requirements and
invoice generation status.
feat: Implement order event handling in useOrderEvents composable
- Introduce useOrderEvents composable to manage subscription and processing of order-related events.
- Define order event types and interfaces for better type safety and clarity.
- Implement methods to handle payment requests, order status updates, and invoice generation.
- Enhance OrderHistory.vue to display order event subscription status and last update timestamp.
- Update market store to include order update functionality for better integration with order events.
FIX: Build errors
refactor: Update component styles and improve UI consistency across market pages
- Replace various color classes with updated design tokens for better consistency.
- Change background colors of components to align with the new design system.
- Update text colors to enhance readability and maintain a cohesive look.
- Refactor class names in CartItem.vue, CartSummary.vue, DashboardOverview.vue, and other components to use the new color scheme.
- Ensure all components reflect the updated design guidelines for a unified user experience.
refactor: Remove Order History references from Navbar component
- Eliminate order count computation and related UI elements from the Navbar.
- Streamline the Navbar by removing the Order History button and badge.
- Maintain existing functionality for other menu items, ensuring a cleaner user interface.
feat: Implement QR code generation and download functionality in PaymentDisplay component
- Add QR code generation for payment requests using the qrcode library.
- Enhance UI to display loading states and error messages during QR code generation.
- Introduce a download button for users to save the generated QR code.
- Implement logic to regenerate QR code when the invoice changes.
refactor: Replace useRelayHub with relayHubComposable across components
- Update imports in multiple components and composables to use the new relayHubComposable for better consistency and maintainability.
- Enhance OrderHistory.vue with debug information for development, displaying key states related to orders, authentication, and relay hub connectivity.
- Remove unnecessary reconnect button from RelayHubStatus.vue to streamline user interactions.
- Improve logging in useOrderEvents for better debugging and monitoring of order event subscriptions.
refactor: Update OrderHistory.vue styles for improved UI consistency
- Replace color classes with updated design tokens for better alignment with the new design system.
- Enhance readability by adjusting text colors and background styles for payment status indicators.
- Ensure a cohesive look across the component by standardizing class names and styles.
refactor: Update component styles for improved UI consistency across checkout pages
- Replace color classes with updated design tokens for better alignment with the new design system.
- Enhance readability by adjusting text colors and background styles in CartSummary.vue, PaymentDisplay.vue, Checkout.vue, and OrderHistory.vue.
- Standardize class names and styles to ensure a cohesive look across all components.
feat: Implement invoice generation and Nostr integration in MerchantStore component
- Add functionality to generate Lightning invoices for orders and send them to customers via Nostr.
- Introduce a new sendInvoiceToCustomer method to update order details and publish invoice information.
- Enhance order event handling in useOrderEvents to update existing orders with new invoice data.
- Improve error handling and logging for invoice generation and sending processes.
feat: Enhance MerchantStore and PaymentDisplay components for improved invoice handling
- Add wallet indicator in MerchantStore to display the selected wallet name during pending orders.
- Implement temporary fixes for missing buyer and seller public keys when generating invoices.
- Update invoice generation logic to utilize the first available wallet and improve error handling.
- Modify PaymentDisplay to use the new bolt11 field for payment requests and enhance date formatting.
- Refactor order event handling to ensure accurate updates and invoice management across components.
feat: Enhance order event processing in useOrderEvents composable
- Refactor processOrderEvent to handle incoming Nostr market order events with improved validation and logging.
- Implement logic to update existing orders or create new ones based on event data, ensuring accurate order management.
- Add detailed console logging for better debugging and tracking of order events and their statuses.
- Ensure compatibility with market order structure and invoice details for seamless integration with payment processing.
feat: Enhance order management with localStorage persistence
- Update createOrder method to optionally accept an order ID from events, improving order tracking.
- Convert items from readonly to mutable for better manipulation.
- Implement localStorage persistence for orders, ensuring data is saved and loaded across sessions.
- Add methods to save and load orders from localStorage, enhancing user experience and data reliability.
feat: Update invoice creation to support additional metadata and nostrmarket compatibility
- Modify createInvoice method to accept an optional extra parameter for additional metadata.
- Change invoice tag to 'nostrmarket' for improved compatibility with Nostr market.
- Include merchant and buyer public keys in the invoice data for better integration.
- Update invoice creation in market store to utilize new parameters for enhanced functionality.
feat: Enhance order and invoice handling for Nostr market compatibility
- Add originalOrderId to order events for tracking Nostr order IDs.
- Update invoice creation to utilize original Nostr order ID when generating invoices.
- Improve logging for invoice requests to LNBits, providing better visibility into the data being sent.
- Ensure compatibility with nostrmarket by adjusting order ID handling in the market store.
fix: Refine invoice creation logic for Nostr market compatibility
- Adjust order ID handling in invoice creation to prioritize originalOrderId for better compatibility with nostrmarket.
- Enhance logging to provide clearer insights into the order ID being used during invoice generation.
feat: Integrate nostrmarket service for order publishing and merchant catalog management
- Implement functionality to publish orders via the nostrmarket protocol, replacing the previous Nostr integration.
- Add methods to publish merchant catalogs, including stalls and products, to nostrmarket with event ID tracking.
- Enhance order interface to include nostrEventId for better integration with nostrmarket.
- Improve error handling and logging for nostrmarket publishing processes.
refactor: Simplify order creation logic in useOrderEvents and update contact structure in nostrmarketService
- Streamline order creation by using event.id and defaulting to 'unknown' for stallId.
- Update contact structure to include address and message, removing optional email and phone fields for clarity.
- Ensure compatibility with new order data structure for improved integration with nostrmarket.
feat: Add bech32 to hex conversion utility and integrate into nostrmarketService
- Implement a new utility function to convert bech32 keys to hex format, enhancing key handling.
- Update nostrmarketService to utilize the new conversion function for user public and private keys.
- Modify contact structure to include additional fields for improved order information management.
feat: Add nostrclient configuration to AppConfig for enhanced Nostr integration
- Introduce a new nostrclient property in AppConfig to manage Nostr client settings.
- Include url and enabled fields to configure the Nostr client connection dynamically.
- Ensure compatibility with environment variables for flexible deployment configurations.
feat: Introduce comprehensive order management and fulfillment documentation
- Add ORDER_MANAGEMENT_FULFILLMENT.md to detail the complete order lifecycle, including order states, data models, and merchant/customer interfaces.
- Implement test scripts for verifying order and payment request formats in test-nostrmarket-format.js.
- Create PaymentRequestDialog.vue for handling payment requests with dynamic options and QR code generation.
- Enhance useOrderEvents.ts to process nostrmarket protocol messages for order management.
- Update nostrmarketService.ts to handle payment requests and order status updates, ensuring seamless integration with the marketplace.
- Integrate payment request dialog in Market.vue and manage its state in the market store.
refactor: Remove obsolete test script for nostrmarket order format
- Delete test-nostrmarket-format.js as it is no longer needed for verifying order and payment request formats.
- Update PaymentRequestDialog.vue to enhance UI components and integrate QR code generation for payment requests.
- Refactor payment handling and notification logic to utilize toast notifications instead of Quasar's notify system.
feat: Enhance OrderHistory component with payment request handling and QR code generation
- Add UI elements to display payment request status and options in OrderHistory.vue.
- Implement functions to copy payment requests, open Lightning wallets, and download QR codes.
- Update nostrmarketService to generate QR codes for payment requests and manage order statuses effectively.
- Remove obsolete PaymentRequestDialog integration from Market.vue for a cleaner UI.
feat: Add debug information and toast notifications in OrderHistory component
- Introduce debug info display for payment requests and hashes in OrderHistory.vue.
- Implement toast notifications for actions like copying payment requests, opening wallets, and downloading QR codes.
- Enhance error handling with user feedback for various order-related actions.
- Remove obsolete payment request dialog methods from market store for cleaner code.
feat: Revamp CartItem and ShoppingCart components for improved layout and functionality
- Enhance CartItem.vue with responsive design for desktop and mobile views, including better organization of product details, price, quantity controls, and remove button.
- Update ShoppingCart.vue to separate desktop and mobile layouts, improving the user experience with clearer action buttons and cart summary display.
- Implement consistent styling and layout adjustments for better visual coherence across different screen sizes.
- Add a mode toggle to switch between demo account creation and login functionalities.
- Refactor the layout to conditionally display content based on the selected mode.
- Enhance the login form with validation and error handling for user credentials.
- Update button texts and improve user experience with clearer instructions and feedback.