mirror of
https://github.com/complexcaresolutions/dak.c2s.git
synced 2026-03-17 20:43:41 +00:00
72 lines
2.3 KiB
Python
72 lines
2.3 KiB
Python
"""add disclosure_requests table
|
|
|
|
Revision ID: 005_disclosure
|
|
Revises: 5717043d0f9d
|
|
Create Date: 2026-02-26 14:00:00.000000
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = "005_disclosure"
|
|
down_revision: Union[str, None] = "5717043d0f9d"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.execute(
|
|
"""
|
|
CREATE TABLE disclosure_requests (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
case_id INT NOT NULL,
|
|
requester_id INT NOT NULL,
|
|
reason VARCHAR(500) NOT NULL,
|
|
status VARCHAR(20) NOT NULL DEFAULT 'pending',
|
|
reviewed_by INT NULL,
|
|
reviewed_at DATETIME NULL,
|
|
expires_at DATETIME NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_dr_case FOREIGN KEY (case_id) REFERENCES cases(id),
|
|
CONSTRAINT fk_dr_requester FOREIGN KEY (requester_id) REFERENCES users(id),
|
|
CONSTRAINT fk_dr_reviewer FOREIGN KEY (reviewed_by) REFERENCES users(id),
|
|
CONSTRAINT chk_dr_status CHECK (status IN ('pending', 'approved', 'rejected')),
|
|
INDEX idx_dr_case_status (case_id, status),
|
|
INDEX idx_dr_requester (requester_id),
|
|
INDEX idx_dr_status (status)
|
|
)
|
|
"""
|
|
)
|
|
|
|
# Update Notification CHECK constraint to include disclosure types
|
|
op.execute("ALTER TABLE notifications DROP CONSTRAINT chk_notif")
|
|
op.execute(
|
|
"""
|
|
ALTER TABLE notifications ADD CONSTRAINT chk_notif CHECK (
|
|
notification_type IN (
|
|
'new_cases_uploaded','icd_entered','icd_uploaded',
|
|
'report_ready','coding_completed','disclosure_request','disclosure_resolved'
|
|
)
|
|
)
|
|
"""
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
# Restore original Notification CHECK constraint
|
|
op.execute("ALTER TABLE notifications DROP CONSTRAINT chk_notif")
|
|
op.execute(
|
|
"""
|
|
ALTER TABLE notifications ADD CONSTRAINT chk_notif CHECK (
|
|
notification_type IN (
|
|
'new_cases_uploaded','icd_entered','icd_uploaded',
|
|
'report_ready','coding_completed'
|
|
)
|
|
)
|
|
"""
|
|
)
|
|
|
|
op.execute("DROP TABLE disclosure_requests")
|