from sqlalchemy.orm import DeclarativeBase
from sqlalchemy import Column, Integer, DateTime
from datetime import datetime, timezone


class Base(DeclarativeBase):
    pass


class TimestampMixin:
    """Tüm tablolara created_at ve updated_at ekler."""
    created_at = Column(DateTime, default=lambda: datetime.now(timezone.utc), nullable=False)
    updated_at = Column(
        DateTime,
        default=lambda: datetime.now(timezone.utc),
        onupdate=lambda: datetime.now(timezone.utc),
        nullable=False,
    )


# Tüm modelleri buraya import et — Alembic migration için zorunlu
from app.models.user import User  # noqa
from app.models.task import Task  # noqa
from app.models.project import Project  # noqa
from app.models.customer import Customer  # noqa
from app.models.transaction import Transaction  # noqa
from app.models.note import Note  # noqa
from app.models.calendar_event import CalendarEvent  # noqa
from app.models.goal import Goal  # noqa
