from sqlalchemy import String, Boolean
from databases.sql_models.core_mixin import CrudCollection
from sqlalchemy.orm import mapped_column, Mapped


class EndpointRestriction(CrudCollection):
    """
    Initialize Endpoint Restriction with default values
    """

    __tablename__ = "endpoint_restriction"
    __exclude__fields__ = []

    endpoint_function: Mapped[str] = mapped_column(
        String, server_default="", comment="Function name of the API endpoint"
    )
    endpoint_name: Mapped[str] = mapped_column(
        String, server_default="", comment="Name of the API endpoint"
    )
    endpoint_method: Mapped[str] = mapped_column(
        String, server_default="", comment="HTTP method used by the endpoint"
    )
    endpoint_desc: Mapped[str] = mapped_column(
        String, server_default="", comment="Description of the endpoint"
    )
    endpoint_code: Mapped[str] = mapped_column(
        String, server_default="", unique=True, comment="Unique code for the endpoint"
    )
