
    aj                     f    d dl Z d dlmZ ddlmZmZmZmZ ddlm	Z	  G d de j                        Zy)    N)get_dynamic_connection   )	SchedulerPaginatedSchedulerSeasonDivision)_resolve_gamec                   0   e Zd Z ej                  e ej                  d      d      Z ej                  e ej                  d       ej                  d      d	      Z	 ej                  ed
      Z ej                  ed      Zd Zd Zd Zd Zy)QueryT)requiredz;Get a single scheduler entry by ID. Mirrors SchedulerQuery.)iddescriptiond   )default_valuer   z@List all scheduler entries (paginated). Mirrors SchedulersQuery.)limitpager   z+Get the list of seasons in ascending order.)r   z-Get the list of divisions in ascending order.c                 z    |j                   d   }t        |      5 }t        ||      cd d d        S # 1 sw Y   y xY w)Ndb_name)contextr   r	   )selfinfor   r   conns        9/var/www/html/myl_app/scheduler-service/schema/queries.pyresolve_schedulerzQuery.resolve_scheduler   s9    ,,y)#G, 	+ r*	+ 	+ 	+s   1:c           	         |j                   d   }t        |      5 }|j                         5 }|j                  d       |j	                         d   }|dz
  |z  }|j                  d||f       |j                         }	d d d        	D 
cg c]  }
t        ||
d          }}
d d d        t        ||      S # 1 sw Y   <xY wc c}
w # 1 sw Y   )xY w)Nr   z SELECT COUNT(*) AS cnt FROM gamecntr   z2SELECT id FROM game ORDER BY id LIMIT %s OFFSET %sr   )datatotalr   per_page)r   r   cursorexecutefetchonefetchallr	   r   )r   r   r   r   r   r   curr   offsetrowsrowitemss               r   resolve_schedulerszQuery.resolve_schedulers   s    ,,y)#G, 	E 
&#>?u-(e+HFO ||~
& @DD]4T3DED	E "e$
 	

& 
& E	E 	Es/   C	AB8=C		CC	8C	=C		Cc           	      @   |j                   d   }t        |      5 }|j                         5 }|j                  d       |j	                         }d d d        d d d        D cg c]  }t        |d   |d   |d          c}S # 1 sw Y   6xY w# 1 sw Y   :xY wc c}w )Nr   zISELECT season_id, season_desc, year_id FROM season ORDER BY season_id ASC	season_idseason_descyear_id)r+   r,   r-   )r   r   r    r!   r#   r   r   r   r   r   r$   r&   r'   s          r   resolve_seasonszQuery.resolve_seasons/   s    ,,y)#G, 	& &#_ ||~	&	& 
  k*.I
 	
& &	& 	&
s(   B"BB"BB	BBc                 8   |j                   d   }t        |      5 }|j                         5 }|j                  d       |j	                         }d d d        d d d        D cg c]  }t        |d   |d          c}S # 1 sw Y   2xY w# 1 sw Y   6xY wc c}w )Nr   z1SELECT id, description FROM level ORDER BY id ASCr   r   )division_iddivision_name)r   r   r    r!   r#   r   r.   s          r   resolve_divisionszQuery.resolve_divisions@   s    ,,y)#G, 	& &#G ||~	&	& 

 	 I!-0
 	
& &	& 	&
s(   B"A?B"B?B	BBN)__name__
__module____qualname__grapheneFieldr   Int	schedulerr   
schedulersListr   seasonsr   	divisionsr   r)   r/   r3        r   r   r      s    8<<&QI
  hll-X\\*V	J hmmF0]^Gh4cdI+

*
"
r@   r   )r7   dbr   typesr   r   r   r   helpersr	   
ObjectTyper   r?   r@   r   <module>rE      s(     % B B "H
H H
r@   