42 lines
1.3 KiB
SQL
42 lines
1.3 KiB
SQL
CREATE DATABASE IF NOT EXISTS job_matcher_db;
|
|
USE job_matcher_db;
|
|
|
|
CREATE TABLE IF NOT EXISTS jobs (
|
|
job_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
title VARCHAR(255) NOT NULL,
|
|
company VARCHAR(255),
|
|
location VARCHAR(255),
|
|
posted_date_raw VARCHAR(100),
|
|
job_link VARCHAR(512) UNIQUE NOT NULL,
|
|
is_actively_hiring BOOLEAN DEFAULT FALSE,
|
|
description TEXT DEFAULT NULL,
|
|
match_score INT DEFAULT NULL,
|
|
match_breakdown JSON DEFAULT NULL,
|
|
matched_skills JSON DEFAULT NULL,
|
|
missing_skills JSON DEFAULT NULL,
|
|
verdict VARCHAR(50) DEFAULT NULL,
|
|
detail_fetched_at DATETIME DEFAULT NULL,
|
|
scored_at DATETIME DEFAULT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX idx_match_score (match_score),
|
|
INDEX idx_verdict (verdict)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS users (
|
|
user_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
telegram_token VARCHAR(255) NOT NULL,
|
|
telegram_chat_id VARCHAR(50) NOT NULL,
|
|
min_match_score INT DEFAULT 70,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS alert_logs (
|
|
alert_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id INT NOT NULL,
|
|
job_id INT NOT NULL,
|
|
alerted_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE KEY unique_user_job (user_id, job_id),
|
|
FOREIGN KEY (user_id) REFERENCES users(user_id),
|
|
FOREIGN KEY (job_id) REFERENCES jobs(job_id)
|
|
);
|