30 lines
1.0 KiB
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;
|