Commit graph

449 commits

Author SHA1 Message Date
0c931cf457 Add CreateProductDialog and CreateStoreDialog components
- Introduce CreateProductDialog for adding new products with comprehensive form fields including name, price, description, quantity, and active status.
- Implement validation using Zod and integrate auto-reply settings.
- Add CreateStoreDialog for creating new stores, allowing input for store name, description, currency, and shipping zones.
- Enhance user experience with loading states and error handling in both dialogs.
- Refactor MerchantStore component to utilize StoreCard for displaying user stalls, improving code organization and readability.

These changes enhance the merchant experience by streamlining product and store creation processes, ensuring better validation and user feedback.
2025-09-08 22:13:17 +02:00
d52d7f4d7f Complete product creation form implementation
- Add comprehensive product creation dialog with Zod validation
- Implement product form fields: name, price, description, quantity, active status
- Add auto-reply settings with checkbox and message configuration
- Create product management functions: loadStallProducts, addProduct, createProduct
- Add products grid display with loading states and product cards
- Integrate with NostrmarketAPI for full CRUD operations
- Include placeholder sections for categories and image upload (future features)
- Follow Shadcn/UI form patterns with proper error handling and validation
- Complete merchant workflow: Create merchants → Create stores → Add products

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-08 19:50:10 +02:00
3e8df8efb1 Implement product management features in MerchantStore component
- Add a new section for displaying products, including loading states and messages for when no products are available.
- Introduce a dialog for adding new products, with a placeholder message indicating that the product creation form is in development.
- Enhance the NostrmarketAPI with new methods for product management, including fetching, creating, updating, and deleting products.
- Implement state management for product loading and display, improving the overall user experience for merchants managing their inventory.

These changes provide a foundational structure for product management within the MerchantStore, enhancing functionality and user engagement.
2025-09-08 19:27:02 +02:00
4ce12bcbd3 Refactor MerchantStore component for improved form handling and validation
- Remove unnecessary keys from form fields in the stall creation dialog to simplify the structure.
- Ensure the description field is now required, enhancing validation for store creation.
- Update the dialog button to type "button" for better clarity in user interactions.
- Streamline the handling of the description field in the API request, ensuring it defaults to an empty string if not provided.

These changes enhance the user experience during store creation by improving form validation and simplifying the component structure.
2025-09-08 19:06:44 +02:00
c3e599b3e4 Enhance MerchantStore component with improved form handling and dialog management
- Introduce keys for reactivity in the stall creation dialog and form elements to ensure proper rendering and state management.
- Implement autocomplete and spellcheck attributes for input fields to enhance user experience during store creation.
- Refactor form initialization and reset logic to ensure a clean state upon dialog opening and closing, improving usability.
- Add validation triggers after loading data to ensure form integrity and user feedback during the stall creation process.

These changes streamline the store creation experience, providing a more responsive and user-friendly interface for merchants.
2025-09-08 18:44:36 +02:00
6f68c2320e Enhance MerchantStore component with improved stall management and loading states
- Refactor the MerchantStore component to display a grid of user stalls, including loading indicators and action buttons for managing stalls and viewing products.
- Introduce a new card for creating additional stores, enhancing the user experience for merchants.
- Update the NostrmarketAPI to correct the endpoint for fetching stalls, ensuring accurate data retrieval.
- Implement state management for user stalls and active stall selection, improving the overall functionality and responsiveness of the component.

These changes streamline the stall management process for merchants, providing a more intuitive interface and better feedback during interactions.
2025-09-08 17:46:54 +02:00
e6107839a0 Implement store creation dialog in MerchantStore component
- Introduce a dialog for creating new stores, allowing users to input store name, description, currency, and shipping zones.
- Add functionality to manage shipping zones, including the ability to create new zones and select existing ones.
- Enhance the stall creation process with error handling and loading states, providing better user feedback during store setup.
- Update the NostrmarketAPI to support fetching available currencies and shipping zones, improving integration with the backend services.

These changes streamline the store creation experience for merchants, ensuring a more intuitive and guided process.

Refactor getCurrencies method in NostrmarketAPI to improve currency retrieval logic

- Introduce base currencies and enhance the logic to combine them with API currencies, ensuring no duplicates.
- Update debug logging to provide clearer information on currency retrieval outcomes.
- Simplify fallback mechanism to use base currencies directly in case of API failures.

These changes enhance the reliability and clarity of currency data handling in the NostrmarketAPI.

Refactor MerchantStore component to use NATIVE checkbox selection and add debug information

- Replace Checkbox component with native input checkboxes for zone selection, simplifying the binding with v-model.
- Enhance the user interface by adding debug information displaying the store name, selected zones count, and creation status.
- These changes improve the clarity of the zone selection process and provide useful debugging insights during store creation.

Enhance zone selection functionality in MerchantStore component

- Replace v-model with native checkbox handling for zone selection, improving clarity and user interaction.
- Add debug information to display currently selected zones, aiding in user understanding of their selections.
- Implement a new method to manage zone toggling, ensuring accurate updates to the selected zones array.

These changes streamline the zone selection process and provide better feedback for users during stall creation.

Improve zone selection handling and debugging in MerchantStore component

- Update zone selection to use a custom Checkbox component, enhancing user interaction and clarity.
- Add detailed debug information for selected zones, including raw array output and type, to aid in troubleshooting.
- Refactor the zone toggle logic to handle various input types, ensuring accurate updates to the selected zones array.

These changes enhance the user experience during stall creation by providing better feedback and more robust zone selection functionality.

Refactor Checkbox handling in MerchantStore component for improved zone selection

- Update zone selection to utilize the Shadcn/UI Checkbox component with v-model for better state management.
- Remove manual zone toggle logic and debug information, streamlining the component's functionality.
- Enhance user interaction by following recommended patterns for checkbox usage, ensuring reliable selections.

These changes improve the clarity and reliability of zone selection during stall creation.

Refactor MerchantStore component to utilize Shadcn Form components and improve form handling

- Replace existing form elements with Shadcn Form components (FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage) for better structure and validation.
- Integrate vee-validate and zod for type-safe form validation, enhancing user experience and error handling.
- Update shipping zone selection to use the new form structure, improving clarity and accessibility.
- Implement form submission logic with validation checks, ensuring required fields are filled before submission.

These changes enhance the overall form handling and user interaction during the store creation process.
2025-09-08 16:58:10 +02:00
8b696c406a Add error handling for 403 status in NostrmarketAPI
- Implement a specific error message for 403 responses, indicating that the NostrMarket extension may not be enabled for the user.
- This change enhances user feedback and clarifies access issues related to the Nostrmarket service.
2025-09-08 16:58:10 +02:00
b8ba41d088 Enhance logging in MerchantStore and NostrmarketAPI for better debugging
- Update the MerchantStore component to include detailed logging during merchant profile creation, capturing wallet ID and admin key details.
- Improve NostrmarketAPI request logging to include method type, headers with masked API key, and a preview of the request body.

These changes aim to facilitate easier debugging and provide more context during API interactions and merchant profile creation.
2025-09-08 16:58:10 +02:00
4ecec1aa78 Enhance MerchantStore component with merchant profile creation functionality
- Implement asynchronous merchant profile creation logic, including user authentication and wallet validation.
- Introduce loading and error handling states during the merchant creation process to improve user feedback.
- Update the button UI to reflect the creation status, providing a better user experience.
- Integrate toast notifications for success and error messages related to merchant profile creation.

These changes streamline the process for users to create their merchant profiles, ensuring they receive real-time feedback and guidance throughout the process.
2025-09-08 16:58:10 +02:00
b25e502c17 Add NostrmarketAPI integration and enhance MerchantStore component
- Introduce NostrmarketAPI service for improved merchant profile management.
- Update MerchantStore component to handle loading and error states during merchant profile checks.
- Implement logic to check for merchant profiles using the new API, enhancing user experience.
- Refactor computed properties and lifecycle methods to accommodate the new API integration.

These changes streamline the process of checking and managing merchant profiles, providing users with real-time feedback and improving overall functionality.
2025-09-08 16:58:10 +02:00
8cf62076fd Refactor MerchantStore component to enhance merchant profile management
- Update empty state messaging to guide users in creating a merchant profile before setting up a store.
- Introduce computed properties to check for user merchant profile and stalls, improving user experience.
- Rename functions and variables for clarity, ensuring better alignment with user actions.
- Prepare for future implementation of merchant profile and stall creation functionalities.

These changes streamline the onboarding process for new merchants and clarify the steps needed to start selling on the platform.
2025-09-08 16:58:10 +02:00
f4dbf9b340 Enhance MarketDashboard to filter orders by current user
- Introduce computed properties to count orders based on the current user's public key.
- Update orderCount to reflect only the user's orders as a buyer.
- Update pendingOrders to count only the user's pending orders as a seller.
- Improve user experience by providing personalized order statistics.

These changes ensure that users can easily track their own orders and pending transactions within the MarketDashboard.
2025-09-08 16:58:10 +02:00
8e34f2c74e Enhance MerchantStore component with user store creation flow
- Introduce an empty state for users without a store, prompting them to create one.
- Implement computed property to check if the user has a store based on their order history.
- Update store statistics to reflect only the user's orders.
- Add a placeholder function for future store creation functionality.

These changes improve user experience by guiding new merchants to set up their stores effectively.
2025-09-08 16:58:10 +02:00
3679c719a3 Add form implementation standards for Shadcn/UI components with vee-validate
- Introduce critical guidelines for using Shadcn/UI form components in conjunction with vee-validate for form handling.
- Provide detailed examples for required form setup, template structure, and key requirements to ensure proper validation and accessibility.
- Emphasize the importance of type safety using Zod schema for validation and correct form handling practices.

These updates aim to standardize form implementations across the application, enhancing consistency and maintainability.
2025-09-08 16:58:05 +02:00
b0a2d1a6df Add Shadcn Form components with vee-validate and zod integration
- Install Shadcn Form components (FormControl, FormDescription, FormItem, FormLabel, FormMessage)
- Add vee-validate 4.15.1 for form validation
- Add zod 3.25.76 for schema validation
- Add @vee-validate/zod 4.15.1 for integration
- Update reka-ui to 2.5.0
- Prepare foundation for proper form handling with type-safe validation
- Enables proper checkbox array handling and form accessibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-08 16:28:26 +02:00
a373fa714d Update modular design documentation and workspace configuration
- Change the active file in workspace.json to point to the new modular-design.md.
- Revise modular-design.md to enhance clarity and structure, including a new table of contents and updated sections on design philosophy, architecture components, and service abstractions.
- Remove outdated content and improve the overall presentation of modular design patterns and best practices.

These updates aim to streamline the documentation for better accessibility and understanding of the modular architecture.
2025-09-08 12:03:28 +02:00
670a42dd9b Fix mobile navbar icon visibility with improved contrast
- Change selected route styling from 'text-primary bg-accent' to 'text-secondary bg-accent'
- Uses semantic design tokens for better theme compatibility and accessibility
- Improves icon visibility on mobile navigation without being too aggressive
- Affects Events, Market, and Chat navigation buttons
- Maintains design system consistency while ensuring proper contrast ratios

Fixes issue where selected route icons were hard to see due to poor contrast
between text and background colors in mobile navbar.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 04:08:08 +02:00
c284ad5778 Remove legacy compatibility layer and enforce modular architecture
- Delete src/stores/market.ts compatibility re-export file
- Update 15 files to import from proper module path @/modules/market/stores/market
- Add necessary type exports to market store for external consumers
- Remove empty src/stores/ directory completely
- Enforce clean modular architecture without global store shortcuts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 02:30:37 +02:00
4a3d2012be Complete LnbitsAPI migration to dependency injection pattern
- Convert LnbitsAPI from singleton to BaseService extension
- Add LNBITS_API service token to DI container
- Register LnbitsAPI service in base module with proper initialization order
- Update AuthService to depend on injected LnbitsAPI instead of singleton
- Fix BaseService to properly track LnbitsAPI dependency in getMissingDependencies
- Update events API functions to use dependency injection
- Resolve initialization timing issue preventing application startup

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 01:58:36 +02:00
093846b351 Migrate PaymentMonitorService to dependency injection pattern
- Convert PaymentMonitorService to extend BaseService with proper metadata
- Add invoiceService property to BaseService for payment status checking
- Register PaymentMonitorService in market module with DI container
- Update market store to use injected service instead of singleton import
- Remove exported singleton instance from service file
- Add proper service initialization and cleanup in market module

This completes the third legacy service migration, following InvoiceService
and NostrmarketService. The service now properly integrates with the DI
architecture for better testing, lifecycle management, and loose coupling.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 01:42:41 +02:00
14d6bc6329 Add NostrmarketService to dependency injection container
- Introduce NOSTRMARKET_SERVICE token in the DI container for better service management.
- Update market module to create and register NostrmarketService instance using the new DI pattern.
- Refactor components and composables to inject NostrmarketService via the DI container, enhancing modularity and testability.

These changes improve the architecture by ensuring consistent service injection and eliminating legacy singleton references, aligning with the overall dependency injection strategy.
2025-09-07 01:31:24 +02:00
31a9c0a9dc Clean up legacy singleton references after InvoiceService migration
- Update commented TODO in PaymentMonitorService to use proper DI pattern
- Remove outdated reference to legacy invoiceService singleton
- Prepare PaymentMonitorService for future DI migration with proper pattern

This cleanup eliminates the last remaining reference to the legacy
InvoiceService singleton pattern, ensuring code consistency.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 01:14:18 +02:00
7a32085ee1 Migrate InvoiceService to dependency injection pattern
- Add INVOICE_SERVICE token to DI container
- Register InvoiceService in base module with proper lifecycle
- Update market store to use dependency injection instead of singleton
- Remove exported singleton from InvoiceService class
- Add comprehensive migration documentation with examples
- Maintain type safety with proper TypeScript interfaces

This migration eliminates the legacy singleton pattern and improves:
- Testability through service injection
- Modular architecture with clear boundaries
- Single source of truth for service instances
- Consistent dependency injection patterns

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 01:10:55 +02:00
6cb10a31db Update documentation to reflect new authentication architecture
Remove legacy references to global auth composable and document the new
dependency injection pattern with single source of truth.

Key Documentation Updates:
• Update authentication.md with DI architecture details and usage patterns
• Update chat integration docs to reference AuthService and remove legacy patterns
• Add comprehensive authentication-architecture.md with full technical details
• Document migration path from legacy global auth to current DI pattern

Content Changes:
• Replace useAuth.ts references with useAuthService.ts
• Document AuthService as singleton with dependency injection
• Add code examples for both component and service usage
• Explain benefits of new architecture (single source of truth, no timing issues)
• Update chat integration to reflect service-based architecture

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 00:53:42 +02:00
4feb5459cc Refactor authentication architecture to eliminate dual auth complexity
This major refactor consolidates the authentication system to use a single
source of truth, eliminating timing issues and architectural complexity
that was causing chat and payment functionality problems.

Key Changes:
• Remove old global useAuth composable and replace with useAuthService wrapper
• Update all 25+ files to use consistent auth pattern via dependency injection
• Eliminate dual auth detection workarounds from services (ChatService, PaymentService, etc.)
• Fix TypeScript errors and add proper Uint8Array conversion for Nostr private keys
• Consolidate auth state management to AuthService as single source of truth

Benefits:
• Resolves chat peer loading and message subscription timing issues
• Fixes wallet detection problems for Lightning payments
• Eliminates race conditions between global and injected auth
• Maintains API compatibility while improving architecture
• Reduces code complexity and improves maintainability

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-07 00:47:02 +02:00
5633aa154b Enhance PaymentService and useTicketPurchase composable for improved wallet handling
- Introduced asynchronous methods in PaymentService for retrieving user wallets and checking wallet balances, allowing for dual authentication detection.
- Updated getUserWalletsAsync, hasWalletWithBalanceAsync, and getWalletWithBalanceAsync methods to streamline wallet access and balance checks.
- Refactored useTicketPurchase composable to load user wallets asynchronously on component mount, improving user experience during ticket purchases.
- Enhanced error handling and logging for wallet loading and payment processes.

These changes improve the reliability and responsiveness of wallet interactions within the payment flow.
2025-09-07 00:19:43 +02:00
5a899d1501 Enhance ChatService to process market messages in chat
- Updated ChatService to forward market messages to the chat interface, ensuring they are displayed alongside regular chat messages.
- Improved message formatting for payment requests and order status updates, providing clearer user notifications.
- Deprecated the previous order updates subscription method in useMarket, redirecting functionality to the chat service for better integration.

These changes improve the user experience by consolidating message handling and enhancing clarity in communication.
2025-09-07 00:08:38 +02:00
c7e11a7c01 Enhance market DM decryption process with improved authentication checks
- Introduced checks for both injected auth service and global auth composable to retrieve user private and public keys.
- Enhanced logging to provide clearer feedback on authentication status during DM decryption attempts.
- Improved error handling for cases where user keys are unavailable, ensuring better user guidance.

These changes strengthen the authentication flow and improve the reliability of market-related direct messages.
2025-09-06 23:52:30 +02:00
d3ee19f56f Enhance authentication handling and error logging in ChatService and NostrmarketService
- Introduce a flag in ChatService to track initialization status and improve message handling.
- Enhance error handling and logging for API responses in ChatService, including warnings for invalid data formats.
- Update NostrmarketService to utilize global authentication checks, improving user authentication flow.
- Refactor CheckoutPage to streamline pubkey retrieval and enhance error messages related to Nostr identity configuration.

These changes improve the robustness of authentication processes and provide clearer feedback to users during interactions.
2025-09-06 23:46:23 +02:00
4db7645a8f Enhance ChatService initialization and authentication handling
- Introduce periodic authentication checks to ensure full initialization of the ChatService.
- Implement a flag to prevent redundant initialization.
- Update message handling and subscription methods to accommodate both injected and global authentication services.
- Improve error handling and logging for message subscription setup and processing.
- Clear authentication check intervals during service disposal to prevent memory leaks.

This commit improves the reliability and responsiveness of the chat service in handling user authentication and message subscriptions.
2025-09-06 23:26:35 +02:00
7cfeaee21e Refactor Chat and Market Services for enhanced user experience and error handling
Chat Service:
- Improved error handling for message subscription setup and API responses.
- Enhanced logging for better tracking of authentication issues.

Market Service:
- Streamlined authentication checks to improve order placement flow.
- Updated user guidance for missing Nostr keys.

These updates aim to bolster the reliability and usability of the chat and market functionalities.
2025-09-06 22:56:50 +02:00
8a019db34a Enhance Chat and Market Services with improved error handling and logging
Chat Service:
- Added detailed logging for API calls and responses, including warnings for missing authentication tokens and invalid response formats.
- Implemented a retry mechanism for message subscription setup on connection errors.
- Merged peers instead of clearing existing ones when loading from the API.

Market Service:
- Updated authentication checks to prioritize global auth state, improving user experience during order placement.
- Enhanced error messages for missing Nostr keys to guide users in configuring their profiles.

These changes improve the robustness and user-friendliness of the chat and market functionalities.
2025-09-06 20:12:41 +02:00
034f3ce80f Implement auth guard and app branding improvements
Auth & Routing:
- Initialize auth before router guards to prevent race conditions
- Default all routes to require auth unless explicitly set to false
- Add initial route check to redirect unauthenticated users to /login
- Remove duplicate auth initialization from base module

App Branding:
- Add VITE_APP_NAME environment variable for configurable branding
- Replace hardcoded "Ariège" references with environment variable
- Update index.html, market composable to use dynamic app name

Mobile UX:
- Fix mobile dropdown auto-close on navigation item selection

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 19:29:48 +02:00
c655ce7702 Update index.html and vite.config.ts for dynamic app name and manifest adjustments
- Replace static app name in index.html and use environment variable for dynamic title
- Update Vite configuration to reflect new app name and description
- Modify manifest icons for better clarity and organization
- Remove deprecated logo asset from the project

This commit enhances the app's configurability and aligns with the new branding strategy.
2025-09-06 19:16:24 +02:00
553bee51bb Update Navbar component to improve mobile navigation experience
- Modify click handler for navigation items to close the dropdown after selection
- Enhances user experience by ensuring the mobile navbar closes upon route change

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-09-06 17:50:16 +02:00
cd5dc008b2 Improve mobile navbar UX with icon navigation
- Add mobile navigation icons for Events, Market, and Chat routes
- Remove route items from mobile dropdown to reduce clutter
- Mobile dropdown now focuses on user account management only
- Remove Home route from desktop navigation (logo serves as home)
- Add active states and hover effects for mobile route icons
- Preserve chat notification badges and market preloading indicators

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 17:47:37 +02:00
a811040a34 Fix TypeScript build errors in module pages
- Replace location.reload() with proper window.location.reload() function calls
- Remove unused isReady variable in ChatPage.vue
- Add handleRetry functions in ChatPage.vue and EventsPage.vue
- Ensures successful production builds with vue-tsc type checking

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 17:00:27 +02:00
813cc86b3d Fix checkout success page UX flow
- Reorder template conditional logic to show success page instead of error after order placement
- Move orderPlaced state check before checkoutCart validation in CheckoutPage.vue
- Resolves issue where users saw "Cart not found" error instead of success confirmation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 16:52:07 +02:00
7145af3f83 Fix blank page issue on module route refresh
- Pre-register all module routes automatically from module definitions in router configuration
- Add useModuleReady composable for clean reactive loading states during module initialization
- Update ChatPage and EventsPage with proper loading/error states and computed service access
- Remove duplicate route registration from plugin manager install phase
- Maintain modular architecture while ensuring routes are available immediately on app startup

Resolves blank pages and Vue Router warnings when refreshing on /chat, /events, /my-tickets routes.
Users now see proper loading indicators instead of blank screens during module initialization.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 16:33:32 +02:00
85635cfc96 Remove deprecated PDF documentation files
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 14:31:51 +02:00
cdf099e45f Create comprehensive Obsidian-style documentation structure
- Reorganize all markdown documentation into structured docs/ folder
- Create 7 main documentation categories (00-overview through 06-deployment)
- Add comprehensive index files for each category with cross-linking
- Implement Obsidian-compatible [[link]] syntax throughout
- Move legacy/deprecated documentation to archive folder
- Establish documentation standards and maintenance guidelines
- Provide complete coverage of modular architecture, services, and deployment
- Enable better navigation and discoverability for developers and contributors

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 14:31:27 +02:00
46856134ef Complete legacy code cleanup and achieve full modular architecture
Major accomplishments:
- Remove duplicate components (market/, events/ legacy wrappers)
- Move services to appropriate modules (paymentMonitor, nostrmarketService)
- Relocate invoiceService to core/services as shared utility
- Clean up legacy re-export composables (useMarket, useMarketPreloader)
- Update all import paths to use proper module structure
- Fix circular imports and TypeScript errors
- Achieve successful production build (4.99s)

Architecture goals achieved:
 Module-first architecture with clean boundaries
 All duplicate patterns consolidated (1.3.1 through 1.3.6)
 Proper service organization and dependency injection
 Legacy code elimination with no backwards compatibility concerns
 30-40% reduction in duplicate code across modules

Build verification: All TypeScript errors resolved, production build successful

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 13:48:35 +02:00
04d64fe116 1.3.6 Toast Notification Pattern: Add centralized ToastService abstraction
- Create ToastService extending BaseService with context-specific toast methods
- Add useToast composable for convenient dependency injection access
- Provide standardized toast patterns: auth, payment, clipboard, operations
- Include async operation support with automatic loading/success/error states
- Integrate with DI container and base module for automatic initialization
- Demonstrate refactoring in LoginDialog.vue with context-specific methods
- Eliminate duplicate vue-sonner imports across 20+ files for better maintainability
- Support custom ToastOptions interface with full TypeScript compatibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 12:24:05 +02:00
6b5c6d4ffe 1.3.5 Module Registration Pattern: Add BaseModulePlugin abstraction
- Create BaseModulePlugin class to eliminate boilerplate across modules
- Provide standardized service registration, component registration, and event setup
- Implement declarative configuration approach with onInstall/onUninstall hooks
- Add automatic logging with consistent emoji patterns and error handling
- Refactor nostr-feed and events modules to demonstrate pattern (~47% code reduction)
- Maintain full TypeScript compatibility and backward compatibility
- All modules now follow identical registration patterns for better maintainability

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 12:16:40 +02:00
3cf10b1db4 1.3.4 User-Scoped Storage Pattern: Add StorageService integration across modules for improved data management
- Introduced STORAGE_SERVICE token in the DI container for consistent service registration.
- Updated BaseService to include storageService as a dependency, ensuring proper initialization and error handling.
- Refactored ChatService to utilize storageService for managing unread messages and peers, replacing localStorage usage.
- Enhanced MarketStore to save and load orders using storageService, improving data persistence and user experience.
- Registered storageService in the base module, ensuring it is initialized and disposed of correctly.

This integration streamlines data handling across the application, promoting better maintainability and consistency.
2025-09-06 12:08:39 +02:00
3abdd2d7d9 Complete legacy relay infrastructure cleanup and documentation updates
- Remove duplicate legacy relay files from src/lib/nostr/ directory
- Add deprecation notices to outdated architecture documentation
- Update file path references in RELAY_HUB_ARCHITECTURE.md
- Clean up all remaining references to removed NostrclientHub service
- Finalize consolidation to single RelayHub service architecture

This completes the relay infrastructure cleanup effort, removing all
redundant code and updating documentation to reflect current architecture.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 11:03:56 +02:00
3570f5110d Update modular architecture analysis documentation to reflect recent progress and cleanup efforts
- Documented completion of legacy relay infrastructure cleanup, including the removal of redundant NostrclientHub and NostrStore Pinia store.
- Standardized on RelayHub service for all Nostr operations and updated dependency injection to remove unused tokens.
- Enhanced the current module structure section to reflect changes in key services and status.
2025-09-06 11:00:33 +02:00
7e4b64b831 Remove LEGACY Nostr client services and related components to streamline the codebase
- Delete Nostr client hub and associated files, including the Nostr store, to eliminate unused functionality.
- Update service tokens and dependency injections to reflect the removal of Nostr client services.
- Adjust notification settings in NotificationSettings.vue to prepare for future implementation of notifications.
2025-09-06 10:55:10 +02:00
92c33aa0a3 Remove legacy Nostr keypair authentication and fix auth service integration
- 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
2025-09-06 10:45:44 +02:00