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 ? (
+ <>
+