o
    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   s  t  } ddg}t }zzt|jddt}|d| d f | }|s;tddddfW  d    W W |  S |d	| d | d t	
 f |d
 ro|d| d f | }|d |d
 kro|d| d |d f |  tddddfW  d    W W |  S 1 sw   Y  W n) ty } z|  tdt| dddfW  Y d }~W |  S d }~ww W |  d S |  w )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   r   cursorexecutefetchoner   closer   nowcommit	Exceptionrollbackstr)datarequired_fields
connectionr   subscriptionusagee r   P/Users/harjaapdhillon/Desktop/newidea/medvista_backend/Services/Billing/Usage.pyrecord_usage   s`   
9	
95(
9r    N)	flaskr   r   
contextlibr   confr   r   r    r   r   r   r   <module>   s
    