38 lines
1.6 KiB
SQL
38 lines
1.6 KiB
SQL
-- Add status and letter_incoming_id columns to letter_incoming_dispositions_department table
|
|
|
|
-- Add letter_incoming_id column
|
|
ALTER TABLE letter_incoming_dispositions_department
|
|
ADD COLUMN IF NOT EXISTS letter_incoming_id UUID NOT NULL REFERENCES letters_incoming(id);
|
|
|
|
-- Add status column with default value
|
|
ALTER TABLE letter_incoming_dispositions_department
|
|
ADD COLUMN IF NOT EXISTS status VARCHAR(50) NOT NULL DEFAULT 'pending';
|
|
|
|
-- Add read_at column
|
|
ALTER TABLE letter_incoming_dispositions_department
|
|
ADD COLUMN IF NOT EXISTS read_at TIMESTAMP;
|
|
|
|
-- Add completed_at column
|
|
ALTER TABLE letter_incoming_dispositions_department
|
|
ADD COLUMN IF NOT EXISTS completed_at TIMESTAMP;
|
|
|
|
-- Add updated_at column
|
|
ALTER TABLE letter_incoming_dispositions_department
|
|
ADD COLUMN IF NOT EXISTS updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
|
|
|
|
-- Create index for faster queries
|
|
CREATE INDEX IF NOT EXISTS idx_letter_incoming_dispositions_department_status
|
|
ON letter_incoming_dispositions_department(department_id, status);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_letter_incoming_dispositions_department_letter_id
|
|
ON letter_incoming_dispositions_department(letter_incoming_id);
|
|
|
|
-- Update existing records to have status 'dispositioned' (assuming existing records are already dispositioned)
|
|
UPDATE letter_incoming_dispositions_department
|
|
SET status = 'dispositioned'
|
|
WHERE status = 'pending';
|
|
|
|
-- Add constraint to ensure valid status values
|
|
ALTER TABLE letter_incoming_dispositions_department
|
|
ADD CONSTRAINT check_disposition_department_status
|
|
CHECK (status IN ('pending', 'dispositioned', 'read', 'completed')); |