-- Add up migration script here
--CREATE FUNCTION periods(game_id INTEGER)
--RETURNS INTEGER AS $$
--BEGIN
--  RETURN (SELECT COUNT(id) FROM periods WHERE periods.game=game_id);
--END;
--$$ LANGUAGE plpgsql;
--
--CREATE FUNCTION goals(game_id INTEGER, team_id INTEGER)
--RETURNS INTEGER AS $$
--DECLARE
--	goals INTEGER;
--BEGIN
--	IF NOT EXISTS (SELECT * FROM games WHERE games.id=game_id) THEN
--		RAISE EXCEPTION 'The game does not exist.';
--	END IF;
--	IF NOT EXISTS (SELECT * FROM teams WHERE teams.id=team_id) THEN
--		RAISE EXCEPTION 'The team does not exist.';
--	END IF;
--	IF NOT EXISTS (SELECT * FROM games JOIN teams ON teams.id=games.team_home OR teams.id=team_away WHERE games.id=game_id) THEN
--		RAISE EXCEPTION 'The team specified did not play this game.';
--	END IF;
--
--  SELECT
--    COUNT(shots.id)
--	INTO
--		goals
--	FROM shots
--	JOIN game_players
--		ON game_players.id=shots.shooter
-- 	JOIN periods
--	  ON periods.id=shots.period
-- WHERE shots.goal=true
-- 	 AND game_players.team=team_id
--	 AND periods.game=game_id;
-- -- return 0 if not goals are found given the team and the game
-- RETURN COALESCE(goals, 0);
--END;
--$$ LANGUAGE plpgsql;
--
--CREATE OR REPLACE FUNCTION calculate_iihf_stats(game_id INT, team_id INT)
--RETURNS TABLE (
--  reg_win INT,
--  reg_loss INT,
--  ot_win INT,
--  ot_loss INT,
--  tie INT,
--	game INT,
--	team INT
--) AS $$
--DECLARE
--	opponent_team_id INTEGER;
--BEGIN
--	IF NOT EXISTS (SELECT * FROM games WHERE games.id=game_id) THEN
--		RAISE EXCEPTION 'The game does not exist.';
--	END IF;
--	IF NOT EXISTS (SELECT * FROM teams WHERE teams.id=team_id) THEN
--		RAISE EXCEPTION 'The team does not exist.';
--	END IF;
--	IF NOT EXISTS (SELECT * FROM games JOIN teams ON teams.id=games.team_home OR teams.id=team_away WHERE games.id=game_id) THEN
--		RAISE EXCEPTION 'The team specified did not play this game.';
--	END IF;
--
--	SELECT
--		teams.id
--	INTO
--		opponent_team_id
--	FROM games
--	JOIN teams
--	  ON (teams.id=games.team_home
--	  OR teams.id=games.team_away)
--	WHERE games.id=game_id
--		AND teams.id!=team_id;
--
--	RETURN QUERY
--	SELECT
--		(CASE WHEN goals(game_id, team_id) > goals(game_id, opponent_team_id) AND periods(game_id) <= 3 THEN 1 ELSE 0 END) AS reg_win,
--		(CASE WHEN goals(game_id, team_id) < goals(game_id, opponent_team_id) AND periods(game_id) <= 3 THEN 1 ELSE 0 END) AS reg_loss,
--		(CASE WHEN goals(game_id, team_id) > goals(game_id, opponent_team_id) AND periods(game_id) > 3 THEN 1 ELSE 0 END) AS ot_win,
--		(CASE WHEN goals(game_id, team_id) < goals(game_id, opponent_team_id) AND periods(game_id) > 3 THEN 1 ELSE 0 END) AS ot_loss,
--		(CASE WHEN goals(game_id, team_id) = goals(game_id, opponent_team_id) THEN 1 ELSE 0 END) AS tie,
--		game_id AS game,
--		team_id AS team;
--END;
--$$ LANGUAGE plpgsql;
--
--CREATE OR REPLACE FUNCTION calculate_iihf_points(game_id INT, team_id INT)
--RETURNS INTEGER AS $$
--BEGIN
--	RETURN (
--		SELECT 
--			(iihs_stats.reg_win * 3) +
--			(iihs_stats.reg_loss * 0) +
--			(iihs_stats.ot_win * 2) +
--			(iihs_stats.ot_loss * 1) +
--			(iihs_stats.tie * 2) AS points
--		FROM calculate_iihs_stats_stats(game_id, team_id) iihs_stats);
--END;
--$$ LANGUAGE plpgsql;
