HR-ATS-Portal/backend/migrations/manual/009_interviews_user_job.sql

30 lines
1.0 KiB
SQL

-- 009_interviews_user_job.sql
-- Add optional user_id / job_post_id on interviews so scheduling can target a
-- candidate user without requiring an inbox application row. When inbox_id is
-- supplied, create resolves user_id + job_post_id from that application.
-- Applied at startup by alembic_setup.run_manual_sql().
ALTER TABLE app.interviews
ADD COLUMN IF NOT EXISTS user_id UUID REFERENCES app.users(id);
ALTER TABLE app.interviews
ADD COLUMN IF NOT EXISTS job_post_id UUID REFERENCES app.job_posts(id);
CREATE INDEX IF NOT EXISTS ix_interviews_user_id ON app.interviews (user_id);
-- Backfill from existing inbox links.
UPDATE app.interviews AS i
SET user_id = inbox.user_id
FROM app.inbox AS inbox
WHERE i.inbox_id = inbox.id
AND i.user_id IS NULL
AND inbox.user_id IS NOT NULL;
UPDATE app.interviews AS i
SET job_post_id = m.assigned_job_post_id
FROM app.inbox AS inbox
JOIN app.inbox_messages AS m ON m.id = inbox.message_id
WHERE i.inbox_id = inbox.id
AND i.job_post_id IS NULL
AND m.assigned_job_post_id IS NOT NULL;