- Introduced new service status translations in Italian.
- Added service detail and management components for user and admin views.
- Implemented API endpoints for fetching service data and announcements.
- Enhanced service data handling with improved date parsing and formatting.
- Created new pages for service details accessible by both users and admins.
- Updated database queries to support new service functionalities.
- Removed AcquistoProcessing component and replaced it with a new CheckoutForm component for better separation of concerns.
- Added new payment checkout page to handle payment intents and display payment status.
- Updated server-side logic to create payment intents and retrieve payment data for checkout.
- Enhanced error handling and user feedback during payment processing.
- Introduced new utility functions for fetching payment data and managing Stripe integration.
- Added user_invites table to manage invitation tokens.
- Created invite router with procedures for sending, verifying, and accepting invites.
- Implemented email sending functionality for invites.
- Updated user controller to handle password setting during invite acceptance.
- Introduced mustChangePassword flag in user schema and related logic.
- Added middleware to enforce password change requirement.
- Created forms for accepting invites and changing passwords.
- Updated database migrations to reflect new user invite structure and fields.
- Replaced references to `api.settings` with `api.etichette`, `api.flags`, and `api.strings` in various admin pages to align with new API structure.
- Removed the deprecated `settingsRouter` and introduced `flagsRouter`, `etichetteRouter`, and `stringsRouter` to handle respective functionalities.
- Updated the `Flags` schema to change the `value` field from string to boolean.
- Modified flag handling logic in the `SendMessage` and `NewMail` functions to check for boolean flags instead of string values.
- Added migration script to convert the `value` column in the `flags` table from string to boolean.
- Implemented new routers for banners, etichette, flags, revalidation, and strings to encapsulate related functionalities.
- Updated package.json to include html2canvas-pro and jsPDF for PDF generation.
- Enhanced SchedaAnnuncioStampabile component to generate a PDF from HTML and send it via email.
- Implemented new API endpoint for sending the generated PDF as an email attachment.
- Refactored existing email sending logic across various controllers to use a unified template structure.
- Improved error handling and logging for email sending processes.
- Updated the announcement detail component to directly use images and videos from the data structure.
- Changed the form edit component to accommodate the new media structure, replacing AnnunciWithImages with AnnunciWithMedia.
- Modified the announcements list to initialize videos as an empty array.
- Enhanced the announcement view to handle external videos and updated the footer to display them correctly.
- Introduced a new utility function to generate YouTube embed URLs.
- Updated the database schema to replace url_video with external_videos and added a new videos_refs table for video management.
- Implemented video processing logic, including downloading, transcoding, and thumbnail generation.
- Added migration scripts for the new videos_refs table and updated existing references in the database.
- Implemented AdminLavoraConferma component to handle confirmation processes with document management.
- Added AdminContratto component for managing rental contracts and related documents.
- Introduced shared components for document selection and display (DocInfo and DocCombo).
- Enhanced storage controller with a new function to retrieve storage ID from user storage ID.
- Updated database interactions to improve error handling and data retrieval.
- Renamed `AnnunciInConferma` to `AnnunciInConfermaDialog` and `AnnunciSelezionati` to `AnnunciSelezionatiDialog` for clarity.
- Simplified button notifications for announcements by always displaying the count.
- Introduced `AnnunciInConfermaAccordion` and `AnnunciSelezionatiAccordion` components to manage accordion behavior for announcements.
- Updated button styles to remove unnecessary flex properties for better alignment.
- Improved form validation logic in `FormNewServizioAcquisto` for better clarity and performance.
- Enhanced the `UploadModal` to accept props directly, simplifying the component structure.
- Added a new `CardAnnuncio` component for displaying announcements with improved layout and functionality.
- Updated global styles to include a new background color variable.
- Refactored API routes and controllers for better clarity and maintainability.
- Cleaned up various components by removing redundant class names and improving accessibility.
- Updated CardAnnuncio and related components to use a new images structure instead of url_immagini.
- Removed references to url_immagini and replaced them with images array containing img and thumb properties.
- Adjusted API responses to include images in the new format.
- Modified middleware and storage service to accommodate new image handling.
- Cleaned up unused code and schemas related to old image references.
- Updated Docker configuration for storage service.