from sqlalchemy import (Column, DateTime, Integer, Float, String)
from . import CreatedModifiedBase

class GameStatsBase(CreatedModifiedBase, object):
    # informational fields
    game_id = Column(Integer, primary_key=True)
    team_id = Column(Integer, primary_key=True)
    period = Column(Integer, primary_key=True)
    time_period = Column(String, primary_key=True)
    # rush stats
    rush_att = Column(Integer)
    rush_yds = Column(Integer)
    rush_td = Column(Integer)
    rush_long = Column(Integer)
    rush_gain = Column(Integer)
    rush_loss = Column(Integer)
    # rush averages
    rush_avg_yds_att = Column(Float)
    # pass stats
    pass_att = Column(Integer)
    pass_comp = Column(Integer)
    pass_td = Column(Integer)
    pass_int = Column(Integer)
    pass_yds = Column(Integer)
    pass_long = Column(Integer)
    pass_sacks = Column(Integer)
    pass_sackyds = Column(Integer)
    # pass averages
    pass_avg_yds_att = Column(Float)
    pass_avg_yds_comp = Column(Float)
    pass_pass_eff_rating = Column(Float)
    pass_td_int_ratio = Column(Float)
    pass_int_avoid_percent = Column(Float)
    pass_comp_percent = Column(Float)
    # kr stats
    kr_no = Column(Integer)
    kr_yds = Column(Integer)
    kr_td = Column(Integer)
    kr_long = Column(Integer)
    # kr averages
    kr_avg_yds_att = Column(Float)
    # pr stats
    pr_no = Column(Integer)
    pr_yds = Column(Integer)
    pr_td = Column(Integer)
    pr_long = Column(Integer)
    # pr averages
    pr_avg_yds_att = Column(Float)
    # ir stats
    ir_no = Column(Integer)
    ir_yds = Column(Integer)
    ir_td = Column(Integer)
    ir_long = Column(Integer)
    # ir averages
    ir_avg_yds_att = Column(Float)
    # fg stats
    fg_att = Column(Integer)
    fg_made = Column(Integer)
    fg_long = Column(Integer)
    fg_blkd = Column(Integer)
    # patstats
    pat_kickatt = Column(Integer)
    pat_kickmade = Column(Integer)
    pat_passatt = Column(Integer)
    pat_passmade = Column(Integer)
    pat_rushatt = Column(Integer)
    pat_rushmade = Column(Integer)
    pat_rcvatt = Column(Integer)
    pat_rcvmade = Column(Integer)
    pat_retfatt = Column(Integer)
    pat_retfmade = Column(Integer)
    pat_retkatt = Column(Integer)
    pat_retkmade = Column(Integer)
    # punt stats
    punt_no = Column(Integer)
    punt_yds = Column(Integer)
    punt_long = Column(Integer)
    punt_plus50 = Column(Integer)
    punt_inside20 = Column(Integer)
    punt_tb = Column(Integer)
    punt_fc = Column(Integer)
    punt_blkd = Column(Integer)
    # punt averages
    punt_avg = Column(Float)
    # ko stats
    ko_no = Column(Integer)
    ko_yds = Column(Integer)
    ko_tb = Column(Integer)
    ko_ob = Column(Integer)
    ko_fcyds = Column(Integer)
    # ko averages
    ko_avg_yds_att = Column(Float)
    # defense stats
    defense_tackua = Column(Integer)
    defense_tacka = Column(Integer)
    defense_tflua = Column(Integer)
    defense_tfla = Column(Integer)
    defense_tflyds = Column(Integer)
    defense_sacks = Column(Integer)
    defense_sackyds = Column(Integer)
    defense_brup = Column(Integer)
    defense_qbh = Column(Integer)
    defense_ff = Column(Integer)
    defense_fr = Column(Integer)
    defense_fryds = Column(Integer)
    defense_int = Column(Integer)
    defense_intyds = Column(Integer)
    defense_tot_tack = Column(Integer)
    defense_tflyds = Column(Integer)
    defense_sackyds = Column(Integer)
    defense_sackua = Column(Integer)
    defense_sacka = Column(Integer)
    defense_blkd = Column(Integer)
    defense_saf = Column(Integer)
    # scoring stats
    scoring_td = Column(Integer)
    scoring_patkick = Column(Integer)
    scoring_fg = Column(Integer)
    scoring_patrush = Column(Integer)
    scoring_patrcv = Column(Integer)
    scoring_total_pts = Column(Integer)
    scoring_saf = Column(Integer)
    scoring_patretkick = Column(Integer)
    scoring_patretfumb = Column(Integer)
    # fumbles
    fumbles_no = Column(Integer)
    fumbles_lost = Column(Integer)
    # fr
    fr_no = Column(Integer)
    fr_yds = Column(Integer)
    fr_td = Column(Integer)
    fr_long = Column(Integer)
    # field goal returns
    fgr_no = Column(Integer)
    fgr_yds = Column(Integer)
