LinkDesk/.kiro/specs/shot-project-id-enhancement/tasks.md

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.