from sqlalchemy import create_engine, Column,DateTime
from sqlalchemy.orm import declarative_base, sessionmaker
import uuid
from sqlalchemy.dialects.postgresql import UUID
from datetime import datetime, timezone

DATABASE_URL="postgresql://postgres.ygfarmniaunzwvdxhtfb:lEXlTBvKlMKOT0Sd@aws-1-us-east-1.pooler.supabase.com:6543/postgres?sslmode=require"

engine = create_engine(DATABASE_URL)

SessionLocal = sessionmaker(
    autocommit=False,
    autoflush=False,
    bind=engine
)

Base = declarative_base()

class BaseModelForTable(Base):
    __abstract__ = True

    id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, index=True)
    created_at = Column(DateTime, default=lambda: datetime.now(timezone.utc))
    updated_at = Column(DateTime, default=lambda: datetime.now(timezone.utc),
                        onupdate=lambda: datetime.now(timezone.utc))
