# This file was generated by liblab | https://liblab.com/

from enum import Enum


class ContractStatusEnum(Enum):
    """An enumeration representing different categories.

    :cvar NEW: "new"
    :vartype NEW: str
    :cvar UNDER_REVIEW: "under_review"
    :vartype UNDER_REVIEW: str
    :cvar WAITING_FOR_EMPLOYEE_CONTRACT: "waiting_for_employee_contract"
    :vartype WAITING_FOR_EMPLOYEE_CONTRACT: str
    :cvar WAITING_FOR_CLIENT_SIGN: "waiting_for_client_sign"
    :vartype WAITING_FOR_CLIENT_SIGN: str
    :cvar PROCESSING_PAYMENT: "processing_payment"
    :vartype PROCESSING_PAYMENT: str
    :cvar WAITING_FOR_CONTRACTOR_SIGN: "waiting_for_contractor_sign"
    :vartype WAITING_FOR_CONTRACTOR_SIGN: str
    :cvar WAITING_FOR_EOR_SIGN: "waiting_for_eor_sign"
    :vartype WAITING_FOR_EOR_SIGN: str
    :cvar WAITING_FOR_EMPLOYEE_SIGN: "waiting_for_employee_sign"
    :vartype WAITING_FOR_EMPLOYEE_SIGN: str
    :cvar AWAITING_DEPOSIT_PAYMENT: "awaiting_deposit_payment"
    :vartype AWAITING_DEPOSIT_PAYMENT: str
    :cvar IN_PROGRESS: "in_progress"
    :vartype IN_PROGRESS: str
    :cvar COMPLETED: "completed"
    :vartype COMPLETED: str
    :cvar CANCELLED: "cancelled"
    :vartype CANCELLED: str
    :cvar USER_CANCELLED: "user_cancelled"
    :vartype USER_CANCELLED: str
    :cvar REJECTED: "rejected"
    :vartype REJECTED: str
    :cvar WAITING_FOR_CLIENT_PAYMENT: "waiting_for_client_payment"
    :vartype WAITING_FOR_CLIENT_PAYMENT: str
    :cvar ONBOARDING: "onboarding"
    :vartype ONBOARDING: str
    """

    NEW = "new"
    UNDER_REVIEW = "under_review"
    WAITING_FOR_EMPLOYEE_CONTRACT = "waiting_for_employee_contract"
    WAITING_FOR_CLIENT_SIGN = "waiting_for_client_sign"
    PROCESSING_PAYMENT = "processing_payment"
    WAITING_FOR_CONTRACTOR_SIGN = "waiting_for_contractor_sign"
    WAITING_FOR_EOR_SIGN = "waiting_for_eor_sign"
    WAITING_FOR_EMPLOYEE_SIGN = "waiting_for_employee_sign"
    AWAITING_DEPOSIT_PAYMENT = "awaiting_deposit_payment"
    IN_PROGRESS = "in_progress"
    COMPLETED = "completed"
    CANCELLED = "cancelled"
    USER_CANCELLED = "user_cancelled"
    REJECTED = "rejected"
    WAITING_FOR_CLIENT_PAYMENT = "waiting_for_client_payment"
    ONBOARDING = "onboarding"

    def list():
        """Lists all category values.

        :return: A list of all category values.
        :rtype: list
        """
        return list(map(lambda x: x.value, ContractStatusEnum._member_map_.values()))
