From ca6b6d8734f729b3d92d9dadc263729c77eae196 Mon Sep 17 00:00:00 2001 From: sbellavoine Date: Fri, 7 Aug 2026 20:44:04 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=F0=9F=8F=A2=20Add=20free=20cat=20loca?= =?UTF-8?q?tion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/animals/situation/db.server.ts | 7 ++++ apps/admin/src/animals/situation/form.tsx | 41 +++++++++++++++++++ .../_layout.animals.$id._index/route.tsx | 2 + .../situation-card.tsx | 15 +++++++ .../_layout.animals.$id.edit.situation.tsx | 4 ++ .../routes/_layout.animals.new.situation.tsx | 2 + .../migration.sql | 7 ++++ libs/prisma/schema.prisma | 4 ++ 8 files changed, 82 insertions(+) create mode 100644 libs/prisma/migrations/20260807174342_add_free_animal_location/migration.sql diff --git a/apps/admin/src/animals/situation/db.server.ts b/apps/admin/src/animals/situation/db.server.ts index 8e1de01f..fa09f607 100644 --- a/apps/admin/src/animals/situation/db.server.ts +++ b/apps/admin/src/animals/situation/db.server.ts @@ -16,6 +16,8 @@ type SituationKeys = | "comments" | "diagnosis" | "fosterFamilyId" + | "freeCity" + | "freeComment" | "isSterilizationMandatory" | "isSterilized" | "isVaccinationMandatory" @@ -144,6 +146,11 @@ export class AnimalSituationDbDelegate { data.adoptionOption = null } + if (data.status !== Status.FREE) { + data.freeCity = null + data.freeComment = null + } + if (!ACTIVE_ANIMAL_STATUS.includes(data.status)) { data.fosterFamilyId = null } diff --git a/apps/admin/src/animals/situation/form.tsx b/apps/admin/src/animals/situation/form.tsx index 510df44b..8313231c 100644 --- a/apps/admin/src/animals/situation/form.tsx +++ b/apps/admin/src/animals/situation/form.tsx @@ -66,6 +66,8 @@ export const ActionFormData = FormDataDelegate.create( comments: zu.string().trim(), diagnosis: zu.nativeEnum(Diagnosis).default(Diagnosis.UNKNOWN), fosterFamilyId: zu.string().uuid().optional(), + freeCity: zu.string().trim().optional(), + freeComment: zu.string().trim().optional(), isSterilized: zu.enum(["YES", "NO", "NOT_MANDATORY"], { required_error: "Veuillez choisir une option", }), @@ -103,6 +105,8 @@ type DefaultAnimal = null | SerializeFrom< | "adoptionOption" | "comments" | "diagnosis" + | "freeCity" + | "freeComment" | "gender" | "isSterilizationMandatory" | "isSterilized" @@ -198,6 +202,43 @@ export function AnimalSituationForm({ ) : null} + {statusState === Status.FREE && + defaultAnimal?.species === Species.CAT ? ( + <> + + + + + Ville + + + + + + } + /> + + + + + Informations complémentaires + + +