4.7 KiB
Implementation Plan
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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.