-- Скрипт для создания таблицы vacancies и связанных объектов
-- Выполните этот скрипт, если таблица vacancies отсутствует в базе данных

-- Создание типа vacancy_status (если не существует)
DO $$ 
BEGIN
    IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'vacancy_status') THEN
        CREATE TYPE vacancy_status AS ENUM ('urgent', 'active', 'paused', 'closed');
    END IF;
END$$;

-- Создание таблицы vacancies
CREATE TABLE IF NOT EXISTS vacancies (
  id                VARCHAR(50) PRIMARY KEY,
  position          TEXT NOT NULL, -- Название должности
  department        TEXT NOT NULL, -- Отдел
  status            vacancy_status NOT NULL DEFAULT 'active',
  salary            TEXT, -- Вилка зарплаты (например, "55 000 - 65 000 ₽")
  description       TEXT NOT NULL, -- Описание вакансии
  requirements      TEXT, -- Требования к кандидату
  conditions        TEXT, -- Условия работы
  responsibilities  TEXT, -- Обязанности
  posted_date       DATE NOT NULL DEFAULT CURRENT_DATE, -- Дата публикации
  closing_date      DATE, -- Дата закрытия вакансии
  applicants_count  INTEGER DEFAULT 0, -- Количество откликов
  created_at        TIMESTAMPTZ NOT NULL DEFAULT NOW(),
  updated_at        TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

-- Создание индексов
CREATE INDEX IF NOT EXISTS idx_vacancies_status ON vacancies(status);
CREATE INDEX IF NOT EXISTS idx_vacancies_department ON vacancies(department);
CREATE INDEX IF NOT EXISTS idx_vacancies_posted_date ON vacancies(posted_date DESC);
