U
    - i
                     @   s@   d dl mZmZ d dlmZ d dlmZ d dlmZ dd ZdS )    )requestjsonify)closing)connect_to_database)datetimec               
   C   sp  t  } ddg}t }zHzt|jdd}|d| d f | }|sptddddfW  5 Q R  W W S |d	| d | d t	
 f |d
 r|d| d f | }|d |d
 kr|d| d |d f |  tddddfW  5 Q R  W W `S Q R X W nP tk
r\ } z0|  tdt| dddf W Y W S d }~X Y nX W 5 |  X d S )Nsubscription_idZ
usage_typeT)
dictionaryz
                SELECT s.id, p.maximum_bookings, p.price_after_max
                FROM subscriptions s
                JOIN packages p ON s.package_id = p.id
                WHERE s.id = %s AND s.status = 'active'
            zActive subscription not found)messageerrori  a  
                INSERT INTO subscription_usage (
                    subscription_id, usage_type, recorded_at
                ) VALUES (%s, %s, %s)
                ON DUPLICATE KEY UPDATE 
                count = count + 1,
                last_used = VALUES(recorded_at)
            maximum_bookingsz
                    SELECT COUNT(*) as usage_count
                    FROM subscription_usage
                    WHERE subscription_id = %s
                Zusage_countz
                        INSERT INTO invoices (
                            subscription_id, amount, status
                        ) VALUES (%s, %s, 'unpaid')
                    price_after_maxzUsage recorded successfullyF   zError recording usage: i  )r   get_jsonr   closer   cursorexecutefetchoner   r   nowcommit	Exceptionrollbackstr)datarequired_fields
connectionr   subscriptionusagee r   4/var/www/html/api-medvista/Services/Billing/Usage.pyrecord_usage   sN    $	 :r    N)	flaskr   r   
contextlibr   confr   r   r    r   r   r   r   <module>   s   