You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.2 KiB
Python
59 lines
2.2 KiB
Python
"""phase-18: 고급 기능용 컬럼(메일 cc/thread, 발송 cc/bcc/첨부, 일정 반복/알림/참석자, 댓글 수정)
|
|
|
|
Revision ID: p18f6a7b8c9d0
|
|
Revises: p17e5f6a7b8c9
|
|
Create Date: 2026-06-16 10:00:00.000000
|
|
|
|
"""
|
|
|
|
from typing import Sequence, Union
|
|
|
|
import sqlalchemy as sa
|
|
import sqlmodel
|
|
from alembic import op
|
|
|
|
revision: str = "p18f6a7b8c9d0"
|
|
down_revision: Union[str, Sequence[str], None] = "p17e5f6a7b8c9"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
S = sqlmodel.sql.sqltypes.AutoString
|
|
|
|
|
|
def upgrade() -> None:
|
|
# 메일: 받은 메일 참조 + 대화(스레드) 묶기
|
|
op.add_column("email", sa.Column("cc", S(), nullable=False, server_default=""))
|
|
op.add_column("email", sa.Column("thread_id", S(), nullable=False, server_default=""))
|
|
# 발송 메일: cc/bcc/첨부
|
|
op.add_column("outbound_mail", sa.Column("cc", S(), nullable=False, server_default=""))
|
|
op.add_column("outbound_mail", sa.Column("bcc", S(), nullable=False, server_default=""))
|
|
op.add_column(
|
|
"outbound_mail", sa.Column("attachments", sa.JSON(), nullable=False, server_default="[]")
|
|
)
|
|
# 일정: 반복/알림/참석자/내 RSVP
|
|
op.add_column("cal_event", sa.Column("rrule", S(), nullable=False, server_default=""))
|
|
op.add_column(
|
|
"cal_event", sa.Column("reminders", sa.JSON(), nullable=False, server_default="[]")
|
|
)
|
|
op.add_column(
|
|
"cal_event", sa.Column("attendees", sa.JSON(), nullable=False, server_default="[]")
|
|
)
|
|
op.add_column(
|
|
"cal_event", sa.Column("response_status", S(), nullable=False, server_default="")
|
|
)
|
|
# 작업 댓글: 수정 시각
|
|
op.add_column("task_comment", sa.Column("edited_at", sa.DateTime(), nullable=True))
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_column("task_comment", "edited_at")
|
|
op.drop_column("cal_event", "response_status")
|
|
op.drop_column("cal_event", "attendees")
|
|
op.drop_column("cal_event", "reminders")
|
|
op.drop_column("cal_event", "rrule")
|
|
op.drop_column("outbound_mail", "attachments")
|
|
op.drop_column("outbound_mail", "bcc")
|
|
op.drop_column("outbound_mail", "cc")
|
|
op.drop_column("email", "thread_id")
|
|
op.drop_column("email", "cc")
|