79 lines
2.7 KiB
SQL
79 lines
2.7 KiB
SQL
-- Миграция: создание таблицы cases согласно §10 контекста
|
|
|
|
DROP TABLE IF EXISTS search_results CASCADE;
|
|
DROP TABLE IF EXISTS search_cases CASCADE;
|
|
|
|
CREATE TABLE IF NOT EXISTS cases (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
created_at TIMESTAMP DEFAULT NOW(),
|
|
status VARCHAR(20) DEFAULT 'active',
|
|
|
|
child_name VARCHAR(255),
|
|
age_years INTEGER NOT NULL,
|
|
gender CHAR(1),
|
|
clothes_description TEXT,
|
|
special_marks TEXT,
|
|
phone_status VARCHAR(20),
|
|
|
|
has_diagnosis BOOLEAN DEFAULT FALSE,
|
|
diagnosis_type VARCHAR[],
|
|
fitness_level VARCHAR(20),
|
|
has_transport VARCHAR(20) DEFAULT 'none',
|
|
cant_swim BOOLEAN DEFAULT FALSE,
|
|
|
|
psychotype VARCHAR(50),
|
|
psychotype_answers JSONB,
|
|
|
|
loss_reason VARCHAR(100),
|
|
loss_time TIMESTAMP,
|
|
elapsed_hours FLOAT,
|
|
last_seen_direction VARCHAR(10),
|
|
last_seen_reliability VARCHAR(20),
|
|
last_seen_description TEXT,
|
|
behavior_description TEXT,
|
|
familiar_places TEXT,
|
|
lost_before VARCHAR(20),
|
|
|
|
season VARCHAR(20),
|
|
temperature_c FLOAT,
|
|
precipitation VARCHAR(20),
|
|
visibility VARCHAR(20),
|
|
wind VARCHAR(20),
|
|
terrain VARCHAR[],
|
|
|
|
tnp_lat FLOAT,
|
|
tnp_lon FLOAT,
|
|
tnp_address TEXT,
|
|
|
|
teams_count INTEGER,
|
|
team_size INTEGER,
|
|
has_dog BOOLEAN DEFAULT FALSE,
|
|
extra_resources VARCHAR[],
|
|
|
|
found_alive BOOLEAN,
|
|
found_distance_km FLOAT,
|
|
found_direction VARCHAR(10),
|
|
found_location_type VARCHAR(50),
|
|
found_lat FLOAT,
|
|
found_lon FLOAT,
|
|
search_duration_hours FLOAT,
|
|
who_found VARCHAR(50),
|
|
|
|
confidence_avg FLOAT,
|
|
raw_text TEXT,
|
|
analysis_log JSONB
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_cases_coords ON cases (found_lat, found_lon);
|
|
CREATE INDEX IF NOT EXISTS idx_cases_age_season ON cases (age_years, season);
|
|
CREATE INDEX IF NOT EXISTS idx_cases_status ON cases (status);
|
|
|
|
DROP TABLE IF EXISTS raw_documents CASCADE;
|
|
CREATE TABLE IF NOT EXISTS raw_documents (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
filename VARCHAR(255) NOT NULL,
|
|
raw_text TEXT,
|
|
extracted_json JSONB,
|
|
created_at TIMESTAMP DEFAULT NOW()
|
|
);
|