
    F%ii	                     ^    d dl mZmZ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	e      Zy
)    )AnyDictOptional   )Resource   )URL)
DeviceMode)BadRequestErrorc            	            e Zd Zd	 fd	Zdee   dee   fdZd	deeef   dee   deeef   fdZ	d	dedee   deeef   fdZ
 xZS )
DeviceActivityc                 x    t         t        |   |       t        j                  t        j
                  z   | _        y N)superr   __init__r	   V1DEVICE_ACTIVITY_URLbase_url)selfclient	__class__s     |/var/www/html/navyabakers_fullstack/navyabakers_prod/venv/lib/python3.12/site-packages/razorpay/resources/device_activity.pyr   zDeviceActivity.__init__
   s(    nd,V4!8!88    device_modereturnc                 f    |/|t         j                  t         j                  fvrt        d      |S y)aE  
        Validate device communication mode
        
        Args:
            device_mode: Device communication mode ("wired" or "wireless")
        
        Returns:
            Validated device_mode or None if device_mode is None
            
        Raises:
            BadRequestError: If device_mode is invalid
        Nz?Invalid device mode. Allowed values are 'wired' and 'wireless'.)r
   WIREDWIRELESSr   )r   r   s     r   _validate_device_modez$DeviceActivity._validate_device_mode   s8     ":#3#3Z5H5H"II%&ghhr   datac                 j    | j                  |      }| j                  } | j                  ||f|dd|S )aC  
        Create a new device activity for POS gateway
        
        Args:
            data: Dictionary containing device activity data in the format expected by rzp-pos-gateway
            device_mode: Device communication mode ("wired" or "wireless")
        
        Returns:
            DeviceActivity object
        Tr   use_public_auth)r   r   post_url)r   r    r   kwargsvalidated_modeurls         r   createzDeviceActivity.create!   s>     33K@mmt}}S$cNTXc\bccr   activity_idc                     |st        d      | j                  |      }| j                   d| } | j                  |i f|dd|S )a   
        Get the status of a device activity
        
        Args:
            activity_id: Activity ID to fetch status for
            device_mode: Device communication mode ("wired" or "wireless")
        
        Returns:
            DeviceActivity object with current status
        zActivity ID must be provided/Tr"   )r   r   r   get_url)r   r)   r   r%   r&   r'   s         r   
get_statuszDeviceActivity.get_status1   sX     !"@AA33K@q.t||C`QU`Y_``r   r   )__name__
__module____qualname__r   r   strr   r   r   r(   r-   __classcell__)r   s   @r   r   r   	   s    9# 8C= &d4S> d d[_`ceh`h[i d ac a a[_`ceh`h[i ar   r   N)typingr   r   r   baser   constants.urlr	   constants.devicer
   errorsr   r    r   r   <module>r9      s%    & &   ) $9aX 9ar   