feat(GRO-1179): add PetProfileCard component with medical alert severity badges
- Create PetProfileCard fetching from GET /api/pets/:id/profile-summary - Displays: pet photo/name/breed/age/weight, coat type badge, temperament score (1-5 dots) + flag badges, medical alerts (severity-colored), preferred cuts, recent visits, next appointment - Loading skeleton and error/empty states - Integrate into Appointments booking form after pet selection - Integrate into ClientDetailPage as expandable card per pet - Export PetProfileSummary + NextAppointment types in @groombook/types - Add PetProfileCard tests covering full data, empty data, loading, error Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
@@ -226,3 +226,24 @@ export interface MedicalAlert {
|
||||
}
|
||||
|
||||
export type CoatType = "smooth" | "double" | "curly" | "wire" | "long" | "hairless";
|
||||
|
||||
export interface NextAppointment {
|
||||
id: string;
|
||||
startTime: string;
|
||||
serviceName: string;
|
||||
}
|
||||
|
||||
export interface PetProfileSummary {
|
||||
id: string;
|
||||
name: string;
|
||||
breed: string | null;
|
||||
dateOfBirth: string | null;
|
||||
weightKg: number | null;
|
||||
coatType: CoatType | null;
|
||||
temperamentScore: number | null;
|
||||
temperamentFlags: string[];
|
||||
medicalAlerts: MedicalAlert[];
|
||||
preferredCuts: string[];
|
||||
recentVisits: GroomingVisitLog[];
|
||||
nextAppointment: NextAppointment | null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user