from sqlalchemy import Column, String, Boolean, Integer, DateTime, Text, ForeignKey, Enum as SAEnum from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from datetime import datetime from app.database import Base import uuid import enum class CertType(str, enum.Enum): individual = "individual" enterprise = "enterprise" class CertStatus(str, enum.Enum): pending = "pending" approved = "approved" rejected = "rejected" class Certification(Base): __tablename__ = "certifications" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False, index=True) cert_type = Column(SAEnum(CertType), nullable=False) personal_name = Column(String(100)) personal_id = Column(String(30)) company_name = Column(String(255)) tax_id = Column(String(30)) business_license_url = Column(String(500)) status = Column(SAEnum(CertStatus), default=CertStatus.pending) reject_reason = Column(Text) created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) user = relationship("User")