-- ============================================================
-- WellNuo Database Initial Schema
-- Database: PostgreSQL on eluxnetworks.net:5432/wellnuo_app
-- Date: 2025-12-19
-- Description: Snapshot of existing database structure
-- ============================================================

-- This file documents the existing schema. DO NOT RUN - it's for reference only.
-- The tables already exist in the database.

-- ============================================================
-- TABLE: person_details (Users & Authentication)
-- ============================================================
-- CREATE TABLE person_details (
--     user_id               INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
--     role_ids              TEXT,           -- "1,2" = roles (1=beneficiary, 2=caretaker, 3=admin)
--     access_to_deployments TEXT,           -- "21,38,29" = comma-separated deployment IDs
--     email                 TEXT,
--     user_name             TEXT,           -- login username
--     first_name            TEXT,
--     last_name             TEXT,
--     address_street        TEXT,
--     address_city          TEXT,
--     address_zip           TEXT,
--     address_state         TEXT,
--     address_country       TEXT,
--     time_edit             REAL,           -- unix timestamp of last edit
--     user_edit             INTEGER,        -- user who made last edit
--     phone_number          TEXT,
--     picture               TEXT,           -- URL to avatar
--     key                   TEXT            -- PASSWORD IN PLAIN TEXT! (needs migration)
-- );

-- ============================================================
-- TABLE: deployments (Monitored Locations)
-- ============================================================
-- CREATE TABLE deployments (
--     deployment_id   INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
--     time_edit       REAL,
--     user_edit       INTEGER,
--     time_zone_s     TEXT,           -- "America/Los_Angeles"
--     persons         INTEGER,        -- number of people
--     gender          INTEGER,        -- 0-2
--     race            INTEGER,
--     born            INTEGER,        -- birth year
--     pets            INTEGER,
--     context         TEXT,           -- notes about beneficiary
--     alarm_details   TEXT            -- JSON with alarm configuration
-- );

-- ============================================================
-- TABLE: deployment_details (Extended Deployment Info)
-- ============================================================
-- CREATE TABLE deployment_details (
--     deployment_id   INTEGER PRIMARY KEY,
--     beneficiary_id  INTEGER,        -- FK to person_details
--     caretaker_id    INTEGER,        -- FK to person_details
--     owner_id        INTEGER,
--     installer_id    INTEGER,
--     devices         TEXT,           -- JSON array of device MACs
--     address_street  TEXT,
--     address_city    TEXT,
--     address_zip     TEXT,
--     address_state   TEXT,
--     address_country TEXT,
--     wifis           TEXT,
--     lat             REAL,
--     lng             REAL,
--     gps_age         INTEGER,
--     note            TEXT,
--     floor_plan      TEXT,           -- JSON layout
--     overlapps       TEXT
-- );

-- ============================================================
-- TABLE: devices (IoT Sensors)
-- ============================================================
-- CREATE TABLE devices (
--     device_id          INTEGER PRIMARY KEY,
--     device_mac         TEXT NOT NULL,
--     well_id            INTEGER,        -- FK to deployment
--     description        TEXT,
--     location           INTEGER,        -- room type
--     close_to           TEXT,
--     radar_threshold    TEXT,
--     fw_version         TEXT,
--     hw_version         TEXT,
--     ble_scan_period    INTEGER,
--     ble_scan_duration  INTEGER,
--     temperature_calib  TEXT,
--     humidity_calib     TEXT,
--     reporting_period_s INTEGER,
--     reboot_time        REAL,
--     led_schema         TEXT,
--     alert_details      TEXT,
--     other              TEXT,
--     group_id           INTEGER,
--     UNIQUE(well_id, device_mac)
-- );

-- ============================================================
-- TABLE: disclaimers (User Agreements)
-- ============================================================
-- CREATE TABLE disclaimers (
--     id              INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
--     first_name      TEXT,
--     last_name       TEXT,
--     user_name       TEXT,
--     email           TEXT,
--     devices         TEXT,
--     date            TIMESTAMPTZ,
--     policy_version  TEXT
-- );

-- ============================================================
-- TABLE: deployment_history (Audit Log)
-- ============================================================
-- Already exists - tracks changes to deployments

-- ============================================================
-- TABLE: _migrations (Migration Tracking)
-- ============================================================
-- Created by this setup
-- CREATE TABLE _migrations (
--     id SERIAL PRIMARY KEY,
--     name VARCHAR(255) NOT NULL UNIQUE,
--     applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
--     applied_by VARCHAR(100) DEFAULT 'claude',
--     description TEXT
-- );

-- ============================================================
-- STATISTICS (as of 2025-12-19)
-- ============================================================
-- person_details:     8 rows
-- deployments:       45 rows
-- deployment_details: 23 rows (subset of deployments)
-- devices:          455 rows
-- disclaimers:        ? rows

-- ============================================================
-- KNOWN ISSUES
-- ============================================================
-- 1. person_details.key stores passwords in PLAIN TEXT
--    → Need migration 002_add_password_hash.sql
--
-- 2. access_to_deployments is TEXT with comma-separated IDs
--    → Should be junction table, but works for now
--
-- 3. No push_tokens table yet
--    → Need migration 003_create_push_tokens.sql
