- Introduced a new page for managing appunti in the admin area.
- Created AppuntiProvider to manage appunti state and API interactions.
- Added schemas for appunti and appunti groups.
- Implemented CRUD operations for appunti and appunti groups in the API.
- Removed potenziali related files and services as part of the refactor.
- Updated the public schema to include appunti and appunti groups.
- Improved error handling in the appunti service.
Co-authored-by: Copilot <copilot@github.com>
- Replaced custom Zod types with imported schemas in stripe router and user router.
- Updated payment controller to use new enum imports for order types and payment statuses.
- Refactored payment tests to utilize the new enum structure.
- Removed deprecated zod_types file and created new zod_chat_types file for chat-related schemas.
- Adjusted service files to align with the new order type enums and schemas.
- Enhanced the Caratteristiche type definition using Zod for better validation.
Co-authored-by: Copilot <copilot@github.com>
- Introduced Zod schemas for validation in the following entities:
- Provincie
- Ratelimiter
- Rinnovi
- Servizio
- ServizioAnnunci
- ServizioInteressi
- TestiEStringhe
- Users
- UserEtichette
- UserInvites
- UsersAnagrafica
- UsersStorage
- VideosRefs
- StatusConfermaEnum
- TipologiaPosizioneEnum
- Updated API routes in `catasto.ts` to include CRUD operations for Comuni, Nazioni, and Provincie with appropriate input validation.
- Enhanced controller methods in `catasto.controller.ts` to handle create, edit, and delete operations for Comuni and Nazioni.
- Added new utility Zod types for ComuniId, NazioniId, and ProvincieId.
Co-authored-by: Copilot <copilot@github.com>
- Added file attachment support in chat messages, allowing users to upload and send files.
- Implemented a new API endpoint to retrieve message attachments.
- Updated chat components to display attachments and handle file uploads.
- Improved user experience with loading indicators and toast notifications for file uploads.
- Refactored chat bottom bar to integrate file upload functionality seamlessly.
- Enhanced chat list to show attachments associated with messages.
- Updated database schema to support attachments in chat messages.
Co-authored-by: Copilot <copilot@github.com>
- Updated kanel.config.js to use makePgTsGenerator and adjusted type filtering.
- Modified various schema files to remove autogenerated comments and updated type definitions for enums to use union types.
- Added new MessagesAttachments schema and integrated it into PublicSchema.
- Ensured consistency in export types across all schema files.
- Updated ChatTopbar and Chat components to utilize ChatProvider for managing chat state and user information.
- Removed unnecessary props from ChatTopbar and adjusted its implementation to fetch data from context.
- Added ChatProvider to encapsulate chat-related state and functionality.
- Enhanced message handling by introducing reply and forward features in the chat schema and API.
- Cleaned up unused components and optimized imports across chat-related files.
- Improved user avatar color generation logic and removed hardcoded color values.
- Updated loading states and error handling in admin chat management pages.
- Changed the confirmation status checks from `accettato_conferma_at` to `status_conferma` in various components and controllers.
- Introduced a new `StatusConfermaEnum` to standardize confirmation statuses.
- Removed deprecated confirmation-related fields from the `ServizioAnnunci` schema.
- Deleted unused confirmation-related API methods and adjusted related logic in the service controller.
- Updated the search parameters schema to use the new confirmation status.
- Removed the `conferma-immobile` and `riapri-conferma` pages as they are no longer needed.
feat: update Servizio component to handle interruzioneDays and acceptedInterr logic
refactor: simplify servizio_actions by removing unused InterruzioneServizio and EditParametri components
feat: enhance FormEditServizioAdmin to include interruzioneDays and acceptedInterr fields
fix: adjust email service to delete obsolete emails and handle invalid email types gracefully
chore: update stripe controller to utilize interruzioneDays for lock expiration logic
fix: ensure correct handling of servizio expiration and interruzione logic in service controller
- Refactor `preparePayment` function to handle multiple order types including Rinnovo.
- Introduce new `RinnovoSolver` function to calculate renewal packs based on duration.
- Add `createRinnovo` service to manage the creation of renewal orders.
- Update `whIntentSucceededHandler` to handle payment confirmations for Rinnovo and other order types.
- Introduce default conditions for packs in `prezziario.service.ts`.
- Add new utility functions for managing renewal durations and permanenza.
- Update database interactions to ensure proper handling of orders and renewals.
- Enhance error handling and logging throughout the payment and renewal processes.
- Updated the Prezziario schema to replace boolean flags (isAcconto, isSaldo, isConsulenza, isStabile, isTransitorio) with new fields (order_type, service_type, service_variant) to better represent service attributes.
- Modified NewPrezzoModal to align with the updated schema.
- Renamed FormNewServizioAcquisto to FormServizioAcquisto in user onboarding pages for consistency.
- Adjusted imports and component usage in the user view and service onboarding pages to reflect the new form name.
- Implemented FormEditOrder component for editing orders with validation and submission handling.
- Created SchedaAnnuncioPage for displaying printable announcement details.
- Added BonificoManualePage for manual bank transfer payment instructions.
- Developed PagamentoPage for Stripe payment processing with PaymentIntent creation.
- Introduced PreviewPurchasePage for preparing payment with service details.
- Added pagamenti.controller for handling payment preparation and retrieval of payment data.
- 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 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.
- Removed temp_tokens data from SQL initialization.
- Updated AllegatiComp to invalidate additional service announcements on file removal.
- Simplified imports in interactions.tsx and removed unused components.
- Enhanced ServizioContent layout for better display of announcements.
- Adjusted button styles in servizio_annunci_accordions for responsiveness.
- Streamlined ricerca-table by removing unnecessary ServizioProvider wrapping.
- Modified upload modal to support new upload callback structure.
- Added new document reference fields to Servizio schema.
- Introduced UsersStorageUserStorageId type for better type safety.
- Updated servizio.controller to include document references in service announcements.
- Changed storage.controller to return user_storage_id on conflict.
- Updated docker-compose to streamline storage service configuration.
- Created migration script for new foreign key constraints on document references.
- Implemented ContattiProprietarioModal to manage document uploads and contact unlocking.
- 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.
- Updated enum definitions in PaymentStatusEnum and TipologiaPosizioneEnum to use single quotes and consistent formatting.
- Refactored Payments, Prezziario, Ratelimiter, Servizio, and other schema files to ensure consistent indentation and formatting.
- Added `updated_at` field to various queries in interests and servizio controllers.
- Removed unused imageCache utility file.