--
-- PostgreSQL database dump
--

\restrict U4ZPouldk2Avdiltgfe87M8gEOxUJwD1EJjCbMjd9cttbaBKboe28GpgyRS6Igw

-- Dumped from database version 16.9 (415ebe8)
-- Dumped by pg_dump version 16.10

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;

--
-- Name: detections; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.detections (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    source_ip text NOT NULL,
    risk_score numeric(5,2) NOT NULL,
    confidence numeric(5,2) NOT NULL,
    anomaly_type text NOT NULL,
    reason text,
    log_count integer NOT NULL,
    first_seen timestamp without time zone NOT NULL,
    last_seen timestamp without time zone NOT NULL,
    blocked boolean DEFAULT false NOT NULL,
    blocked_at timestamp without time zone,
    detected_at timestamp without time zone DEFAULT now() NOT NULL
);


--
-- Name: network_logs; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.network_logs (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    router_id character varying NOT NULL,
    "timestamp" timestamp without time zone NOT NULL,
    source_ip text NOT NULL,
    dest_ip text,
    source_port integer,
    dest_port integer,
    protocol text,
    action text,
    bytes integer,
    packets integer,
    logged_at timestamp without time zone DEFAULT now() NOT NULL
);


--
-- Name: routers; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.routers (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    name text NOT NULL,
    ip_address text NOT NULL,
    api_port integer DEFAULT 8728 NOT NULL,
    username text NOT NULL,
    password text NOT NULL,
    enabled boolean DEFAULT true NOT NULL,
    last_sync timestamp without time zone,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


--
-- Name: training_history; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.training_history (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    model_version text NOT NULL,
    records_processed integer NOT NULL,
    features_count integer NOT NULL,
    accuracy numeric(5,2),
    training_duration integer,
    status text NOT NULL,
    notes text,
    trained_at timestamp without time zone DEFAULT now() NOT NULL
);


--
-- Name: whitelist; Type: TABLE; Schema: public; Owner: -
--

CREATE TABLE public.whitelist (
    id character varying DEFAULT gen_random_uuid() NOT NULL,
    ip_address text NOT NULL,
    comment text,
    reason text,
    created_by text,
    active boolean DEFAULT true NOT NULL,
    created_at timestamp without time zone DEFAULT now() NOT NULL
);


--
-- Name: detections detections_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.detections
    ADD CONSTRAINT detections_pkey PRIMARY KEY (id);


--
-- Name: network_logs network_logs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.network_logs
    ADD CONSTRAINT network_logs_pkey PRIMARY KEY (id);


--
-- Name: routers routers_ip_address_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.routers
    ADD CONSTRAINT routers_ip_address_unique UNIQUE (ip_address);


--
-- Name: routers routers_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.routers
    ADD CONSTRAINT routers_pkey PRIMARY KEY (id);


--
-- Name: training_history training_history_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.training_history
    ADD CONSTRAINT training_history_pkey PRIMARY KEY (id);


--
-- Name: whitelist whitelist_ip_address_unique; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.whitelist
    ADD CONSTRAINT whitelist_ip_address_unique UNIQUE (ip_address);


--
-- Name: whitelist whitelist_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.whitelist
    ADD CONSTRAINT whitelist_pkey PRIMARY KEY (id);


--
-- Name: detected_at_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX detected_at_idx ON public.detections USING btree (detected_at);


--
-- Name: detection_source_ip_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX detection_source_ip_idx ON public.detections USING btree (source_ip);


--
-- Name: risk_score_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX risk_score_idx ON public.detections USING btree (risk_score);


--
-- Name: router_id_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX router_id_idx ON public.network_logs USING btree (router_id);


--
-- Name: source_ip_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX source_ip_idx ON public.network_logs USING btree (source_ip);


--
-- Name: timestamp_idx; Type: INDEX; Schema: public; Owner: -
--

CREATE INDEX timestamp_idx ON public.network_logs USING btree ("timestamp");


--
-- Name: network_logs network_logs_router_id_routers_id_fk; Type: FK CONSTRAINT; Schema: public; Owner: -
--

ALTER TABLE ONLY public.network_logs
    ADD CONSTRAINT network_logs_router_id_routers_id_fk FOREIGN KEY (router_id) REFERENCES public.routers(id);


--
-- PostgreSQL database dump complete
--

\unrestrict U4ZPouldk2Avdiltgfe87M8gEOxUJwD1EJjCbMjd9cttbaBKboe28GpgyRS6Igw

