U
    [Mh                     @   s   d dl Z d dlZd dlmZ d dlmZmZ dd Zdd Zdd	 Z	e
d
kreejdkrejd Zedkrte  qedkre	  qed ne  dS )    N)DATABASE_URL)create_enginetextc               	   C   s   t d tt} |  @}t d |td |td |td |  W 5 Q R X t d t d t d t d	 d S )
Nz&Setting up multi-developer tracking...zCreating database tables...z_CREATE INDEX IF NOT EXISTS idx_activity_records_developer_id ON activity_records(developer_id);a  
            CREATE TABLE IF NOT EXISTS activity_sessions (
                id SERIAL PRIMARY KEY,
                developer_id VARCHAR NOT NULL,
                session_start TIMESTAMP WITH TIME ZONE NOT NULL,
                session_end TIMESTAMP WITH TIME ZONE,
                total_active_time INTEGER DEFAULT 0,
                is_active BOOLEAN DEFAULT TRUE,
                created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
            );
        a  
            CREATE TABLE IF NOT EXISTS developer_api_tokens (
                id SERIAL PRIMARY KEY,
                developer_id VARCHAR NOT NULL,
                api_token VARCHAR UNIQUE NOT NULL,
                token_name VARCHAR DEFAULT 'Default Token',
                is_active BOOLEAN DEFAULT TRUE,
                created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
            );
        zDatabase setup complete!zNext steps:z"1. Restart backend: python main.pyz82. Create tokens: python setup_multi_dev.py create-token)printr   r   connectexecuter   commit)engineconn r   ./setup_multi_dev.pysetup_database   s    
r   c               
   C   s   t d } | std d S tt}zb| P}dtd }|t	d| ||  dd |
  td|  d	|  W 5 Q R X W n0 tk
r } ztd
|  W 5 d }~X Y nX d S )NzEnter developer name: zName required!ZAWToken_    z
                INSERT INTO developer_api_tokens (developer_id, api_token, token_name)
                VALUES (:dev_id, :token, :name)
            z Token)Zdev_idtokennamez
Token for z: Error: )inputstripr   r   r   r   secretsZtoken_urlsafer   r   r   	Exception)r   r	   r
   r   er   r   r   create_token5   s    

"r   c               
   C   s   t t} z|  v}|td}| }|sFtd W 5 Q R  W d S td |D ]0}td|d   td|d   td qRW 5 Q R X W n0 tk
r } ztd	|  W 5 d }~X Y nX d S )
NzQSELECT developer_id, api_token FROM developer_api_tokens ORDER BY created_at DESCzNo tokens found.zAPI Tokens:zDeveloper: r   zToken:    z2--------------------------------------------------r   )r   r   r   r   r   Zfetchallr   r   )r	   r
   resulttokensr   r   r   r   r   list_tokensM   s"    
r   __main__r   zcreate-tokenzlist-tokensz;Usage: python setup_multi_dev.py [create-token|list-tokens])r   sysZdatabaser   Z
sqlalchemyr   r   r   r   r   __name__lenargvcmdr   r   r   r   r   <module>   s   -

