---- N'oubliez pas le USE

--- Les DROP.
drop table SacAdos;
drop table Paniers;
drop table joueurs;
drop table Armes;
drop table ResitanceArmures;
drop table TypeDegats;
drop table Armures;
drop table Nourritures;
drop table Medicaments;
drop table Items;
---------------Les CREATE
---Table Joueurs
create table Joueurs 
(
	idJoueur int identity(100,1),
	alias varchar(50) unique not null ,
	nom varchar(30),
	prenom varchar(30),
	caps int not null default 1000,
	nbPtvie int not null default 50,
	dexterite smallint not null default 100,
	poidMax int not null default 50,
	constraint pkJoueurs primary key(idJoueur),
	constraint ckMontantJoueurs check(caps >= 0),
	constraint ckvie check(nbPtvie>=0),
	constraint ckDex check(dexterite>=0),
	constraint ckPoidmax check(dexterite>=1),
);
---Table Items
create table Items 
(
	idItem int identity(1,1),
	nom varchar(30) not null,
	qtStock int not null,
	prix int not null,
	typeItem char(1) not null,
	flagDispo int not null default 1,
	poids int not null,
	constraint pkItems primary key(idItem),
	constraint ckType check(typeItem IN('A','R','M','N')),
	constraint ckQtStock check(qtStock >= 0),
	constraint ckFlagDispo check(flagDispo IN(0,1)),
	constraint ckPoids check(poids>=1)
);
----Table Panier
create table Paniers 
(
	idJoueur int not null,
	idItem int not null,
	qtItemPanier int not null,
	constraint pkPaniers primary key(idJoueur,idItem),
	constraint fkPaniersJoueurs foreign key(idJoueur) references Joueurs(idJoueur),
	constraint fkPaniersItems foreign key(idItem) references Items(idItem),
	constraint ckQttItemPaniers check(qtItemPanier >= 0)
);

---Table SacAdos
create table SacAdos
(
	idJoueur int not null,
	idItem int not null,
	qtItem int not null,
	constraint pkInventaire primary key(idJoueur,idItem),
	constraint fkItemsInventaire foreign key(idItem) references Items(idItem),
	constraint fkIdJoueur foreign key(idJoueur) references Joueurs(idJoueur),
	constraint ckQttItemInventaire check(qtItem >= 0)
);

--- Table Armes
create table Armes 
(
	idItem int not null,
	portee int not null,
	degat int not null,
	forceRequise int not null,
	constraint pkArmes primary key(idItem),
	constraint fkArmesItems foreign key(idItem) references Items(idItem)
);
--Table Armures
create table Armures (
idItem int not null,
matiere varchar(30) not null,
taille int not null,
constraint pkArmures primary key(idItem),
constraint fkArmuresItems foreign key(idItem) references Items(idItem)
);

-----Table TypeDegats
create table typeDegats
(
codeDegat char(3) not null,
nomDegat varchar(60) not null,
constraint pk_Ddegat primary key(codeDegat));

----Table ResistanceArmure
create table ResitanceArmures
(
codeDegat char(3) not null,
idItem int not null,
degre smallint not null,
constraint pk_resistance primary key(codeDegat,idItem),
constraint fk_resArmure foreign key (idItem) references Armures(idItem),
constraint fk_resDegat foreign key (codeDegat) references TypeDegats(codeDegat)
);

---Table Nourritures
create table Nourritures
(
idItem int not null,
calorie int not null,
nbDex int not null,
nbPtvie int not null,
constraint Ck_nbDexNour check (nbDex>=1),
constraint Ck_vieNour check (nbPtvie>=1),
constraint pk_Nourritur primary key(idItem),
constraint fkNourCons foreign key(idItem) references Items(idItem)
);
--- Table Medicaments
create table Medicaments
(idItem int not null,
 effet varchar(50),
 dureEffet int not null,
 indesirable varchar(30) not null,
 nbDex int not null,
 nbPtvie int not null,
constraint Ck_nbDexMedoc check (nbDex>=1),
constraint Ck_vieMedoc check (nbPtvie>=1),
constraint pk_medic primary key(idItem),
constraint fkMedicItem foreign key(idItem) references Items(idItem)
 );




