Commit graph

588 commits

Author SHA1 Message Date
25d17b481d refactor: consolidate Product types into single source of truth
- Replace dual Product interfaces with unified domain model in types/market.ts
  - Rename API response type to ProductApiResponse for clarity
  - Add mapApiResponseToProduct() function for clean API-to-domain conversion
  - Update MerchantStore.vue to use mapping function instead of manual property assignment
  - Fix CreateProductDialog.vue to properly handle type conversions for API calls
  - Resolve TypeScript readonly type conflicts using type assertions instead of array spreading
  - Add missing reactive references (searchQuery) and remove unused imports
  - Prevent Vue 3 recursion issues by maintaining original reactive object references

  This eliminates confusion between API response structure and application domain model,
  following single source of truth principle for better maintainability and type safety.
2025-09-26 17:29:06 +02:00
478b83ddd3 FIX BUILD ERRORS & AVOID INFINITE RECURSION: Enhance product enrichment and type definitions in MerchantStore component
- Updated the product enrichment logic in MerchantStore.vue to ensure all necessary properties match the Product interface, improving data consistency.
- Added optional properties for active status, pending state, and configuration in the Product interface within market.ts, enhancing flexibility for merchant store management.
- Improved type assertions in MarketPage.vue and StallView.vue to ensure proper type handling for product data, enhancing type safety and clarity.

These changes improve the robustness and reliability of product data handling across the market components, enhancing the overall user experience.
2025-09-26 17:20:59 +02:00
d98dcc58d7 BUILD ERRORS: Refactor MarketFuzzySearch component for improved input handling
- Updated the searchInputRef initialization to remove the explicit type declaration, simplifying the code.
- Enhanced input focus and blur handling by ensuring the existence of the $el property before accessing the input element, improving robustness.
- Streamlined the focus management logic in the handleClear and handleKeydown functions for better user experience.

These changes enhance the reliability and clarity of the MarketFuzzySearch component, improving overall usability.
2025-09-26 17:11:08 +02:00
522d159628 Implement dynamic category filtering in MarketPage
- Added a computed property to dynamically filter products based on search results, enhancing the user experience by displaying relevant products when available.
- Updated the `useCategoryFilter` integration to utilize the new computed property, streamlining the filtering logic and improving overall performance.

These changes provide users with a more responsive and relevant product display in the MarketPage, improving the effectiveness of category filtering.
2025-09-26 17:02:01 +02:00
0e6a4a7451 Refactor StallView component for enhanced layout and visual appeal
- Redesigned the Stall Info Card to improve responsiveness and aesthetics, incorporating a more compact layout and enhanced logo display.
- Updated the styling of stall statistics and category badges for better alignment with the design system, improving user interaction.
- Enhanced the overall structure and clarity of stall information, making it more visually engaging and user-friendly.

These changes provide a more cohesive and appealing interface in the StallView component, improving the overall user experience.
2025-09-26 17:02:01 +02:00
0a94c7b23d Refactor StallView layout for improved responsiveness and visual clarity
- Adjusted padding, margins, and font sizes throughout the StallView component to enhance mobile responsiveness and overall user experience.
- Updated the styling of various elements, including buttons, statistics, and category badges, to ensure better alignment with the design system and improved accessibility.
- Enhanced the layout of the stall information and search/filter bar for a more cohesive appearance across different screen sizes.

These changes provide a more visually appealing and user-friendly interface in the StallView component.
2025-09-26 17:02:01 +02:00
a82360b283 Enhance MarketFuzzySearch component with responsive keyboard hints
- Updated the keyboard shortcuts hint to display only on desktop devices, improving usability for users on larger screens.
- Introduced responsive breakpoints to manage the visibility of the enhanced placeholder, ensuring a better user experience across different device sizes.

These changes refine the search component by tailoring the interface to the user's device, enhancing accessibility and interaction.
2025-09-26 17:02:01 +02:00
f3504b7df5 Refactor active filters summary in MarketPage for clarity and simplicity
- Updated the active filters summary section to focus on product count when filters are active, enhancing clarity for users.
- Simplified the layout by removing unnecessary elements, improving the overall user experience and accessibility.

These changes streamline the display of active filters, making it easier for users to understand the number of products available based on their selected categories.
2025-09-26 17:02:00 +02:00
8fe53d3d71 Refactor MarketPage layout for improved mobile responsiveness and user experience
- Optimized the Market Header and Fuzzy Search components for better mobile display, enhancing usability on smaller screens.
- Adjusted spacing and font sizes for various elements to ensure a cohesive look across devices.
- Improved the active filters summary and category filters for better accessibility and visual clarity.

These changes enhance the overall user experience by providing a more responsive and visually appealing interface in the MarketPage.
2025-09-26 17:02:00 +02:00
f2a432b6df Enhance MarketFuzzySearch component with improved suggestion display and input focus handling
- Added focus and blur event handlers to manage input focus state.
- Updated suggestion display to show both search suggestions and recent searches in a unified dropdown.
- Improved styling for suggestion buttons to enhance user interaction.
- Ensured input field is focused after clearing search, improving usability.

These changes enhance the search experience by providing clearer suggestions and better input management.
2025-09-26 17:02:00 +02:00
06d4cc4d4a Update fuzzy search threshold in MarketPage for improved typo tolerance
- Adjusted the typo tolerance threshold in the fuzzy search options from 0.6 to 0.4, allowing for more flexible matching of product names and descriptions.
- This change enhances the search experience by accommodating a wider range of user input variations, improving product discoverability.
2025-09-26 17:01:59 +02:00
5d55dfe9d1 Refactor StallView styles for improved visual consistency
- Updated background and text colors in StallView to align with the new design system, enhancing overall aesthetics and readability.
- Adjusted styles for logo and product statistics to ensure better integration with the updated theme.
- Improved accessibility by refining text colors for better contrast and visibility.

These changes enhance the user experience by providing a more cohesive and visually appealing interface in the StallView component.
2025-09-26 00:49:43 +02:00
39ecba581f Implement AND/OR filter logic in useCategoryFilter and update MarketPage UI
- Added support for AND/OR filtering modes in the `useCategoryFilter` composable, allowing users to filter products based on all or any selected categories.
- Introduced reactive state management for filter mode and updated the filtering logic to accommodate the new functionality.
- Enhanced the MarketPage UI with a toggle for selecting filter modes, improving user experience and accessibility.
- Updated ARIA attributes for better screen reader support in the filter mode selection.

These changes significantly enhance the category filtering capabilities, providing users with more control over product visibility.

Refactor CreateProductDialog and MarketPage for improved category handling

- Updated CreateProductDialog to utilize `model-value` and `@update:model-value` for the CategoryInput component, enhancing reactivity in category selection.
- Enhanced MarketPage filtering logic to support AND/OR modes, allowing for more flexible product filtering based on selected categories.
- Improved category normalization and matching logic to ensure accurate filtering results.

These changes streamline the category management and filtering processes, providing users with a more intuitive experience when creating and finding products.
2025-09-26 00:42:05 +02:00
bb761abe75 Refactor CreateProductDialog and MerchantStore for improved product handling
- Updated CreateProductDialog to use `model-value` for Checkbox components, enhancing reactivity and consistency.
- Modified MerchantStore to only add active products to the market store, improving product visibility and management.

These changes streamline the product creation and management processes, ensuring better user experience and data integrity.
2025-09-26 00:42:02 +02:00
a75982f8ef Add CategoryInput component for category management in CreateProductDialog
- Introduced a new CategoryInput component to facilitate category selection with suggestions and popular categories.
- Updated CreateProductDialog to integrate the CategoryInput, enhancing the user experience for adding product categories.
- Improved accessibility and usability by allowing users to add categories via keyboard shortcuts and providing visual feedback for selected categories.

These changes enhance the product creation process by streamlining category management.
2025-09-26 00:40:40 +02:00
4d3962e941 Update MarketPage styles for active filters summary
- Changed background and text colors in the active filters summary to improve visual consistency and accessibility.
- Updated ARIA attributes to enhance screen reader support for better usability.

These changes refine the user interface and accessibility of the category filtering features in the MarketPage.
2025-09-25 23:56:43 +02:00
03ca7525af Add useCategoryFilter composable and enhance MarketPage for category filtering
- Introduced a new `useCategoryFilter` composable to manage category filtering functionality, providing reactive state management and optimized performance for product filtering based on selected categories.
- Updated `MarketPage` to integrate the new composable, enhancing the UI with improved accessibility features, including ARIA roles and labels for category filters and active filters summary.
- Refactored category filtering logic to streamline product display based on selected categories, improving user experience in navigating and filtering products.

These changes enhance the overall functionality and usability of category filtering within the market module.
2025-09-25 23:51:32 +02:00
7334437b77 Enhance category extraction in useMarket and update MarketPage layout
- Added functionality to extract categories from Nostr event tags in the useMarket composable, improving product categorization.
- Updated MarketPage layout to ensure proper rendering of category filters, enhancing the user interface for browsing by category.

These changes improve the clarity and usability of product categorization within the market module.
2025-09-25 23:35:37 +02:00
526caa2689 Enhance category filtering in MarketPage and market store
- Added a new function `clearCategoryFilters` in the market store to reset selected category filters.
- Updated MarketPage to include an enhanced category filter UI with a clear all button, active filters summary, and improved badge styling for selected categories.
- Introduced computed properties for tracking selected categories and their count, improving user experience in managing filters.

These changes provide a more intuitive and user-friendly interface for category filtering in the market module.
2025-09-25 23:19:58 +02:00
8aa575ffb1 Add MarketFuzzySearch component for enhanced product searching
- Introduced a new MarketFuzzySearch component to provide an advanced search interface with keyboard shortcuts, search suggestions, and recent searches functionality.
- Updated MarketPage and StallView to integrate the new fuzzy search component, replacing the previous search input implementations.
- Enhanced search capabilities with configurable options for better user experience and product discovery.

These changes improve the search functionality across the market module, making it easier for users to find products efficiently.
2025-09-25 23:02:47 +02:00
86d3133978 Add stall view and product detail dialog in market module
- Introduced a new route for viewing individual stalls, allowing users to navigate to a specific stall's page.
- Created a ProductDetailDialog component to display detailed information about products, including images, descriptions, and stock status.
- Updated MarketPage to handle stall navigation and integrate the new dialog for product details.

These enhancements improve the user experience by providing more detailed product information and easier navigation within the market module.
2025-09-25 22:53:12 +02:00
f2080abce5 Enhance product handling in MerchantStore and useMarket
- Enriched products with stall names in MerchantStore, ensuring each product displays the associated stall name or 'Unknown Stall' if not available.
- Updated product addition logic in useMarket to include stall names, improving clarity and consistency across the application.
- Enhanced error handling for product loading to maintain robust functionality.

These changes improve the user experience by providing clearer product information in the market interface.
2025-09-25 22:44:38 +02:00
4e90a4e795 Update visibility logic in ThreadedPost component
- Refined the visibility logic to ensure a post is only hidden if its parent is collapsed, rather than if it is collapsed itself. This change enhances the clarity of post visibility in threaded discussions.
- Adjusted the parent-collapsed prop to reflect the current collapse state, improving the interaction and user experience within the NostrFeed module.
2025-09-23 23:59:43 +02:00
f0a6b2bd1d Implement limited replies feature in NostrFeed component
- Introduced a mechanism to track posts that should display limited replies (only the first 2) instead of collapsing them entirely, enhancing user interaction with threaded discussions.
- Updated the ThreadedPost component to support toggling between limited and full replies, improving visibility and engagement with nested replies.
- Enhanced the FeedService to ensure proper filtering and handling of feed types, contributing to a more organized and user-friendly experience within the NostrFeed module.
2025-09-23 23:59:43 +02:00
872954d5ce Implement centralized collapse state management in NostrFeed component
- Introduced a centralized mechanism for managing the collapse state of posts, allowing for automatic collapsing of posts with more than 2 direct replies.
- Enhanced the ThreadedPost component to utilize the centralized collapse state, improving the visibility and interaction of nested replies.
- Added cascading collapse functionality to ensure that all descendant posts are collapsed when a parent post is collapsed.

These changes contribute to a more organized and user-friendly experience within the NostrFeed module.
2025-09-23 23:59:43 +02:00
1e1cd69aaf Enhance FeedService with reaction handling and post sorting
- Introduced a ReactionService to manage like counts for posts, improving engagement metrics.
- Implemented sorting logic for posts based on likes and timestamps, enhancing the visibility of popular content.
- Added recursive sorting for replies to maintain order within threads, ensuring a coherent display of discussions.

These changes contribute to a more dynamic and user-friendly experience within the NostrFeed module.
2025-09-23 23:59:43 +02:00
19ab660ed3 Enhance reply visibility and collapse functionality in ThreadedPost component
- Updated the collapse state logic to automatically collapse replies if there are more than 2 direct replies, improving user experience by reducing clutter.
- Added a "Load more replies" button to allow users to expand and view additional replies when collapsed, enhancing interaction and engagement.

These changes contribute to a more organized and user-friendly interface within the NostrFeed module.
2025-09-23 23:59:43 +02:00
7c5f75a8ea Update collapse behavior and styling in ThreadedPost component
- Modified the collapse state logic to automatically collapse replies if there are more than 2 direct replies, enhancing user experience by reducing clutter.
- Updated the styling of the vertical line connecting nested replies for improved visual consistency.

These changes contribute to a more organized and user-friendly interface within the NostrFeed module.
2025-09-23 23:59:43 +02:00
26ba27c87a Enhance styling and layout of action buttons in ThreadedPost component
- Updated button sizes and padding for Reply, Like, and Share actions to improve visual consistency and usability.
- Adjusted hover effects and removed unnecessary text for a cleaner interface.

These changes contribute to a more streamlined and user-friendly experience within the NostrFeed module.
2025-09-23 23:59:43 +02:00
c7ce34b301 Refactor post action buttons in ThreadedPost component
- Updated the layout and styling of action buttons (Reply, Like, Share) for improved usability and visual consistency.
- Adjusted button sizes, padding, and hover effects to enhance the user experience.

These changes contribute to a more streamlined and accessible interface within the NostrFeed module.
2025-09-23 23:59:43 +02:00
dfcb354a5c Refactor post action layout in ThreadedPost component
- Updated the layout of post action buttons to align them to the right, improving the visual structure of the component.
- Removed the mentions display section to streamline the interface and focus on action buttons.

These changes enhance the usability and clarity of the ThreadedPost component within the NostrFeed module.
2025-09-23 23:59:43 +02:00
eaf040d4a1 Update vertical line styling and indentation in ThreadedPost component
- Changed the class for the vertical line connecting nested replies to improve visual consistency.
- Adjusted the margin calculation for better alignment of nested posts, enhancing the overall layout of threaded discussions.

These updates contribute to a more organized and visually appealing interface within the NostrFeed module.
2025-09-23 23:59:43 +02:00
be8c7162b6 Refactor indentation and styling in ThreadedPost component
- Adjusted margin and padding values for nested posts to improve visual hierarchy and readability.
- Updated styles for post containers to enhance the overall layout of threaded discussions.

These changes contribute to a more organized and user-friendly interface within the NostrFeed module.
2025-09-23 23:59:43 +02:00
ba590d5a4a Remove unnecessary horizontal line for nested replies in ThreadedPost component
- Eliminated the horizontal line that visually connected nested replies, simplifying the layout of threaded posts.
- This change enhances the clarity and organization of the post display, contributing to a more streamlined user experience within the NostrFeed module.
2025-09-23 23:59:43 +02:00
791bdbe3eb Refactor indentation and styling in ThreadedPost component
- Adjusted margin and padding values for nested posts to improve visual hierarchy and readability.
- Updated styles for vertical lines and post containers to enhance the overall layout of threaded discussions.

These changes contribute to a more organized and user-friendly interface within the NostrFeed module.
2025-09-23 23:59:43 +02:00
ebc7885f04 Implement threaded post structure in NostrFeed module
- Introduced a new ThreadedPost component to display posts and their replies in a nested format, enhancing the readability of discussions.
- Updated the useFeed composable to include a computed property for building threaded posts from flat post data.
- Modified FeedService to support the extraction of reply information and build a hierarchical structure for posts, allowing for better organization of replies.
- Removed deprecated rideshare-related functions from NostrFeed.vue, streamlining the component and focusing on the threaded view.

These changes improve the user experience by facilitating clearer interactions within post discussions, promoting engagement and organization in the NostrFeed module.
2025-09-23 23:59:43 +02:00
c027b9ac45 Update button styles in Home.vue for enhanced visual appeal
- Modified button classes to improve shadow effects and background color, ensuring a more cohesive design.
- Updated text color to enhance readability and maintain consistency with the overall theme.

These changes contribute to a more polished user interface and improve user interaction within the Home component.
2025-09-23 23:59:37 +02:00
ff60277ae9 Update RideshareComposer to reflect pricing in satoshis
- Changed price labels and descriptions to specify 'sats' instead of dollars, enhancing clarity for users.
- Updated the price field type from string to number, ensuring proper validation and handling of input.
- Adjusted content generation to display prices in satoshis, aligning with the overall theme of the rideshare feature.

These changes improve the user experience by providing clearer financial information in the RideshareComposer component.
2025-09-23 23:59:37 +02:00
3c20d1c584 Refactor NostrFeed module and remove marketplace components
- Deleted the MarketProduct component and associated market parsing logic, streamlining the NostrFeed module.
- Updated FeedService to exclude marketplace events from the main feed, ensuring clearer event management.
- Adjusted content filters to remove marketplace-related entries, enhancing the organization of content filtering.

These changes improve the clarity and efficiency of the NostrFeed module by separating marketplace functionality.
2025-09-23 23:59:37 +02:00
2a9915a727 fix build errors 2025-09-23 23:59:37 +02:00
8c39ca3599 Refactor Home.vue to improve composer layout and scrolling behavior
- Updated the composer section to include a maximum height and overflow handling, enhancing usability by allowing users to scroll through the composer content.
- Maintained the existing functionality of the NoteComposer and RideshareComposer components, ensuring a seamless user experience.

These changes contribute to a more user-friendly interface within the Home component.
2025-09-23 23:59:37 +02:00
74e443184f Update button styles in Home.vue for improved visual consistency
- Enhanced button styles by adding background color and border properties, ensuring a more cohesive design.
- Updated text styles to use a medium font weight for better readability and emphasis on button labels.

These changes contribute to a more polished user interface and improve overall user interaction within the Home component.
2025-09-23 23:59:37 +02:00
dfd3ddd112 Add Rideshare functionality to NostrFeed module
- Introduced a new RideshareComposer component for creating rideshare posts, allowing users to specify ride details such as type, locations, date, time, and contact methods.
- Enhanced NostrFeed.vue to display rideshare badges for relevant posts, improving visibility and categorization of rideshare content.
- Updated Home.vue to integrate the RideshareComposer, providing users with an option to compose rideshare requests or offers alongside regular notes.

These changes enhance the user experience by facilitating rideshare interactions within the NostrFeed module, promoting community engagement.
2025-09-23 23:59:37 +02:00
667a7c2d89 Add rideshare content filter and enhance FeedService filtering logic
- Introduced a new rideshare content filter in content-filters.ts, allowing for the categorization of rideshare requests and offers.
- Updated the FeedService to support filtering by tags and keywords, enhancing the ability to search and filter content based on user-defined criteria.
- Modified Home.vue to include the new rideshare filter preset, improving user access to rideshare-related content.

These changes enhance the content filtering capabilities and user experience within the NostrFeed module.
2025-09-23 23:59:37 +02:00
005b78bf0e Add ReactionService and integrate reactions functionality into NostrFeed module
- Introduced ReactionService to manage event reactions, including likes and dislikes.
- Updated NostrFeed module to register ReactionService in the DI container and initialize it during installation.
- Enhanced NostrFeed.vue to utilize the reactions service for displaying and managing likes on posts.
- Created useReactions composable for handling reactions, including fetching event reactions and subscribing to updates.

These changes enhance user engagement by allowing users to interact with posts through reactions, improving the overall experience within the feed.

Refactor reactions handling in NostrFeed module

- Renamed `likeEvent` to `toggleLike` in the useReactions composable to better reflect its functionality of toggling likes.
- Updated NostrFeed.vue to utilize the new `toggleLike` method for handling like interactions.
- Enhanced ReactionService to support deletion of reactions and improved handling of reaction events, including subscription to deletion events.
- Added logic to manage user reaction IDs for better tracking of likes and unlikes.

These changes streamline the reactions functionality, improving user interaction and feedback within the NostrFeed.

Refactor content filters and event inclusion logic in NostrFeed module

- Removed market-related content filters from the presets, as they now have a dedicated section.
- Updated the handling of reactions in content filters, clarifying that reactions are processed separately by the ReactionService.
- Enhanced the FeedService to exclude reactions and deletions from the main feed, ensuring cleaner event management.

These changes streamline the content filtering process and improve the clarity of event handling within the NostrFeed.

Refactor content filters and FeedService logic for marketplace separation

- Removed marketplace-related filters from the general presets in content-filters.ts, as they now have a dedicated section.
- Updated FeedService to exclude marketplace events from the main feed, ensuring clearer event management.
- Adjusted Home.vue to reflect the removal of the marketplace filter preset.

These changes streamline content filtering and improve the organization of marketplace events within the NostrFeed module.

Enhance ReactionService to support global deletion monitoring and improve reaction handling

- Added functionality to monitor deletion events for reactions, ensuring accurate updates when reactions are deleted.
- Implemented logic to handle deletion requests, processing only those from the original reaction authors as per NIP-09 spec.
- Updated reaction management to ensure only the latest reaction from each user is counted, improving the accuracy of like/dislike tallies.
- Refactored event reaction updates to clear deleted reactions and maintain a clean state.

These changes enhance the reliability and user experience of the reactions feature within the NostrFeed module.
2025-09-23 23:59:37 +02:00
45391cbaa1 Add ProfileService and integrate profiles management into NostrFeed module
- Introduced ProfileService to handle user profiles, including fetching and displaying profile information.
- Updated NostrFeed module to register ProfileService in the DI container and initialize it during installation.
- Enhanced NostrFeed.vue to utilize the profiles service for displaying user names alongside posts.
- Created useProfiles composable for managing profile-related functionality, including fetching and subscribing to profile updates.

These changes improve user engagement by providing richer profile information within the feed, enhancing the overall user experience.
2025-09-23 23:59:37 +02:00
310612a2c5 Update NostrFeed and Home components for improved styling and layout
- Modified NostrFeed.vue to enhance the post list styling with updated divider classes for better visual separation.
- Adjusted Home.vue button styles to include background color and border enhancements, improving the overall appearance and user interaction.

These changes refine the user interface, contributing to a more polished and engaging experience.
2025-09-23 23:59:37 +02:00
2d0aadccb7 Implement Note Composer and enhance NostrFeed interactions
- Added NoteComposer.vue for composing notes, including reply functionality and mention support.
- Integrated NoteComposer into Home.vue, allowing users to publish notes and reply to existing ones.
- Enhanced NostrFeed.vue to handle reply events, improving user engagement with notes.
- Updated Home.vue to manage note publishing and reply states effectively.

These changes enhance the user experience by providing a seamless way to compose and interact with notes within the feed.

Enhance NostrFeed and Home components for improved user experience

- Added compact mode support in NostrFeed.vue to optimize display for mobile users.
- Refactored layout in NostrFeed.vue for better responsiveness and usability, including adjustments to padding and spacing.
- Updated Home.vue to integrate a collapsible filter panel and a floating action button for composing notes, enhancing accessibility and interaction.
- Implemented quick filter presets for mobile, allowing users to easily switch between content types.

These changes improve the overall functionality and user engagement within the feed, providing a more streamlined experience across devices.

Enhance NoteComposer and Home components for improved note management

- Updated NoteComposer.vue to include a close button for better user control when composing notes.
- Modified Home.vue to handle the close event from NoteComposer, allowing users to dismiss the composer easily.

These changes enhance the user experience by providing a more intuitive interface for composing and managing notes.
2025-09-23 23:59:37 +02:00
77ed913e1b Add MarketProduct component and integrate into NostrFeed
- Introduced MarketProduct.vue to display market product details, including images, pricing, and availability status.
- Enhanced NostrFeed.vue to render MarketProduct components for market events, allowing users to view and share products.
- Implemented market data parsing in marketParser.ts to handle Nostr market events, ensuring structured data representation.

These changes improve the marketplace functionality within the feed, enhancing user engagement with market products.
2025-09-23 23:59:37 +02:00
f05398fa9e Enhance FeedService filtering logic
- Added a watch function in useFeed to log updates to filtered posts,
aiding in debugging.
- Updated content filters to include text notes in announcements and
marketplace presets, ensuring broader content visibility.
- Enhanced FeedService to log detailed information during custom
filtering, improving traceability of filtering logic.
- Modified Home.vue to always use custom filters for better consistency
in feed display.

These changes improve the reactivity, flexibility, and clarity of the
feed system, enhancing the overall user experience.
2025-09-23 23:59:37 +02:00