o
    NGi+	                     @  sB   d dl mZ d dlZd dlmZmZ d dlmZ G dd dZdS )    )annotationsN)AnyOptional)settingsc                   @  sT   e Zd Zdd Zdd Zdd Zdd	d
ZdddZdddZdd Z	dddZ
dS )DatabaseManagerc                 C  s
   d | _ d S N)poolself r   C/var/www/www-root/data/www/77.83.87.30/database/database_manager.py__init__	   s   
zDatabaseManager.__init__c                   s.   | j d u rtjtjdddI d H | _ d S d S )N   
   )dsnmin_sizemax_size)r   asyncpgcreate_poolr   DATABASE_URLr	   r   r   r   connect   s   
zDatabaseManager.connectc                   s    | j r| j  I d H  d S d S r   )r   closer	   r   r   r   r      s   zDatabaseManager.closequerystrc              	     sl   |   I d H  | j 4 I d H }|j|g|R  I d H  W d   I d H  d S 1 I d H s/w   Y  d S r   )r   r   acquireexecuter
   r   argsconnr   r   r   r      s
   .zDatabaseManager.executec              	     j   |   I d H  | j 4 I d H }|j|g|R  I d H W  d   I d H  S 1 I d H s.w   Y  d S r   )r   r   r   fetchr   r   r   r   	fetch_all   
   0zDatabaseManager.fetch_allc              	     r   r   )r   r   r   fetchrowr   r   r   r   	fetch_one"   r"   zDatabaseManager.fetch_onec                   s6   |  dI d H  |  dI d H  |  dI d H  d S )NaN  
        CREATE TABLE IF NOT EXISTS matches (
            match_id TEXT PRIMARY KEY,
            home_team TEXT,
            away_team TEXT,
            home_goals INTEGER,
            away_goals INTEGER,
            status TEXT,
            start_time TIMESTAMP,
            competition TEXT,
            url TEXT
        );
        a3  
        CREATE TABLE IF NOT EXISTS predictions (
            match_id TEXT PRIMARY KEY,
            p1 REAL,
            px REAL,
            p2 REAL,
            lambda_home REAL,
            lambda_away REAL,
            confidence REAL,
            created_at TIMESTAMP DEFAULT now()
        );
        z
        CREATE TABLE IF NOT EXISTS team_stats (
            team_id TEXT PRIMARY KEY,
            team_name TEXT,
            attack REAL,
            defense REAL,
            updated_at TIMESTAMP DEFAULT now()
        );
        )r   r	   r   r   r   init_db'   s   zDatabaseManager.init_dbteam_idc                   s   |  d|I d H }|S )Nz7SELECT attack, defense FROM team_stats WHERE team_id=$1)r$   )r
   r&   rowr   r   r   get_team_statsP   s   
zDatabaseManager.get_team_statsN)r   r   )r&   r   )__name__
__module____qualname__r   r   r   r   r!   r$   r%   r(   r   r   r   r   r      s    


)r   )	
__future__r   r   typingr   r   configr   r   r   r   r   r   <module>   s
    