Chargement…

Aller au contenu principal

Changelog

Historique des versions et améliorations de la plateforme Vetzy.

Changelog — Vetzy App

Le format s'inspire de Keep a Changelog.

[Unreleased]

[1.6.37] - 2026-06-12

tag: v1.6.37

Ajouté

  • Dashboard propriétaire : icônes PNG métier (actions rapides, empty state RDV), assets stats, fond hero user-hero-bg.png.
  • Cartes animaux : motif de couverture pet-card-cover-pattern.png, avatar via x-pet.avatar.

Modifié

  • Layout user : en-tête avec @section('page-header-actions'), nav secondaire desktop only.
  • Pages pets / RDV : compteur et CTA dans l’en-tête, suppression des doublons.
  • Dashboard : retrait de l’en-tête « Bienvenue », stats avec icônes PNG.
  • Préférences : suppression du toggle mode sombre (light-only).

[1.6.22] - 2026-05-24

tag: v1.6.22

Ajouté

  • Home : fonds PNG section écosystème bento (public/images/ecosystem/*), bannière CTA home-cta.png.

Modifié

  • Recherche : CityParamResolver, recherche hybride 2 passes, skeleton/stagger, géoloc refusée, cache groupé, i18n NL/IT.
  • Home : cartes bento sans icônes (images + overlay), section #veterinaires avec PublicProfileAvatar, CTA « Prêt à commencer » avec photo de fond.
  • Profils publics : hero-background avec bg.png par défaut (variant profile).

[1.6.21] - 2026-05-24

tag: v1.6.21

Ajouté

  • Refonte /search : barre de filtres horizontale, combobox spécialisations/services, cartes résultats dédiées, i18n FR/EN/NL.
  • Placeholders PNG générés (indépendant, centre, véto en centre) via PublicProfileAvatar.
  • Tests Pest recherche et unitaires avatars.

Modifié

  • SearchForm : filtres en ligne, 24h/urgences, réservation en ligne, tri, SEO dynamique, sync URL.
  • Profils publics : héros avec placeholders, site web en « Afficher le site web », suppression badge vérifié sur héros véto.
  • SearchService / HeroRegionSearchService : avatars sans fallback default-avatar.avif.

[1.6.20] - 2026-05-24

tag: v1.6.20

Ajouté

  • Seed démo PetAlertsDemoSeeder (alertes perdu/trouvé/adoption/vente).
  • i18n plan du site (lang/*/sitemap.php), traductions EN pet_alerts.
  • Hero légal partagé (legal/partials/hero.blade.php).

Modifié

  • Pages légales : meta description + canonical sur terms, privacy, cookies, security, changelog ; security/changelog alignés sur le hero teal.
  • /welcome : redirection 301 vers / ; liens footer/header/erreurs/e-mails corrigés.
  • sitemap.xml : cookies, security, changelog, universe, premiers-secours, pour-les-centres ; lastmod basé sur les modèles ; robots.txt pointe vers /sitemap.xml live.
  • Sitemap HTML : libellés i18n, section légale complète.
  • Pet-friendly : label « Type » du formulaire de suggestion i18n.

[1.6.19] - 2026-05-24

tag: v1.6.19

Ajouté

  • SEO/PWA admin : modèles SiteSeoSetting / SitePwaSetting, SeoPresenter, JSON-LD organisation sur la home, commandes sync manifest et import audit qualité.

[1.6.18] - 2026-05-24

tag: v1.6.18

Ajouté (scope: app — design system §8 + pets)

  • Composant hero partagé vetzy-ui::hero-background et assets footer via FooterPresenter.
  • PetAvatarResolver, MedicalRecordService, formulaire/liste dossier médical, page triage premiers secours (FirstAidTriage).
  • Manifest PWA enrichi (site.webmanifest).

Modifié (scope: app — design system §8)

  • Suppression des classes Tailwind dark: sur l’ensemble des vues Blade/JS.

  • Accents carte écosystème unifiés en teal sur /universe.

  • Connexion vetzy_garde dans config/database.php ; variables GARDE_DB_* et VETZY_GARDE_DB_CONNECTION dans .env.example.

  • Tests Pest : GardeEmergencyFlagSyncServiceTest, SyncGardeEmergencyFlagsCommandTest.

Modifié (scope: app + garde — sync garde §2.12)

  • GardeScrapedImportService (garde) : propagation is_emergency / is_24h depuis entrée solo, centre ou membre d’équipe.
  • Tests garde : GardeScrapedImportServiceTest, EmergencyFlagsVisibilityTest.

[1.6.17] - 2026-05-24

tag: v1.6.17

Ajouté (scope: app — marketing pour-veterinarians)

  • Mockups IA 16:9 (teal/slate) pour la section « Découvrez l'application » sur /pour-les-veterinaires : dashboard-vet, calendar-vet, appointments-vet, pets-vet, subscriptions-vet, dashboard-center dans public/images/for-veterinarians/.

[1.6.14] - 2026-05-21

issue: https://github.com/martin-lechene/vetzyapp/issues/84
tag: v1.6.14

Ajouté (scope: app — pages publiques §2.12 suite)

  • Hub erreurs x-error-hub (404/403/419/500/503) : cartes fixes, filtres, espace connecté.
  • Module lieux pet-friendly (/lieux-pet-friendly) : carte Leaflet, suggestions modération, seeder référence.
  • Vues package vetzy/pet-alerts (index, create, show) ; migration alignement table pet_alerts (UUID).
  • DiscordWebhookNotifier + config/vetzy-notifications.php (webhooks .env uniquement).
  • Docs app/docs/locale-routing.md, app/docs/public-directory-cities.md.
  • Phase D : config/vetzy-public-directory.php, PublicDirectoryConfig, commande vetzy:garde-directory-status, section sitemap « villes prioritaires », URLs XML (pet-alerts, pet-friendly, FAQ, support).
  • Phase E (polish) : ErrorPageLayoutResolver (layout erreurs user/vet/center), honeypot pet-alerts, captures FAQ, home « Comment ça marche » / « Pourquoi Vetzy » enrichi.
  • Phase F (i18n support/status) : lang/{fr,en,nl}/support.php, lang/{fr,en}/status.php, App\Support\SupportEmail, FAQ seeder Europe + activation pros ; e2e public-pages-phase-f.mjs.
  • Phase G (FAQ + inscription) : FaqStaticFallback, audiences invité all+general uniquement, suppression fallback EN du contrôleur ; honeypot inscription (Fortify + magic link) ; e2e public-pages-phase-g.mjs.
  • Phase H (docs + annuaire) : lang/{fr,en}/docs.php, composant x-public.docs-hero, hub /docs i18n (quick links → support) ; commande vetzy:garde-directory-status enrichie (--json, --strict, résumé, alias slugs CH) ; e2e public-pages-phase-h.mjs.

Modifié (scope: app — pages publiques §2.12 suite)

  • PlatformToolsSeeder : slugs parcs, petsitter ; pharmacies → hub pet-friendly ; Assur'O retiré.
  • /help → redirect 301 /support ; FAQ filtre audience (invité sans vet/center) ; captures FAQ affichées.
  • Toolbar : LU ; cookie vetzy_locale ; LanguageController / SetLocaleFromUser corrigés pour locales associatives.
  • Erreurs : layout user si connecté sur toutes les URLs.
  • Favicon : favicon-16x16.png / favicon-32x32.png dans meta.blade.php et site.webmanifest.
  • Pages /support et /status : textes via __() ; email support selon TLD (config/vetzy.php).
  • Hub /docs et sous-pages : hero + fil d’Ariane i18n ; corps principaux guides en FR (veterinarian-guide encore EN).
  • vetzy:garde-directory-status : tableau récap, hints seed Reference/Europe, PublicDirectoryConfig::findSpotlightCity().
  • Annuaire : 5 fiches réelles/ville (VETZY_DIRECTORY_TARGET_PER_CITY, real_data_only, plafond import) ; DirectoryVeterinaryDefaults (is_bookable=false, pas d’urgence sur l’annuaire).
  • Guides /docs : contenu FR (partials docs/partials/fr/*) — getting-started, troubleshooting, api, video-tutorials, user-guide.
  • Légales : lang/fr/cookies.php, vues cookies/terms/privacy i18n ; test Pest cookies FR.
  • Sync garde : GardeEmergencyFlagsSyncService, vetzy:sync-garde-emergency-flags, config/vetzy-garde-sync.php ; doc public-directory-cities.md + .env.example.

[1.6.13] - 2026-05-21

Ajouté (scope: app — seeders Europe réels)

  • Arborescence seeders Reference / Demo / RealData ; orchestrateur EuropeVeterinaryDirectorySeeder et seeders par pays (BE officiel + scraped, FR/CH/LU scraped).
  • JSON database/data/real-data/europe/scraped-veterinarians-{be,fr,ch,lu}.json ; script tools/dev/generate-europe-scraped-json.php.
  • VeterinaryScrapedImportService : importFromArray, fusion centres (merge_centers), compteurs détaillés.
  • Doc app/docs/seeders.md ; tests Pest VeterinaryScrapedImportServiceTest.

Modifié (scope: app — seeders)

  • DemoSeeder : comptes démo uniquement (retrait DemoEuropeVeterinariansSeeder, liste officielle et import massif).
  • DatabaseSeeder : enchaîne ReferenceRealDataDemo si SEED_FULL.

Supprimé (scope: app — seeders)

  • DemoEuropeVeterinariansSeeder (vétos fictifs par ville).
  • WorldVeterinarySeeder (données fusionnées dans JSON / seeders pays).

Modifié (scope: app — cleanup architecture)

  • Suppression commande dupliquée app:import-scraped-veterinarians (fichier legacy).
  • Suppression AuthenticatedSessionController non routé et vue dupliquée auth/profile.blade.php.
  • Route legacy /veterinarians/profile/{slug} : redirection 301 vers profil SEO /veterinaire/....
  • Composer : retrait deps inutilisées (phpoffice/phpspreadsheet, nikic/php-parser) ; laravel/nightwatch en require-dev.

Ajouté (scope: app — pages publiques §2.12)

  • Hub /outils (redirect /services/outils, /tools/outils) avec catalogue platform_tools et bannières promo.
  • FAQ en base (faq_categories, faq_entries, traductions FR/EN/NL), feedback « utile », e-mail support par TLD.
  • Tickets support publics (support_tickets) + module admin (/admin/app/support, /admin/app/platform-tools).
  • Package vetzy/pet-alerts (routes /pet-alerts).
  • Seeders : PublicPagesFaqSeeder, PlatformToolsSeeder (sous Reference/).
  • Honeypot Spatie sur formulaires contact, support et FAQ helpful.
  • Pages d’erreur unifiées (i18n), légales HTML (terms / privacy sans markdown runtime), hub documentation enrichi.

Modifié

  • Locale connectée via middleware SetLocaleFromUser (users.preferred_locale).
  • Favicon / logo header & footer Dozy (images/dozy-1.png).
  • Profils vétérinaires : bannière si is_bookable est faux ; stats réelles sur la page À propos.

[1.6.12] - 2026-05-21

Ajouté

  • Emails : layout light-only teal (vetzy-notifications::mail.layout), refonte des Mailables et notifications RDV/auth/métier.
  • Commande : vetzy:mail-test-all — envoi de test pour tous les templates email App + package notifications.

Modifié

  • Package vetzy/notifications : partials hero/CTA, payloads riches VaccinationDue / AppointmentReminder, MailTestCommand multi-templates.
  • Vues : suppression des templates legacy (billing, system, layouts bleus) ; correction password-reset vs reset-password.

Corrigé

  • Notification : NewMedicalRecordForVeterinary — URL fiche patient via $pet->id (UUID).

[1.6.11] - 2026-05-20

Ajouté

  • Créneaux RDV (moteur unifié) : AppointmentSlotService — pause déjeuner, congés sans remplaçant, time_slot_settings / calendar_settings (intervalle, marge, horizon), garde is_bookable / is_available, calendrier hebdo avec vétérinaire effectif.
  • Absences : modèle Unavailability, CRUD dashboard vétérinaire, formulaire onglet Disponibilités.
  • Réservation : validation isSlotAvailable dans AppointmentBookingService ; délégation ManagesAppointmentBooking / AppointmentBooking vers le service.
  • UI : paramètres avancés créneaux (onglet Services), liste/planification absences (onglet Disponibilités).
  • Tests : Pest AppointmentSlotServiceTest.

Modifié

  • HeroRegionSearchService : alignement affichage prochain créneau sur le moteur de slots.

[1.6.9] - 2026-05-20

Ajouté

  • Spécialisations i18n (parcours complets) : SpecialityPresenter (contrat JSON/HTML partagé), endpoint GET /api/autocomplete/specialities, alignement QueryParserService, SearchService, SearchResource, Livewire /search, profil vétérinaire (settings), profils publics, home, sitemap.
  • Tests : Pest SpecialityAutocompleteTest, QueryParserSpecialityTest, SearchResourceSpecialityTest, SpecialityPresenterTest.

Modifié

  • AutocompleteController : suggestions spécialité via alias + traductions + display_name localisé.
  • Affichage : pivot specialities localisé en priorité ; champ legacy (specialization / specializations) en secours uniquement.

[1.6.8] - 2026-05-20

Ajouté

  • Spécialisations i18n : tables speciality_translations / speciality_aliases, catalogue SpecialitiesI18nCatalog, commande specialities:import-i18n, SpecialityLocaleService, recherche multilingue (alias DB + Scout search_names), affichage localisé dans search/global et suggestions hero.
  • Tests : Pest SpecialityMultilingualSearchTest, SpecialityLocaleServiceTest ; E2E hero (combobox spécialisation, locale EN, alias cardiology).

Modifié

  • SpecialitySeeder : updateOrCreate par slug + import i18n ; config/search.php speciality_synonyms alignés sur les slugs réels.

[Unreleased]

Modifié

  • Hero search (audit Browser) : search/global enrichit les vétérinaires avec booking_online, next_slot_at et has_drill_down (même logique que la liste région) ; auto-tag ville sur requête entière (liege) ; fallback centers_preview depuis les vétos trouvés ; panneau JS (AbortController, villes role=option, CTA « Voir tous », liste région avec centerCardHtml).

[1.6.7] - 2026-05-20

Ajouté

  • §2.7 Hero search (oneshot) : HeroQueryResolver (auto-tags ville/spé/service, seuil 0,85, residual_q), centres dans search/global avec centers_preview (1–3 vétos), combobox Ville/Spé dans la barre, section #section-centers, cartes enrichies (badge vérifié, centre, pill créneau, CTA Réserver).
  • Tests : Pest HeroQueryResolverTest, HeroRegionSearchTest ; E2E hero étendu (invité sans tel:, resolve, combobox, CTA /search).

Modifié

  • §2.7 : lien « Appeler » masqué pour les invités ; placeholder « Nom, prénom ou centre » ; SearchSuggestionService::getCenterSuggestions.

[1.6.6] - 2026-05-20

Ajouté

  • §2.8 Abonnements Stripe : SubscriptionPlanResolver (plan effectif, héritage centre, limites 0 = illimité), sync webhooks Cashier vers table subscriptions, page pages/veterinary/billing, tests Pest resolver.

Modifié

  • §2.8 : PlanSeeder (Free 1/1/1, payant illimité, trial_days=0, centre 10 vétos), annulation cancelNow, nav Abonnement masquée pour membres centre, garde limites booking Livewire + AppointmentBookingService, commentaires 10 vétos dans cashier.php / .env.example.

[1.6.4] - 2026-05-19

Ajouté

  • §2.5 profils (vague 3) : composants Blade resources/views/components/public/profile/ (hero, address-map, sidebar-contact) ; tests Pest tests/Feature/Public/ProfilePublicTest.php ; commande Artisan vetzy:normalize-encoded-display-names (--dry-run).
  • §2.5 (vagues 1–2) : UserOnboardingComposer (bannière layout utilisateur) ; migration normalize_html_entities_in_display_names ; tests ProfilePublicPagesTest ; E2E opt-in tests/e2e/profile-public.spec.js.

Modifié

  • §2.5 : redirect 301 dashboard/center/staffteam ; navigation centre pointe sur pages.center.team ; refactor de pages/public/search/show.blade.php sans changement de comportement attendu.
  • §2.5 : ProfileAccess (P22-A) sur profil vétérinaire dashboard ; settings centre (visibilité granulaire, horaires accueil/RDV, héritage) ; contact lecture seule si rattaché à un centre ; SEO profils (meta, canonical, JSON-LD), listings /center/{country}/{city}, redirect 301 legacy /search/.../veterinaire/....