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 viax-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 CTAhome-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
#veterinairesavecPublicProfileAvatar, CTA « Prêt à commencer » avec photo de fond. - Profils publics :
hero-backgroundavecbg.pngpar défaut (variantprofile).
[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 fallbackdefault-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 ENpet_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 ;lastmodbasé sur les modèles ;robots.txtpointe vers/sitemap.xmllive.- 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-backgroundet assets footer viaFooterPresenter. 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_gardedansconfig/database.php; variablesGARDE_DB_*etVETZY_GARDE_DB_CONNECTIONdans.env.example. -
Tests Pest :
GardeEmergencyFlagSyncServiceTest,SyncGardeEmergencyFlagsCommandTest.
Modifié (scope: app + garde — sync garde §2.12)
GardeScrapedImportService(garde) : propagationis_emergency/is_24hdepuis 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-centerdanspublic/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 tablepet_alerts(UUID). DiscordWebhookNotifier+config/vetzy-notifications.php(webhooks.envuniquement).- Docs
app/docs/locale-routing.md,app/docs/public-directory-cities.md. - Phase D :
config/vetzy-public-directory.php,PublicDirectoryConfig, commandevetzy: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 ; e2epublic-pages-phase-f.mjs. - Phase G (FAQ + inscription) :
FaqStaticFallback, audiences invitéall+generaluniquement, suppression fallback EN du contrôleur ; honeypot inscription (Fortify + magic link) ; e2epublic-pages-phase-g.mjs. - Phase H (docs + annuaire) :
lang/{fr,en}/docs.php, composantx-public.docs-hero, hub/docsi18n (quick links → support) ; commandevetzy:garde-directory-statusenrichie (--json,--strict, résumé, alias slugs CH) ; e2epublic-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/SetLocaleFromUsercorrigés pour locales associatives. - Erreurs : layout user si connecté sur toutes les URLs.
- Favicon :
favicon-16x16.png/favicon-32x32.pngdansmeta.blade.phpetsite.webmanifest. - Pages
/supportet/status: textes via__(); email support selon TLD (config/vetzy.php). - Hub
/docset sous-pages : hero + fil d’Ariane i18n ; corps principaux guides en FR (veterinarian-guideencore 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 (partialsdocs/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; docpublic-directory-cities.md+.env.example.
[1.6.13] - 2026-05-21
Ajouté (scope: app — seeders Europe réels)
- Arborescence seeders Reference / Demo / RealData ; orchestrateur
EuropeVeterinaryDirectorySeederet seeders par pays (BE officiel + scraped, FR/CH/LU scraped). - JSON
database/data/real-data/europe/scraped-veterinarians-{be,fr,ch,lu}.json; scripttools/dev/generate-europe-scraped-json.php. VeterinaryScrapedImportService:importFromArray, fusion centres (merge_centers), compteurs détaillés.- Doc
app/docs/seeders.md; tests PestVeterinaryScrapedImportServiceTest.
Modifié (scope: app — seeders)
DemoSeeder: comptes démo uniquement (retraitDemoEuropeVeterinariansSeeder, liste officielle et import massif).DatabaseSeeder: enchaîneReference→RealData→DemosiSEED_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
AuthenticatedSessionControllernon routé et vue dupliquéeauth/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/nightwatchenrequire-dev.
Ajouté (scope: app — pages publiques §2.12)
- Hub
/outils(redirect/services→/outils,/tools→/outils) avec catalogueplatform_toolset 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(sousReference/). - Honeypot Spatie sur formulaires contact, support et FAQ helpful.
- Pages d’erreur unifiées (i18n), légales HTML (
terms/privacysans 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_bookableest 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 richesVaccinationDue/AppointmentReminder,MailTestCommandmulti-templates. - Vues : suppression des templates legacy (billing, system, layouts bleus) ; correction
password-resetvsreset-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), gardeis_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
isSlotAvailabledansAppointmentBookingService; délégationManagesAppointmentBooking/AppointmentBookingvers 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é), endpointGET /api/autocomplete/specialities, alignementQueryParserService,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_namelocalisé.- Affichage : pivot
specialitieslocalisé en priorité ; champ legacy (specialization/specializations) en secours uniquement.
[1.6.8] - 2026-05-20
Ajouté
- Spécialisations i18n : tables
speciality_translations/speciality_aliases, catalogueSpecialitiesI18nCatalog, commandespecialities:import-i18n,SpecialityLocaleService, recherche multilingue (alias DB + Scoutsearch_names), affichage localisé danssearch/globalet suggestions hero. - Tests : Pest
SpecialityMultilingualSearchTest,SpecialityLocaleServiceTest; E2E hero (combobox spécialisation, locale EN, aliascardiology).
Modifié
SpecialitySeeder:updateOrCreatepar slug + import i18n ;config/search.phpspeciality_synonymsalignés sur les slugs réels.
[Unreleased]
Modifié
- Hero search (audit Browser) :
search/globalenrichit les vétérinaires avecbooking_online,next_slot_atethas_drill_down(même logique que la liste région) ; auto-tag ville sur requête entière (liege) ; fallbackcenters_previewdepuis les vétos trouvés ; panneau JS (AbortController, villesrole=option, CTA « Voir tous », liste région aveccenterCardHtml).
[1.6.7] - 2026-05-20
Ajouté
- §2.7 Hero search (oneshot) :
HeroQueryResolver(auto-tags ville/spé/service, seuil 0,85,residual_q), centres danssearch/globalaveccenters_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é sanstel:,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 tablesubscriptions, pagepages/veterinary/billing, tests Pest resolver.
Modifié
- §2.8 :
PlanSeeder(Free 1/1/1, payant illimité,trial_days=0, centre 10 vétos), annulationcancelNow, nav Abonnement masquée pour membres centre, garde limites booking Livewire +AppointmentBookingService, commentaires 10 vétos danscashier.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 Pesttests/Feature/Public/ProfilePublicTest.php; commande Artisanvetzy:normalize-encoded-display-names(--dry-run). - §2.5 (vagues 1–2) :
UserOnboardingComposer(bannière layout utilisateur) ; migrationnormalize_html_entities_in_display_names; testsProfilePublicPagesTest; E2E opt-intests/e2e/profile-public.spec.js.
Modifié
- §2.5 : redirect 301
dashboard/center/staff→team; navigation centre pointe surpages.center.team; refactor depages/public/search/show.blade.phpsans 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/....