"""Project Model""" from sqlalchemy import Column, String, Boolean, DateTime, ForeignKey, Text from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from sqlalchemy.sql import func import uuid from app.database import Base class Project(Base): __tablename__ = "projects" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) user_id = Column(UUID(as_uuid=True), ForeignKey("users.id", ondelete="SET NULL")) name = Column(String(255), nullable=False) description = Column(Text) is_archived = Column(Boolean, default=False) created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now()) # Relationships user = relationship("User", back_populates="projects") assets = relationship("Asset", back_populates="project") jobs = relationship("Job", back_populates="project")