import uuid from sqlalchemy import String, Text, ForeignKey from sqlalchemy.orm import Mapped, mapped_column from sqlalchemy.dialects.postgresql import UUID, JSONB from app.database import Base class KeyVisit(Base): __tablename__ = "key_visits" id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) customer_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("customers.id"), index=True) urgency_level: Mapped[str] = mapped_column(String(10), default="一般") # 重要/一般/紧急 description: Mapped[str] = mapped_column(Text, default="") progress_status: Mapped[str] = mapped_column(String(20), default="未开始") planned_date: Mapped[str] = mapped_column(String(50), default="") planned_visitor: Mapped[str] = mapped_column(String(100), default="") visit_target: Mapped[str] = mapped_column(String(100), default="") manager_id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), ForeignKey("users.id"), index=True) edit_log: Mapped[list] = mapped_column(JSONB, default=list)