-- regions
ALTER TABLE ONLY regions
    ADD CONSTRAINT regions_pkey PRIMARY KEY (region_id);

-- pays
ALTER TABLE ONLY pays
    ADD CONSTRAINT pays_pkey PRIMARY KEY (code_pays);

ALTER TABLE ONLY pays
    ADD CONSTRAINT pays_region_id_fkey FOREIGN KEY (region_id) REFERENCES regions(region_id);

-- contacts
ALTER TABLE contacts
    ADD CONSTRAINT contacts_pkey PRIMARY KEY (contact_id);

ALTER TABLE ONLY contacts
    ADD CONSTRAINT contacts_pays_fkey FOREIGN KEY (code_pays) REFERENCES pays(code_pays);

-- clients
ALTER TABLE clients
    ADD CONSTRAINT clients_pkey PRIMARY KEY (client_id);

ALTER TABLE clients
    ADD CONSTRAINT clients_contact_id_fkey FOREIGN KEY (contact_id) REFERENCES contacts(contact_id);

ALTER TABLE clients
    ADD CONSTRAINT clients_type_client_fkey FOREIGN KEY (type_client) REFERENCES types_clients(type_client);

-- fournisseurs
ALTER TABLE fournisseurs
    ADD CONSTRAINT fournisseurs_pkey PRIMARY KEY (fournisseur_id);

ALTER TABLE ONLY fournisseurs
    ADD CONSTRAINT fournisseurs_contact_id_fkey FOREIGN KEY (contact_id) REFERENCES contacts(contact_id);

-- produits
ALTER TABLE produits
    ADD CONSTRAINT produits_pkey PRIMARY KEY (produit_id);

-- produit_fournisseurs
ALTER TABLE produit_fournisseurs
    ADD CONSTRAINT produit_fournisseurs_pkey PRIMARY KEY (produit_id, fournisseur_id);

ALTER TABLE produit_fournisseurs
    ADD CONSTRAINT produit_fournisseurs_produits_fkey FOREIGN KEY (produit_id) REFERENCES produits(produit_id);

ALTER TABLE produit_fournisseurs
    ADD CONSTRAINT produit_fournisseurs_fournisseur_fkey FOREIGN KEY (fournisseur_id) REFERENCES fournisseurs(fournisseur_id);

-- commandes
ALTER TABLE commandes
    ADD CONSTRAINT commandes_pkey PRIMARY KEY (numero_commande);

ALTER TABLE commandes
    ADD CONSTRAINT commandes_modes_expedition_fkey FOREIGN KEY (mode_expedition) REFERENCES modes_expedition(mode_expedition);

ALTER TABLE commandes
    ADD CONSTRAINT commandes_clients_fkey FOREIGN KEY (client_id) REFERENCES clients(client_id);

-- lignes_commandes
ALTER TABLE lignes_commandes
    ADD CONSTRAINT lignes_commandes_pkey PRIMARY KEY (numero_commande, numero_ligne_commande);

ALTER TABLE lignes_commandes
    ADD CONSTRAINT lignes_commandes_commandes_fkey FOREIGN KEY (numero_commande) REFERENCES commandes(numero_commande);

ALTER TABLE lignes_commandes
    ADD CONSTRAINT lignes_commandes_produit_fournisseurs_fkey FOREIGN KEY (produit_id, fournisseur_id) REFERENCES produit_fournisseurs(produit_id, fournisseur_id);

ALTER TABLE lignes_commandes
    ADD CONSTRAINT lignes_commandes_etats_retour_fkey FOREIGN KEY (etat_retour) REFERENCES etats_retour(etat_retour);

ALTER TABLE lignes_commandes ALTER COLUMN prix_unitaire SET NOT NULL;
ALTER TABLE lignes_commandes ALTER COLUMN remise SET NOT NULL;

-- factures

ALTER TABLE factures
    ADD CONSTRAINT factures_pkey PRIMARY KEY (numero_facture);

ALTER TABLE factures
    ADD CONSTRAINT factures_commandes_fkey FOREIGN KEY (numero_commande) REFERENCES commandes(numero_commande);

ALTER TABLE factures
    ADD CONSTRAINT factures_conditions_reglement_fkey
    FOREIGN KEY (condition_reglement) REFERENCES conditions_reglement(condition_reglement);

-- reglements
ALTER TABLE reglements
    ADD CONSTRAINT reglements_pkey PRIMARY KEY (reglement_id);

ALTER TABLE reglements
    ADD CONSTRAINT reglements_factures_fkey FOREIGN KEY (numero_facture) REFERENCES factures(numero_facture);

ALTER TABLE reglements
    ADD CONSTRAINT reglements_mode_reglement_fkey FOREIGN KEY (mode_reglement) REFERENCES modes_reglement(mode_reglement);

--lots
ALTER TABLE lots
    ADD CONSTRAINT lots_pkey PRIMARY KEY (numero_lot);

ALTER TABLE lignes_commandes
    ADD CONSTRAINT ligne_commande_lots_fkey FOREIGN KEY (numero_lot_expedition) REFERENCES lots(numero_lot);

--transporteurs
ALTER TABLE transporteurs
    ADD CONSTRAINT transporteurs_pkey PRIMARY KEY (transporteur_id);

ALTER TABLE lots
    ADD CONSTRAINT lots_transporteurs_fkey FOREIGN KEY (transporteur_id) REFERENCES transporteurs(transporteur_id);

--pays_transporteurs
ALTER TABLE pays_transporteurs
    ADD CONSTRAINT pays_transporteurs_pkey PRIMARY KEY (code_pays, transporteur_id);

ALTER TABLE pays_transporteurs
    ADD CONSTRAINT pays_transporteurs_transporteurs_fkey FOREIGN KEY (transporteur_id) REFERENCES transporteurs(transporteur_id);

-- eof --
