from rest_framework.exceptions import APIException
from rest_framework import status


class QuotaWeightException(APIException):
    """ if quota distributions weight is more """

    status_code = status.HTTP_400_BAD_REQUEST
    default_detail = "مقدار وارد شده باعث می‌شود مجموع سهمیه‌ها از مقدار کل سهمیه بیشتر شود."  # noqa
    default_code = 'error'


class QuotaClosedException(APIException):
    """ if quota is closed, operations can not be done """

    status_code = status.HTTP_400_BAD_REQUEST
    default_detail = "این سهمیه بسته شده است و قابل توزیع نیست"  # noqa
    default_code = 'error'


class QuotaExpiredTimeException(APIException):
    """if quota allowed time for distribute, sale, etc. is expired"""

    status_code = status.HTTP_400_BAD_REQUEST
    default_detail = "زمان مجوز این سهمیه به پایان رسیده است"  # noqa
    default_code = 'error'


class QuotaLimitByOrganizationException(APIException):
    """
    if limitation of quota by organization is true,
    distribution should be done in organizations limits
    """

    status_code = status.HTTP_400_BAD_REQUEST
    default_detail = "سازمان انتخاب شده در بین سامان های انتخاب شده برای توزیع سهمیه وجود ندارد"  # noqa
    default_code = 'error'
