174 lines
4.7 KiB
Markdown
174 lines
4.7 KiB
Markdown
# Implementation Plan
|
|
|
|
- [x] 1. Create database migration script
|
|
|
|
|
|
|
|
|
|
|
|
- Create migration script to add project_id column to shots table
|
|
- Add foreign key constraint to projects table
|
|
- Create indexes for performance optimization
|
|
- Populate project_id for existing shots based on episode relationships
|
|
- Add unique constraint for project-scoped shot names
|
|
- _Requirements: 2.1, 2.2, 2.3, 2.4, 2.5_
|
|
|
|
- [ ]* 1.1 Write property test for migration data preservation
|
|
- **Property 4: Migration Data Preservation**
|
|
- **Validates: Requirements 2.4, 2.5**
|
|
|
|
- [x] 2. Update Shot model and relationships
|
|
|
|
|
|
|
|
|
|
|
|
- Add project_id column to Shot SQLAlchemy model
|
|
- Add project relationship to Shot model
|
|
- Update Project model to include shots back-reference
|
|
- Add project-scoped uniqueness constraint
|
|
- _Requirements: 1.1, 1.2, 2.1, 2.2_
|
|
|
|
- [ ]* 2.1 Write property test for project-episode consistency
|
|
- **Property 1: Project-Episode Consistency**
|
|
- **Validates: Requirements 1.2, 3.3, 4.2**
|
|
|
|
- [ ]* 2.2 Write property test for project-scoped name uniqueness
|
|
- **Property 2: Project-Scoped Name Uniqueness**
|
|
- **Validates: Requirements 1.1, 1.4**
|
|
|
|
- [x] 3. Update Pydantic schemas
|
|
|
|
|
|
|
|
|
|
|
|
- Add project_id field to ShotBase schema
|
|
- Update ShotResponse to include project_id
|
|
- Add optional project_name computed field
|
|
- Maintain backward compatibility for existing schemas
|
|
- _Requirements: 1.3, 3.1, 4.1_
|
|
|
|
- [ ]* 3.1 Write property test for API response completeness
|
|
- **Property 3: API Response Completeness**
|
|
- **Validates: Requirements 1.3, 3.1, 4.1**
|
|
|
|
- [x] 4. Update shot router endpoints
|
|
|
|
|
|
|
|
|
|
|
|
- Modify shot creation to auto-populate project_id from episode
|
|
- Add project_id validation in shot creation and updates
|
|
- Update shot querying to include project_id filtering
|
|
- Ensure project-scoped name uniqueness validation
|
|
- _Requirements: 1.1, 1.2, 1.4, 3.2, 3.4_
|
|
|
|
- [ ]* 4.1 Write property test for project filtering accuracy
|
|
- **Property 5: Project Filtering Accuracy**
|
|
- **Validates: Requirements 3.4**
|
|
|
|
- [x] 5. Update bulk shot creation
|
|
|
|
|
|
|
|
|
|
|
|
- Modify bulk shot creation to validate project consistency
|
|
- Ensure all shots in bulk operation belong to same project as episode
|
|
- Update bulk validation logic for project-scoped uniqueness
|
|
- _Requirements: 3.5_
|
|
|
|
- [ ]* 5.1 Write property test for bulk operation consistency
|
|
- **Property 6: Bulk Operation Consistency**
|
|
- **Validates: Requirements 3.5**
|
|
|
|
- [x] 6. Update soft deletion service
|
|
|
|
|
|
|
|
|
|
|
|
- Ensure project_id is preserved during soft deletion
|
|
- Update recovery operations to maintain project relationships
|
|
- Verify project_id consistency in deletion info endpoints
|
|
- _Requirements: 4.5_
|
|
|
|
- [ ]* 6.1 Write property test for soft deletion project preservation
|
|
- **Property 7: Soft Deletion Project Preservation**
|
|
- **Validates: Requirements 4.5**
|
|
|
|
- [x] 7. Update frontend TypeScript interfaces
|
|
|
|
|
|
|
|
|
|
|
|
- Add project_id to Shot interface
|
|
- Update ShotCreate and ShotUpdate interfaces
|
|
- Add optional project_name field for display
|
|
- Maintain backward compatibility
|
|
- _Requirements: 3.1, 4.1_
|
|
|
|
- [x] 8. Update frontend shot service
|
|
|
|
|
|
|
|
|
|
- Modify shot service to handle project_id in responses
|
|
- Add project filtering support to shot queries
|
|
- Update error handling for project-related validation errors
|
|
- _Requirements: 3.1, 3.4, 4.1_
|
|
|
|
- [x] 9. Update shot form components
|
|
|
|
|
|
|
|
|
|
|
|
- Display project context in shot forms where appropriate
|
|
- Handle project-scoped validation errors
|
|
- Maintain existing form functionality
|
|
- _Requirements: 4.1, 4.3_
|
|
|
|
- [x] 10. Checkpoint - Ensure all tests pass
|
|
|
|
|
|
|
|
|
|
|
|
- Ensure all tests pass, ask the user if questions arise.
|
|
|
|
- [ ]* 10.1 Write property test for permission system continuity
|
|
- **Property 8: Permission System Continuity**
|
|
- **Validates: Requirements 4.4**
|
|
|
|
- [-] 11. Run database migration
|
|
|
|
|
|
|
|
- Execute migration script on development database
|
|
- Verify data integrity after migration
|
|
- Test all shot operations with new schema
|
|
- _Requirements: 2.1, 2.2, 2.3, 2.4, 2.5_
|
|
|
|
- [ ]* 11.1 Write unit tests for migration script
|
|
- Test migration with various data scenarios
|
|
- Test constraint creation and validation
|
|
- Test rollback procedures
|
|
|
|
- [ ] 12. Integration testing
|
|
- Test complete shot workflows with project_id
|
|
- Verify API backward compatibility
|
|
- Test frontend integration with new schema
|
|
- Test performance with project-scoped queries
|
|
- _Requirements: 4.1, 4.2, 4.4_
|
|
|
|
- [ ]* 12.1 Write integration tests for shot workflows
|
|
- Test shot creation, update, and deletion workflows
|
|
- Test bulk operations with project validation
|
|
- Test API filtering and querying
|
|
|
|
- [ ] 13. Final checkpoint - Ensure all tests pass
|
|
- Ensure all tests pass, ask the user if questions arise. |