46 lines
2.0 KiB
SQL
46 lines
2.0 KiB
SQL
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS parent_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS root_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS follow_up_type VARCHAR(30);
|
|
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS follow_up_note TEXT;
|
|
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS follow_up_created_from_meeting_id BIGINT REFERENCES meeting(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS follow_up_created_from_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL;
|
|
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS follow_up_created_at TIMESTAMPTZ;
|
|
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD COLUMN IF NOT EXISTS follow_up_created_by BIGINT REFERENCES app_user(id) ON DELETE SET NULL;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1
|
|
FROM pg_constraint
|
|
WHERE conname = 'chk_meeting_agenda_item_follow_up_type'
|
|
AND conrelid = 'meeting_agenda_item'::regclass
|
|
) THEN
|
|
ALTER TABLE meeting_agenda_item
|
|
ADD CONSTRAINT chk_meeting_agenda_item_follow_up_type
|
|
CHECK (follow_up_type IS NULL OR follow_up_type IN ('rueckfrage', 'klaerung', 'bemerkung'));
|
|
END IF;
|
|
END $$;
|
|
|
|
ALTER TABLE meeting_agenda_item_return_log
|
|
ADD COLUMN IF NOT EXISTS follow_up_agenda_item_id BIGINT REFERENCES meeting_agenda_item(id) ON DELETE SET NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_parent ON meeting_agenda_item(parent_agenda_item_id);
|
|
CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_root ON meeting_agenda_item(root_agenda_item_id);
|
|
CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_follow_up_source ON meeting_agenda_item(follow_up_created_from_meeting_id, follow_up_created_from_agenda_item_id);
|
|
CREATE INDEX IF NOT EXISTS idx_meeting_agenda_item_return_log_follow_up ON meeting_agenda_item_return_log(follow_up_agenda_item_id);
|