from utils.db_connect import BaseModelForTable
from sqlalchemy import Column, String, Text,Enum as SQLEnum,UUID,ForeignKey
from enum import Enum
from sqlalchemy.orm import relationship


class RegistrationStatus(str, Enum):
    PENDING = "PENDING"
    IN_PROGRESS = "IN_PROGRESS"
    COMPLETED = "COMPLETED"
    REJECTED = "REJECTED"

class OrganizationRegistrationRequest(BaseModelForTable):
    __tablename__='organization_registration_requests'

    company_name=Column(String, nullable=False)
    contact_name=Column(String, nullable=False)
    contact_email=Column(String, nullable=False, unique=True)
    contact_phone=Column(String)
    message=Column(Text)
    status = Column(
        SQLEnum(RegistrationStatus),
        default=RegistrationStatus.PENDING,
        nullable=False
    )
    reviewed_by = Column(
        UUID(as_uuid=True),
        ForeignKey("users.id", ondelete="SET NULL"),
        nullable=True
    )

    request_reviewer = relationship(
        "User",
        back_populates="reviewed_requests",
        foreign_keys=[reviewed_by]
    )

