feat: enhance asset import functionality and unit tracking
- Added WHISPER_URL environment variable to docker-compose for audio transcription service. - Updated Nginx configuration to increase timeout settings for API requests. - Enhanced asset ingestion process to extract unit numbers from ZIP entry paths, supporting various naming conventions. - Implemented logic to split intensive courses into two regular courses during asset import. - Added new fields to the Asset and QuestionBank models to track unit numbers and source asset links. - Introduced backward-compatible fallbacks for fetching study plans and courses from legacy MySQL database. - Improved error handling and progress tracking during ZIP file uploads in the frontend. - Created a new SQL migration to add unit_number and source_asset_id columns to the assets and question_bank tables, along with necessary indexes for performance.
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
-- Add unit_number to assets: tracks which syllabus unit a file belongs to within a ZIP
|
||||
ALTER TABLE assets ADD COLUMN IF NOT EXISTS unit_number INTEGER;
|
||||
|
||||
-- Link question_bank RAG chunks to their source audio/video asset
|
||||
-- This allows test creation (AI + manual) to attach the audio to exercises
|
||||
ALTER TABLE question_bank ADD COLUMN IF NOT EXISTS source_asset_id UUID REFERENCES assets(id) ON DELETE SET NULL;
|
||||
ALTER TABLE question_bank ADD COLUMN IF NOT EXISTS unit_number INTEGER;
|
||||
|
||||
-- Index for fast lookup by unit
|
||||
CREATE INDEX IF NOT EXISTS idx_assets_unit_number ON assets(organization_id, sam_plan_id, unit_number);
|
||||
CREATE INDEX IF NOT EXISTS idx_qb_source_asset ON question_bank(source_asset_id) WHERE source_asset_id IS NOT NULL;
|
||||
CREATE INDEX IF NOT EXISTS idx_qb_unit_number ON question_bank(organization_id, unit_number) WHERE unit_number IS NOT NULL;
|
||||
Reference in New Issue
Block a user