/*
Copyright (C) 2024 filifa

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program. If not, see <https://www.gnu.org/licenses/>.
*/

pragma foreign_keys = 0;

begin;
attach database 'lahman-raw.db' as 'raw';

create temp table battingpost as
select * from "raw".battingpost;

alter table battingpost drop column "lgID";
alter table battingpost drop column "teamID";

update battingpost
set
	RBI = nullif(RBI,''),
	SB = nullif(SB,''),
	CS = nullif(CS,''),
	SO = nullif(SO,''),
	IBB = nullif(IBB,''),
	HBP = nullif(HBP,''),
	SH = nullif(SH,''),
	SF = nullif(SF,''),
	GIDP = nullif(GIDP,'');

CREATE TABLE IF NOT EXISTS main."battingpost" (
	"year"	NUMERIC,
	"round"	NUMERIC,
	"player"	TEXT,
	"G"	NUMERIC,
	"AB"	NUMERIC,
	"R"	NUMERIC,
	"H"	NUMERIC	check (H <= AB),
	"2B"	NUMERIC	check ("2B" <= H),
	"3B"	NUMERIC check ("3B" <= H),
	"HR"	NUMERIC	check ("HR" <= H),
	"RBI"	NUMERIC,
	"SB"	NUMERIC,
	"CS"	NUMERIC,
	"BB"	NUMERIC,
	"SO"	NUMERIC	check (SO <= AB),
	"IBB"	NUMERIC	check (IBB <= BB),
	"HBP"	NUMERIC,
	"SH"	NUMERIC,
	"SF"	NUMERIC,
	"GIDP"	NUMERIC	check (GIDP <= AB),
	PRIMARY KEY("year","player","round"),
	foreign key("player","year") references "appearancespost"("player","year"),
	foreign key("year","round") references "seriespost"("year","round")
);

insert into main.battingpost select distinct * from temp."battingpost";
commit;
