
    aj1                     l    d dl mZ ddlmZ dedefdZdedefdZd	edefd
ZdedefdZ	dedefdZ
y)    )get_dynamic_connection   )	Schedulergame_idreturnc                    | j                         5 }|j                  d|f       |j                         }|st        d      |j                  d|f       |j                         }|r|j	                  d      nd}|t        |      }d}|rX|j	                  d      rG|j                  d|d   f       |j                         }|r|j	                  d      t        |d         }d}|j	                  d	      r9|j                  d
|d	   f       |j                         }	|	r|	j	                  d      }d}
|j	                  d      r9|j                  d
|d   f       |j                         }	|	r|	j	                  d      }
d}|r|j	                  d      r|j                  d|d   f       |j                         }|r|j	                  dd      nd}d}|rM|j	                  d      r<|j                  d|d   f       |j                         }|r|j	                  dd      nd}|r
|r| d| }n
|xs |xs d}d}|j	                  d      r:|j                  d|d   f       |j                         }|r|j	                  dd      }t        |d   ||||
|||j	                  d      rt        |d         nd|j	                  d      rt        |d         nd	      cddd       S # 1 sw Y   yxY w)z
    Build a full Scheduler object for a game row, joining schedule,
    timeslot, team, resource, site, and level tables.
    Mirrors PHP SchedulerType field resolvers.
    z SELECT * FROM game WHERE id = %szScheduler entry not foundz8SELECT * FROM schedule WHERE relationshipid = %s LIMIT 1	rscs_dateNts_idz2SELECT ts_starttime FROM timeslot WHERE ts_id = %sts_starttime	home_teamz'SELECT teamname FROM team WHERE id = %steamname	away_team rsc_idz(SELECT * FROM resource WHERE rsc_id = %srsc_namesite_idz-SELECT site_name FROM site WHERE site_id = %s	site_namez @ idlevelz+SELECT description FROM level WHERE id = %sdescriptionid
created_at
updated_at)	r   datetimehomeawaylocationdivisionr   r   )cursorexecutefetchone	Exceptiongetstrr   )connr   curgamescheduledate_valtime_valts	home_namet	away_namelocation_valresourcer   r   sitedivision_vallvls                     9/var/www/html/myl_app/scheduler-service/schema/helpers.py_resolve_gamer5      s    
 _
#6
C||~788 	FJ	
 <<> 198<<,d8}H W-KKD'"$ Bbff^,8r.12 	88K KK9k"$ AEE*-	 	88K KK9k"$ AEE*-	 X.KK:(#% ||~H7?x||J3RHIHLL3Ci(* ||~9=DHH["52	I"*3yk:':9: 88IKK=i" ,,.C"ww}b9Dz!!26((<2Hs4-.d26((<2Hs4-.d

k_
 _
 _
s   KKK'	team_namec                     | j                  d|f       | j                         }|r|d   S | j                  d||dd f       |j                          | j                  S )z7Find a team by name or create it.  Returns the team id.z'SELECT id FROM team WHERE teamname = %sr   z1INSERT INTO team (teamname, abbr) VALUES (%s, %s)N   r    r!   commit	lastrowid)r&   r%   r6   rows       r4   _find_or_create_teamr=   l   s]    KK9I<H
,,.C
4yKK;	IbqM" 	KKM==    r   c                     | j                  d|f       | j                         }|r|d   S | j                  d|f       |j                          | j                  S )z2Find a level/division by description or create it.z+SELECT id FROM level WHERE description = %sr   z+INSERT INTO level (description) VALUES (%s)r9   )r&   r%   r   r<   s       r4   _find_or_create_levelr@   z   sO    KK=~N
,,.C
4yKK=~NKKM==r>   r   c                     | j                  d|f       | j                         }|r|d   S | j                  d|f       |j                          | j                  S )z.Find a resource/location by name or create it.z/SELECT rsc_id FROM resource WHERE rsc_name = %sr   z+INSERT INTO resource (rsc_name) VALUES (%s)r9   )r&   r%   r   r<   s       r4   _find_or_create_resourcerB      sO    KKAH;O
,,.C
8}KK={KKKM==r>   
start_timec                     | j                  d|f       | j                         }|r|d   S | j                  d||f       |j                          | j                  S )z+Find a timeslot by start time or create it.z2SELECT ts_id FROM timeslot WHERE ts_starttime = %sr
   z?INSERT INTO timeslot (ts_starttime, ts_endtime) VALUES (%s, %s)r9   )r&   r%   rC   r<   s       r4   _find_or_create_timeslotrE      sW    KKDzmT
,,.C
7|KKI	Z  	KKM==r>   N)dbr   typesr   intr5   r$   r=   r@   rB   rE    r>   r4   <module>rJ      sn    % e
 e
 e
Ps s # # # # C C r>   