from __future__ import annotations import uuid from datetime import datetime from sqlalchemy import DateTime, ForeignKey, String from sqlalchemy.orm import Mapped, mapped_column, relationship from app.db.base_class import Base class EmployeeChangeLog(Base): __tablename__ = "employee_change_logs" id: Mapped[str] = mapped_column(String(36), primary_key=True, default=lambda: str(uuid.uuid4())) employee_id: Mapped[str] = mapped_column(ForeignKey("employees.id"), index=True) action: Mapped[str] = mapped_column(String(255)) owner: Mapped[str] = mapped_column(String(100)) occurred_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), index=True) employee = relationship("Employee", back_populates="change_logs")