a
    tNg                     @   sP   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 G dd deZ
dS )	    )
BaseObject)IndustryDetails)OperationalDetails)ReceiptCustomer)ReceiptItemc                   @   s   e Zd ZdZdZg ZdZdZdZe	dd Z
e
jdd Z
e	dd Zejdd Ze	d	d
 Zejdd
 Ze	dd Zejdd Ze	dd Zejdd Zdd Ze	dd Zejdd Ze	dd Zejdd ZdS )Receiptu#   
    Данные о чеке.
    Nc                 C   s   | j S )u   
        Возвращает customer модели Receipt.

        :return: customer модели Receipt.
        :rtype: ReceiptDataCustomer
        )_Receipt__customerself r   {/var/www/vosh/data/www/fastworkle.ru/webshop-tgbot-v.1.0/venv/lib/python3.9/site-packages/yookassa/domain/models/receipt.pycustomer   s    zReceipt.customerc                 C   s4   t |trt|| _nt |tr(|| _ntddS )u   
        Устанавливает customer модели Receipt.

        :param value: customer модели Receipt.
        :type value: ReceiptDataCustomer
        zInvalid customer value typeN)
isinstancedictr   r   	TypeErrorr
   valuer   r   r   r   '   s
    

c                 C   s   | j S )u   
        Возвращает items модели Receipt.

        :return: items модели Receipt.
        :rtype: list[ReceiptDataItem]
        )_Receipt__itemsr	   r   r   r   items6   s    zReceipt.itemsc                 C   st   t |trXg }|D ]<}t |tr0|t| qt |trF|| qtdq|| _n|du rhg | _ntddS )u   
        Устанавливает items модели Receipt.

        :param value: items модели Receipt.
        :type value: list[ReceiptDataItem]
        z"Invalid item type in receipt.itemsNz#Invalid items value type in receipt)r   listr   appendr   r   r   r
   r   r   itemr   r   r   r   @   s    



c                 C   s   | j S )   
        Возвращает tax_system_code модели Receipt.

        :return: tax_system_code модели Receipt.
        :rtype: str
        )_Receipt__tax_system_coder	   r   r   r   tax_system_codeX   s    zReceipt.tax_system_codec                 C   s   t |tr|| _ntddS )u   
        Устанавливает tax_system_code модели Receipt.

        :param value: email модели Receipt.
        z"Invalid tax_system_code value typeN)r   intr   r   r   r   r   r   r   b   s    
c                 C   s   dS )u   
        Возвращает email модели Receipt.

        :return: email модели Receipt.
        :rtype: str
        Nr   r	   r   r   r   emailn   s    zReceipt.emailc                 C   s"   | j du rt | _ t|| j _dS )u   
        Устанавливает email модели Receipt.

        :param value: email модели Receipt.
        :type value: str
        N)r   r   strr   r   r   r   r   r   x   s    
c                 C   s   dS )r   Nr   r	   r   r   r   phone   s    zReceipt.phonec                 C   s"   | j du rt | _ t|| j _dS )u   
        Устанавливает tax_system_code модели Receipt.

        :param value: tax_system_code модели Receipt.
        :type value: str
        N)r   r   r   r   r   r   r   r   r      s    
c                 C   s
   t | jS )u   
        Возвращает флаг установки items модели Receipt.

        :return: has items модели Receipt.
        :rtype: bool
        )boolr   r	   r   r   r   	has_items   s    zReceipt.has_itemsc                 C   s   | j S )u   
        Возвращает receipt_industry_details модели Receipt.

        :return: receipt_industry_details модели Receipt.
        :rtype: list[IndustryDetails]
        )"_Receipt__receipt_industry_detailsr	   r   r   r   receipt_industry_details   s    z Receipt.receipt_industry_detailsc                 C   sd   t |trXg }|D ]<}t |tr0|t| qt |trF|| qtdq|| _ntddS )u   
        Устанавливает receipt_industry_details модели Receipt.

        :param value: receipt_industry_details модели Receipt.
        :type value: list[IndustryDetails]
        zRInvalid receipt_industry_details data type in ReceiptData.receipt_industry_detailsz:Invalid receipt_industry_details value type in ReceiptDataN)r   r   r   r   r   r   r"   r   r   r   r   r#      s    



c                 C   s   | j S )u   
        Возвращает receipt_operational_details модели Receipt.

        :return: receipt_operational_details модели Receipt.
        :rtype: OperationalDetails
        )%_Receipt__receipt_operational_detailsr	   r   r   r   receipt_operational_details   s    z#Receipt.receipt_operational_detailsc                 C   s4   t |trt|| _nt |tr(|| _ntddS )u   
        Устанавливает receipt_operational_details модели Receipt.

        :param value: receipt_operational_details модели Receipt.
        :type value: OperationalDetails
        zXInvalid receipt_operational_details data type in ReceiptData.receipt_operational_detailsN)r   r   r   r$   r   r   r   r   r   r%      s
    

)__name__
__module____qualname____doc__r   r   r   r"   r$   propertyr   setterr   r   r   r   r!   r#   r%   r   r   r   r   r   	   sF   
	

	

	

	

	
	
	

	r   N)Zyookassa.domain.commonr   Z4yookassa.domain.models.receipt_data.industry_detailsr   Z7yookassa.domain.models.receipt_data.operational_detailsr   Z4yookassa.domain.models.receipt_data.receipt_customerr   Z0yookassa.domain.models.receipt_data.receipt_itemr   r   r   r   r   r   <module>   s
   