diff --git a/Back-end/src/main/java/com/example/starter/MainVerticle.java b/Back-end/src/main/java/com/example/starter/MainVerticle.java
index 988c70e..90f9bee 100644
--- a/Back-end/src/main/java/com/example/starter/MainVerticle.java
+++ b/Back-end/src/main/java/com/example/starter/MainVerticle.java
@@ -44,6 +44,7 @@ public class MainVerticle extends AbstractVerticle {
setObjects.setUserHandler(setUser);
queryObjects.setUserHandler(setUser);
setWeatherData.setUserHandler(setUser);
+ QueryDeleteObject RequestDeleteObject = new QueryDeleteObject(databaseService);
// Déclaration des routes
@@ -66,6 +67,9 @@ public class MainVerticle extends AbstractVerticle {
router.get("/getCategories").handler(queryObjects::getCategories);
router.post("/addCategories").handler(setObjects::newCategorie);
router.post("/deleteCategories").handler(setObjects::deleteCategories);
+ router.post("/requestDeleteObject").handler(RequestDeleteObject::deleteObject);
+
+
// Routes d'authentification
router.post("/signup").handler(authHandler::handleSignup);
diff --git a/Back-end/src/main/java/com/example/starter/QueryDeleteObject.java b/Back-end/src/main/java/com/example/starter/QueryDeleteObject.java
new file mode 100644
index 0000000..a9e21d2
--- /dev/null
+++ b/Back-end/src/main/java/com/example/starter/QueryDeleteObject.java
@@ -0,0 +1,64 @@
+package com.example.starter;
+
+import io.vertx.core.json.JsonObject;
+import io.vertx.ext.web.RoutingContext;
+import io.vertx.sqlclient.Tuple;
+
+public class QueryDeleteObject {
+ private DatabaseService databaseService;
+
+ public QueryDeleteObject(DatabaseService dtbS) {
+ this.databaseService = dtbS;
+ }
+
+ public void deleteObject(RoutingContext context) {
+ JsonObject body = context.body().asJsonObject();
+
+ if (body == null) {
+ context.response().setStatusCode(400).end(new JsonObject().put("error", "Requête invalide").encode());
+ return;
+ }
+
+ // Lecture des paramètres
+ Integer objectId = body.getInteger("object_id");
+ Integer userId = body.getInteger("requested_by");
+
+ System.out.println("Body reçu : " + body.encode());
+ System.out.println("objectId = " + objectId + ", userId = " + userId);
+
+ if (objectId == null || userId == null) {
+ context.response().setStatusCode(400).end(new JsonObject().put("error", "Champs manquants").encode());
+ return;
+ }
+
+ // Vérification si l'objet existe
+ String checkQuery = "SELECT id FROM weather_objects WHERE id = ?";
+
+ databaseService.pool.preparedQuery(checkQuery).execute(Tuple.of(objectId), res -> {
+ if (res.failed()) {
+ res.cause().printStackTrace(); // Affiche l'erreur SQL s'il y en a une
+ context.response().setStatusCode(500).end(new JsonObject().put("error", "Erreur base de données").encode());
+ return;
+ }
+
+ if (res.result().rowCount() == 0) {
+ context.response().setStatusCode(404).end(new JsonObject().put("error", "Objet non trouvé").encode());
+ return;
+ }
+
+ // Insertion simple (pas de vérif doublon pour l’instant)
+ String checkDuplicate = "SELECT 1 FROM deletion_requests WHERE object_id = ? AND requested_by = ?";
+ String insertQuery = "INSERT INTO deletion_requests (object_id, requested_by) VALUES (?, ?)";
+
+ databaseService.pool.preparedQuery(insertQuery).execute(Tuple.of(objectId, userId), insertRes -> {
+ if (insertRes.succeeded()) {
+ context.response().setStatusCode(200).end(new JsonObject().put("message", "Demande envoyée").encode());
+ } else {
+ insertRes.cause().printStackTrace(); // Pour voir l'erreur en console
+ context.response().setStatusCode(500).end(new JsonObject().put("error", "Erreur insertion").encode());
+ }
+ });
+ });
+}
+
+}
diff --git a/Front-end/src/pages/Gestion/ObjectManagement.jsx b/Front-end/src/pages/Gestion/ObjectManagement.jsx
index 3daf55d..de0d447 100644
--- a/Front-end/src/pages/Gestion/ObjectManagement.jsx
+++ b/Front-end/src/pages/Gestion/ObjectManagement.jsx
@@ -1,5 +1,5 @@
import React from "react";
-import { Search, ArrowRight, RadioTower, Plus } from "lucide-react";
+import { Search, ArrowRight, RadioTower, Plus, Trash } from "lucide-react";
import { useEffect, useState } from "react";
import axios from "axios";
import { API_BASE_URL } from "../../config";
@@ -32,6 +32,41 @@ function ObjectManagement() {
setObjects(response.data);
});
}, []);
+
+ const handleRequestDeletion = async (objectId) => {
+ console.log("Demande de suppression pour l'objet", objectId);
+
+ try {
+ // Log des données envoyées
+ console.log("Envoi de la requête:", {
+ object_id: objectId,
+ requested_by: user.id,
+ });
+
+ const response = await axios.post(
+ `${API_BASE_URL}/requestDeleteObject`,
+ {
+ object_id: objectId,
+ requested_by: user.id,
+ },
+ {
+ headers: {
+ "Content-Type": "application/json", // Pas d'Authorization
+ },
+ }
+ );
+
+ console.log("Réponse du serveur:", response.data);
+ alert("Demande de suppression envoyée à l'administrateur.");
+ } catch (error) {
+ console.error("Erreur lors de la requête :", error.response?.data || error.message);
+ alert("Erreur lors de la demande.");
+ }
+ };
+
+
+
+
return (
@@ -141,12 +176,23 @@ function ObjectManagement() {
{object.name}
{object.description}
-
- Plus d'infos
-
+
+
+ Plus d'infos
+
+ {user?.role !== "user" && (
+
+ )}
+
))
)}
diff --git a/sql/export1.sql b/sql/export1.sql
new file mode 100644
index 0000000..cc63c69
--- /dev/null
+++ b/sql/export1.sql
@@ -0,0 +1,522 @@
+--
+-- PostgreSQL database dump
+--
+
+-- Dumped from database version 16.8 (Ubuntu 16.8-0ubuntu0.24.04.1)
+-- Dumped by pg_dump version 16.8 (Ubuntu 16.8-0ubuntu0.24.04.1)
+
+-- Started on 2025-04-13 11:04:16 CEST
+
+SET statement_timeout = 0;
+SET lock_timeout = 0;
+SET idle_in_transaction_session_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SELECT pg_catalog.set_config('search_path', '', false);
+SET check_function_bodies = false;
+SET xmloption = content;
+SET client_min_messages = warning;
+SET row_security = off;
+
+SET default_tablespace = '';
+
+SET default_table_access_method = heap;
+
+--
+-- TOC entry 223 (class 1259 OID 16527)
+-- Name: categories; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE public.categories (
+ id integer NOT NULL,
+ name text NOT NULL
+);
+
+
+ALTER TABLE public.categories OWNER TO postgres;
+
+--
+-- TOC entry 222 (class 1259 OID 16526)
+-- Name: categories_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE public.categories_id_seq
+ AS integer
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER SEQUENCE public.categories_id_seq OWNER TO postgres;
+
+--
+-- TOC entry 3502 (class 0 OID 0)
+-- Dependencies: 222
+-- Name: categories_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE public.categories_id_seq OWNED BY public.categories.id;
+
+
+--
+-- TOC entry 225 (class 1259 OID 16573)
+-- Name: deletion_requests; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE public.deletion_requests (
+ id integer NOT NULL,
+ object_id integer NOT NULL,
+ requested_by integer NOT NULL,
+ created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
+ status character varying(20) DEFAULT 'pending'::character varying
+);
+
+
+ALTER TABLE public.deletion_requests OWNER TO postgres;
+
+--
+-- TOC entry 224 (class 1259 OID 16572)
+-- Name: deletion_requests_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE public.deletion_requests_id_seq
+ AS integer
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER SEQUENCE public.deletion_requests_id_seq OWNER TO postgres;
+
+--
+-- TOC entry 3503 (class 0 OID 0)
+-- Dependencies: 224
+-- Name: deletion_requests_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE public.deletion_requests_id_seq OWNED BY public.deletion_requests.id;
+
+
+--
+-- TOC entry 215 (class 1259 OID 16468)
+-- Name: range_data; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE public.range_data (
+ station_id integer NOT NULL,
+ temperature_min numeric,
+ temperature_max numeric,
+ pressure_min numeric,
+ pressure_max numeric,
+ humidity_min numeric,
+ humidity_max numeric
+);
+
+
+ALTER TABLE public.range_data OWNER TO postgres;
+
+--
+-- TOC entry 219 (class 1259 OID 16502)
+-- Name: users; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE public.users (
+ id integer NOT NULL,
+ name character varying(50) NOT NULL,
+ surname character varying(50) NOT NULL,
+ email character varying(100) NOT NULL,
+ gender character varying(10) NOT NULL,
+ password text NOT NULL,
+ created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
+ points integer DEFAULT 0,
+ CONSTRAINT users_gender_check CHECK (((gender)::text = ANY ((ARRAY['homme'::character varying, 'femme'::character varying])::text[])))
+);
+
+
+ALTER TABLE public.users OWNER TO postgres;
+
+--
+-- TOC entry 218 (class 1259 OID 16501)
+-- Name: users_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE public.users_id_seq
+ AS integer
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER SEQUENCE public.users_id_seq OWNER TO postgres;
+
+--
+-- TOC entry 3504 (class 0 OID 0)
+-- Dependencies: 218
+-- Name: users_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
+--
+
+ALTER SEQUENCE public.users_id_seq OWNED BY public.users.id;
+
+
+--
+-- TOC entry 221 (class 1259 OID 16524)
+-- Name: weather_data_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE public.weather_data_id_seq
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER SEQUENCE public.weather_data_id_seq OWNER TO postgres;
+
+--
+-- TOC entry 216 (class 1259 OID 16473)
+-- Name: weather_data; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE public.weather_data (
+ id integer DEFAULT nextval('public.weather_data_id_seq'::regclass) NOT NULL,
+ station_id integer NOT NULL,
+ temperature numeric(5,2),
+ humidity numeric(5,2),
+ pressure numeric(7,2),
+ wind_speed numeric(5,2),
+ wind_direction character varying(50),
+ "timestamp" timestamp without time zone DEFAULT CURRENT_TIMESTAMP
+);
+
+
+ALTER TABLE public.weather_data OWNER TO postgres;
+
+--
+-- TOC entry 220 (class 1259 OID 16522)
+-- Name: weather_objects_id_seq1; Type: SEQUENCE; Schema: public; Owner: postgres
+--
+
+CREATE SEQUENCE public.weather_objects_id_seq1
+ START WITH 1
+ INCREMENT BY 1
+ NO MINVALUE
+ NO MAXVALUE
+ CACHE 1;
+
+
+ALTER SEQUENCE public.weather_objects_id_seq1 OWNER TO postgres;
+
+--
+-- TOC entry 217 (class 1259 OID 16477)
+-- Name: weather_objects; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE public.weather_objects (
+ id integer DEFAULT nextval('public.weather_objects_id_seq1'::regclass) NOT NULL,
+ name character varying(500) NOT NULL,
+ description text,
+ type character varying(100) NOT NULL,
+ location character varying(255),
+ last_update timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
+ status character varying(50) DEFAULT 'active'::character varying,
+ batterie integer,
+ type_batterie character varying(50),
+ proprio_id integer,
+ CONSTRAINT weather_objects_batterie_check CHECK (((batterie >= 0) AND (batterie <= 100)))
+);
+
+
+ALTER TABLE public.weather_objects OWNER TO postgres;
+
+--
+-- TOC entry 3317 (class 2604 OID 16530)
+-- Name: categories id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.categories ALTER COLUMN id SET DEFAULT nextval('public.categories_id_seq'::regclass);
+
+
+--
+-- TOC entry 3318 (class 2604 OID 16576)
+-- Name: deletion_requests id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.deletion_requests ALTER COLUMN id SET DEFAULT nextval('public.deletion_requests_id_seq'::regclass);
+
+
+--
+-- TOC entry 3314 (class 2604 OID 16505)
+-- Name: users id; Type: DEFAULT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.users ALTER COLUMN id SET DEFAULT nextval('public.users_id_seq'::regclass);
+
+
+--
+-- TOC entry 3494 (class 0 OID 16527)
+-- Dependencies: 223
+-- Data for Name: categories; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY public.categories (id, name) FROM stdin;
+1 Station météo
+2 Capteur
+3 Passerelle
+4 Anémomètre
+5 Pluviomètre
+6 Thermomètre
+7 Hygromètre
+\.
+
+
+--
+-- TOC entry 3496 (class 0 OID 16573)
+-- Dependencies: 225
+-- Data for Name: deletion_requests; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY public.deletion_requests (id, object_id, requested_by, created_at, status) FROM stdin;
+1 2 1 2025-04-13 10:45:55.942399 pending
+\.
+
+
+--
+-- TOC entry 3486 (class 0 OID 16468)
+-- Dependencies: 215
+-- Data for Name: range_data; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY public.range_data (station_id, temperature_min, temperature_max, pressure_min, pressure_max, humidity_min, humidity_max) FROM stdin;
+1 -33 42 980 1040 30 84
+2 -15 50 980 1040 30 90
+3 -15 50 980 1040 30 90
+4 -15 50 980 1040 30 90
+5 -15 50 980 1040 30 90
+6 -15 50 980 1040 30 90
+7 -15 50 980 1040 30 90
+8 -15 50 980 1040 30 90
+9 -15 50 980 1040 30 90
+10 -15 50 980 1040 30 90
+\.
+
+
+--
+-- TOC entry 3490 (class 0 OID 16502)
+-- Dependencies: 219
+-- Data for Name: users; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY public.users (id, name, surname, email, gender, password, created_at, points) FROM stdin;
+1 Jean Dupont jean.dupont@example.com homme hashed_password1 2025-03-31 15:15:17.203076 0
+2 Marie Curie marie.curie@example.com femme hashed_password2 2025-03-31 15:15:17.203076 0
+3 Albert Einstein albert.einstein@example.com homme hashed_password3 2025-03-31 15:15:17.203076 0
+4 Alice Lemoine alice@example.com femme $2a$12$QNx7sC7VBXrU7QHFhU78vunLIU3C9KiVT2KyCJ5y6G0cdJB/k0YuC 2025-03-31 16:59:25.687126 0
+15 azaz azeazae azeaze@azeaze femme $2a$12$YPEoDDRD/y2Zxh7mfTUWHuCgT9k3OlqwGWBPNpPx2yTSlfY4yHSka 2025-03-31 17:26:18.258471 0
+16 El moudden Nassef nassmaghrebi@gmail.com homme $2a$12$f6Ovl48RsbipNNsEBcVjP.DGdCYPaxlHsZ2YexpeHDAXq4UzMK3hm 2025-04-01 15:34:05.987387 0
+17 Declos Mathis md10022004@gmail.com homme $2a$12$/PufX/T..YU1Ze3yNYAkU.Ql8VqaBP7vmNXBK1Q8NniEA/Vqi37Qa 2025-04-02 11:12:36.427383 0
+19 azeaze azeaze azeaze@aeaze.com femme $2a$12$vH.MxhvC/cJ02SNZSsr9SeHYy.JWoIFLKZGKVhUHLv7b9E1rm3Dam 2025-04-04 10:40:01.71072 0
+20 Mendiburu Charles charles@gmail.com homme $2a$12$RPL.17dQ66kyZyfCST2EYePeDd/4iNhpr7hCpfBxJ7cROt/Lx1/zK 2025-04-11 19:06:41.216647 104
+18 Mendiburu Charles charles.mendi1609@gmail.com homme $2a$12$PLowdJvo.jsnzbjE9CEccucGPE5XDn9kyn2nmyWWvh8eydT4827CS 2025-04-04 08:51:44.689425 226
+\.
+
+
+--
+-- TOC entry 3487 (class 0 OID 16473)
+-- Dependencies: 216
+-- Data for Name: weather_data; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY public.weather_data (id, station_id, temperature, humidity, pressure, wind_speed, wind_direction, "timestamp") FROM stdin;
+1 1 21.50 60.20 1013.10 5.40 Nord-Ouest 2025-03-29 18:47:46.685241
+2 2 22.30 55.00 1012.50 3.20 Sud-Ouest 2025-03-29 18:47:46.685241
+3 3 24.10 50.00 1010.80 6.00 Est 2025-03-29 18:47:46.685241
+4 1 22.50 65.40 1013.20 5.50 Nord-Ouest 2025-04-12 01:33:17.747529
+5 2 19.30 70.10 1012.80 4.70 Sud-Est 2025-04-12 01:33:17.747529
+6 2 22.50 65.40 1013.20 5.50 Nord-Ouest 2025-04-12 01:34:04.077375
+7 3 19.30 70.10 1012.80 4.70 Sud-Est 2025-04-12 01:34:04.077375
+\.
+
+
+--
+-- TOC entry 3488 (class 0 OID 16477)
+-- Dependencies: 217
+-- Data for Name: weather_objects; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY public.weather_objects (id, name, description, type, location, last_update, status, batterie, type_batterie, proprio_id) FROM stdin;
+2 Station Lyon Station météo située à Lyon, France. station Lyon, France 2025-03-30 12:16:00.835834 active 100 solaire \N
+4 Station Alpha Station météo dans le centre-ville station_meteo Paris 2025-04-12 01:32:19.680121 active 80 Li-Ion 1
+5 Station Beta Station météo sur la montagne station_meteo Alpes 2025-04-12 01:32:19.680121 active 60 NiMH 2
+6 Station Gamma Station météo près de la mer station_meteo Nice 2025-04-12 01:32:19.680121 active 90 Li-Ion 3
+1 Station Paris Station météo située à Paris, France. station Paris, France 2025-04-12 01:36:03.306108 inactive 100 solaire \N
+3 Station Marseille Station météo située à Marseille, France. station Marseille, France 2025-04-12 01:36:32.314423 active 100 solaire \N
+7 Station Meteo Charles Station meteo de charles station meteo Capbreton 2025-04-12 09:29:48.565373 active \N Solaire 18
+\.
+
+
+--
+-- TOC entry 3505 (class 0 OID 0)
+-- Dependencies: 222
+-- Name: categories_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('public.categories_id_seq', 7, true);
+
+
+--
+-- TOC entry 3506 (class 0 OID 0)
+-- Dependencies: 224
+-- Name: deletion_requests_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('public.deletion_requests_id_seq', 1, true);
+
+
+--
+-- TOC entry 3507 (class 0 OID 0)
+-- Dependencies: 218
+-- Name: users_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('public.users_id_seq', 20, true);
+
+
+--
+-- TOC entry 3508 (class 0 OID 0)
+-- Dependencies: 221
+-- Name: weather_data_id_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('public.weather_data_id_seq', 7, true);
+
+
+--
+-- TOC entry 3509 (class 0 OID 0)
+-- Dependencies: 220
+-- Name: weather_objects_id_seq1; Type: SEQUENCE SET; Schema: public; Owner: postgres
+--
+
+SELECT pg_catalog.setval('public.weather_objects_id_seq1', 7, true);
+
+
+--
+-- TOC entry 3334 (class 2606 OID 16536)
+-- Name: categories categories_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.categories
+ ADD CONSTRAINT categories_name_key UNIQUE (name);
+
+
+--
+-- TOC entry 3336 (class 2606 OID 16534)
+-- Name: categories categories_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.categories
+ ADD CONSTRAINT categories_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 3338 (class 2606 OID 16580)
+-- Name: deletion_requests deletion_requests_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.deletion_requests
+ ADD CONSTRAINT deletion_requests_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 3324 (class 2606 OID 16486)
+-- Name: range_data station_meteo_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.range_data
+ ADD CONSTRAINT station_meteo_pkey PRIMARY KEY (station_id);
+
+
+--
+-- TOC entry 3330 (class 2606 OID 16514)
+-- Name: users users_email_key; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.users
+ ADD CONSTRAINT users_email_key UNIQUE (email);
+
+
+--
+-- TOC entry 3332 (class 2606 OID 16512)
+-- Name: users users_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.users
+ ADD CONSTRAINT users_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 3326 (class 2606 OID 16488)
+-- Name: weather_data weather_data_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.weather_data
+ ADD CONSTRAINT weather_data_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 3328 (class 2606 OID 16490)
+-- Name: weather_objects weather_objects_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.weather_objects
+ ADD CONSTRAINT weather_objects_pkey PRIMARY KEY (id);
+
+
+--
+-- TOC entry 3341 (class 2606 OID 16586)
+-- Name: deletion_requests fk_user; Type: FK CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.deletion_requests
+ ADD CONSTRAINT fk_user FOREIGN KEY (requested_by) REFERENCES public.users(id) ON DELETE CASCADE;
+
+
+--
+-- TOC entry 3342 (class 2606 OID 16581)
+-- Name: deletion_requests fk_weather_object; Type: FK CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.deletion_requests
+ ADD CONSTRAINT fk_weather_object FOREIGN KEY (object_id) REFERENCES public.weather_objects(id) ON DELETE CASCADE;
+
+
+--
+-- TOC entry 3339 (class 2606 OID 16491)
+-- Name: weather_data weather_data_station_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.weather_data
+ ADD CONSTRAINT weather_data_station_id_fkey FOREIGN KEY (station_id) REFERENCES public.weather_objects(id);
+
+
+--
+-- TOC entry 3340 (class 2606 OID 16517)
+-- Name: weather_objects weather_objects_proprio_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres
+--
+
+ALTER TABLE ONLY public.weather_objects
+ ADD CONSTRAINT weather_objects_proprio_id_fkey FOREIGN KEY (proprio_id) REFERENCES public.users(id) ON DELETE CASCADE;
+
+
+-- Completed on 2025-04-13 11:04:16 CEST
+
+--
+-- PostgreSQL database dump complete
+--
+