Files

63 lines
2.0 KiB
Markdown

# Treatment Milestone Tracker Implementation
## Database Schema Changes
Add to prisma/schema.prisma:
```prisma
model TreatmentPlan {
id String @id @default(cuid())
workspaceId String @unique
title String // e.g., "Grace's Chemotherapy Plan"
totalCycles Int
currentCycle Int @default(0)
startDate DateTime?
estimatedEnd DateTime?
status String @default("ACTIVE") // ACTIVE, PAUSED, COMPLETED
cycleType String @default("WEEKLY") // WEEKLY, BIWEEKLY, MONTHLY, CUSTOM
cycleDays Int @default(7) // Days between cycles
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
createdById String
workspace Workspace @relation(fields: [workspaceId], references: [id], onDelete: Cascade)
createdBy User @relation(fields: [createdById], references: [id])
milestones TreatmentMilestone[]
}
model TreatmentMilestone {
id String @id @default(cuid())
planId String
cycleNumber Int // Which cycle this milestone represents
date DateTime // When it happened (or estimated)
status String @default("UPCOMING") // UPCOMING, COMPLETED, SKIPPED
notes String? // Personal reflection
sideEffects String? // What was experienced
celebratedAt DateTime? // When we showed the celebration
createdAt DateTime @default(now())
plan TreatmentPlan @relation(fields: [planId], references: [id], onDelete: Cascade)
}
```
## API Routes
### GET /api/workspaces/[id]/treatment-plan
Get the treatment plan for a workspace
### POST /api/workspaces/[id]/treatment-plan
Create or update treatment plan
### POST /api/workspaces/[id]/treatment-plan/milestones/[cycleNumber]/complete
Mark a milestone as completed
### GET /api/workspaces/[id]/treatment-plan/progress
Get progress stats
## Components
- TreatmentProgress - Main progress widget
- MilestoneCelebration - Celebration modal
- TreatmentCalendar - Timeline view
- CycleDetailView - Individual cycle details