dev1/full_schema.sql
Josh 888bdd2939
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Runtime hardening, logs, rate limits
2025-08-28 18:03:45 +00:00

546 lines
21 KiB
SQL

-- MySQL dump 10.13 Distrib 8.0.42, for Linux (x86_64)
--
-- Host: 34.67.180.54 Database: user_profile_db
-- ------------------------------------------------------
-- Server version 8.0.40-google
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!50503 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET @@SESSION.SQL_LOG_BIN= 0;
--
-- GTID state at the beginning of the backup
--
SET @@GLOBAL.GTID_PURGED=/*!80000 '+'*/ '';
--
-- Table structure for table `ai_chat_messages`
--
DROP TABLE IF EXISTS `ai_chat_messages`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_chat_messages` (
`id` bigint NOT NULL AUTO_INCREMENT,
`thread_id` char(36) NOT NULL,
`user_id` bigint NOT NULL,
`role` enum('user','assistant','system') NOT NULL,
`content` mediumtext NOT NULL,
`meta_json` json DEFAULT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `thread_id` (`thread_id`,`created_at`),
CONSTRAINT `fk_chat_thread` FOREIGN KEY (`thread_id`) REFERENCES `ai_chat_threads` (`id`) ON DELETE CASCADE,
CONSTRAINT `fk_messages_thread` FOREIGN KEY (`thread_id`) REFERENCES `ai_chat_threads` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ai_chat_threads`
--
DROP TABLE IF EXISTS `ai_chat_threads`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_chat_threads` (
`id` char(36) NOT NULL,
`user_id` bigint NOT NULL,
`bot_type` enum('support','retire','coach') NOT NULL,
`title` varchar(200) DEFAULT NULL,
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`,`bot_type`,`updated_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ai_generated_ksa`
--
DROP TABLE IF EXISTS `ai_generated_ksa`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_generated_ksa` (
`id` int NOT NULL AUTO_INCREMENT,
`soc_code` varchar(50) NOT NULL,
`career_title` varchar(255) NOT NULL,
`knowledge_json` mediumtext,
`skills_json` mediumtext,
`abilities_json` mediumtext,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `soc_code` (`soc_code`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `ai_risk_analysis`
--
DROP TABLE IF EXISTS `ai_risk_analysis`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `ai_risk_analysis` (
`soc_code` varchar(10) NOT NULL,
`career_name` text,
`job_description` text,
`tasks` text,
`risk_level` varchar(50) DEFAULT NULL,
`reasoning` text,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`soc_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `career_profiles`
--
DROP TABLE IF EXISTS `career_profiles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `career_profiles` (
`id` varchar(36) NOT NULL,
`user_id` int NOT NULL,
`career_name` varchar(255) DEFAULT NULL,
`status` varchar(100) DEFAULT NULL,
`start_date` varchar(128) DEFAULT NULL,
`retirement_start_date` varchar(128) DEFAULT NULL,
`college_enrollment_status` varchar(100) DEFAULT NULL,
`currently_working` varchar(10) DEFAULT NULL,
`planned_monthly_expenses` varchar(128) DEFAULT NULL,
`planned_monthly_debt_payments` varchar(128) DEFAULT NULL,
`planned_monthly_retirement_contribution` varchar(128) DEFAULT NULL,
`planned_monthly_emergency_contribution` varchar(128) DEFAULT NULL,
`planned_surplus_emergency_pct` varchar(128) DEFAULT NULL,
`planned_surplus_retirement_pct` varchar(128) DEFAULT NULL,
`planned_additional_income` varchar(128) DEFAULT NULL,
`scenario_title` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP,
`career_goals` mediumtext,
`desired_retirement_income_monthly` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`career_name`),
CONSTRAINT `fk_career_profiles_user` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `college_profiles`
--
DROP TABLE IF EXISTS `college_profiles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `college_profiles` (
`id` varchar(36) NOT NULL,
`user_id` int NOT NULL,
`career_profile_id` varchar(36) DEFAULT NULL,
`selected_school` varchar(512) DEFAULT NULL,
`selected_program` varchar(512) DEFAULT NULL,
`program_type` varchar(50) DEFAULT NULL,
`academic_calendar` varchar(50) DEFAULT NULL,
`is_in_state` tinyint DEFAULT NULL,
`is_in_district` tinyint DEFAULT NULL,
`is_online` tinyint DEFAULT NULL,
`college_enrollment_status` varchar(50) DEFAULT NULL,
`annual_financial_aid` varchar(128) DEFAULT NULL,
`existing_college_debt` varchar(128) DEFAULT NULL,
`tuition` varchar(128) DEFAULT NULL,
`tuition_paid` varchar(128) DEFAULT NULL,
`loan_deferral_until_graduation` varchar(128) DEFAULT NULL,
`loan_term` varchar(128) DEFAULT NULL,
`interest_rate` varchar(128) DEFAULT NULL,
`extra_payment` varchar(128) DEFAULT NULL,
`credit_hours_per_year` decimal(5,2) DEFAULT NULL,
`hours_completed` decimal(5,1) DEFAULT NULL,
`program_length` decimal(5,2) DEFAULT NULL,
`credit_hours_required` decimal(5,2) DEFAULT NULL,
`expected_graduation` date DEFAULT NULL,
`expected_salary` varchar(128) DEFAULT NULL,
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP,
`enrollment_date` date DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_user_school_prog` (`user_id`,`career_profile_id`,`selected_school`(192),`selected_program`(192),`program_type`),
KEY `idx_school` (`selected_school`(191)),
KEY `idx_program` (`selected_program`(191)),
KEY `idx_school_prog` (`selected_school`(191),`selected_program`(191)),
KEY `idx_college_user` (`user_id`),
KEY `idx_college_career` (`career_profile_id`),
CONSTRAINT `fk_college_profiles_career` FOREIGN KEY (`career_profile_id`) REFERENCES `career_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_college_profiles_user` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `context_cache`
--
DROP TABLE IF EXISTS `context_cache`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `context_cache` (
`user_id` bigint NOT NULL,
`career_profile_id` varchar(36) NOT NULL,
`ctx_hash` char(40) NOT NULL,
`ctx_text` mediumtext,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`,`career_profile_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `encryption_canary`
--
DROP TABLE IF EXISTS `encryption_canary`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `encryption_canary` (
`id` tinyint NOT NULL,
`value` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `financial_profiles`
--
DROP TABLE IF EXISTS `financial_profiles`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `financial_profiles` (
`user_id` int NOT NULL,
`current_salary` varchar(128) DEFAULT NULL,
`additional_income` varchar(128) DEFAULT NULL,
`monthly_expenses` varchar(128) DEFAULT NULL,
`monthly_debt_payments` varchar(128) DEFAULT NULL,
`retirement_savings` varchar(128) DEFAULT NULL,
`emergency_fund` varchar(128) DEFAULT NULL,
`retirement_contribution` varchar(128) DEFAULT NULL,
`emergency_contribution` varchar(128) DEFAULT NULL,
`extra_cash_emergency_pct` varchar(64) DEFAULT NULL,
`extra_cash_retirement_pct` varchar(64) DEFAULT NULL,
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
CONSTRAINT `fk_financial_profiles_user` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `financial_projections`
--
DROP TABLE IF EXISTS `financial_projections`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `financial_projections` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL,
`career_profile_id` varchar(36) DEFAULT NULL,
`projection_data` text NOT NULL,
`loan_paid_off_month` varchar(20) DEFAULT NULL,
`final_emergency_savings` decimal(10,2) DEFAULT '0.00',
`final_retirement_savings` decimal(10,2) DEFAULT '0.00',
`final_loan_balance` decimal(10,2) DEFAULT '0.00',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_financial_projections_user` (`user_id`),
KEY `fk_financial_projections_career` (`career_profile_id`),
CONSTRAINT `fk_financial_projections_career` FOREIGN KEY (`career_profile_id`) REFERENCES `career_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_financial_projections_user` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `milestone_impacts`
--
DROP TABLE IF EXISTS `milestone_impacts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `milestone_impacts` (
`id` varchar(36) NOT NULL,
`milestone_id` varchar(36) NOT NULL,
`impact_type` varchar(255) DEFAULT NULL,
`direction` varchar(255) DEFAULT NULL,
`amount` varchar(128) DEFAULT NULL,
`start_date` varchar(255) DEFAULT NULL,
`end_date` varchar(255) DEFAULT NULL,
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `milestones`
--
DROP TABLE IF EXISTS `milestones`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `milestones` (
`id` varchar(36) NOT NULL,
`user_id` int NOT NULL,
`title` varchar(255) DEFAULT NULL,
`description` mediumtext,
`date` varchar(128) DEFAULT NULL,
`progress` varchar(128) DEFAULT NULL,
`status` varchar(50) DEFAULT 'planned',
`career_profile_id` varchar(36) DEFAULT NULL,
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP,
`is_universal` tinyint DEFAULT '0',
`origin_milestone_id` varchar(36) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `fk_milestones_user` (`user_id`),
KEY `fk_milestones_career` (`career_profile_id`),
CONSTRAINT `fk_milestones_career` FOREIGN KEY (`career_profile_id`) REFERENCES `career_profiles` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `fk_milestones_user` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `onboarding_drafts`
--
DROP TABLE IF EXISTS `onboarding_drafts`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `onboarding_drafts` (
`user_id` bigint NOT NULL,
`id` char(36) NOT NULL,
`step` tinyint NOT NULL DEFAULT '0',
`data` json NOT NULL,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`),
UNIQUE KEY `uniq_id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `password_resets`
--
DROP TABLE IF EXISTS `password_resets`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `password_resets` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`token_hash` char(64) NOT NULL,
`expires_at` bigint NOT NULL,
`used_at` bigint DEFAULT NULL,
`created_at` bigint NOT NULL,
`ip` varchar(64) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `email` (`email`),
KEY `token_hash` (`token_hash`),
KEY `expires_at` (`expires_at`),
KEY `idx_password_resets_token_hash` (`token_hash`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `reminders`
--
DROP TABLE IF EXISTS `reminders`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `reminders` (
`id` char(36) NOT NULL,
`user_id` int NOT NULL,
`phone_e164` varchar(128) DEFAULT NULL,
`message_body` mediumtext,
`send_at_utc` datetime NOT NULL,
`sent_at` datetime DEFAULT NULL,
`status` enum('pending','sent','failed') DEFAULT 'pending',
`twilio_sid` varchar(64) DEFAULT NULL,
`error_code` varchar(32) DEFAULT NULL,
`error_message` text,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_reminders_user` (`user_id`),
CONSTRAINT `fk_reminders_user` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `salary_data`
--
DROP TABLE IF EXISTS `salary_data`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `salary_data` (
`AREA` varchar(10) DEFAULT NULL,
`AREA_TITLE` varchar(255) DEFAULT NULL,
`AREA_TYPE` int DEFAULT NULL,
`PRIM_STATE` varchar(10) DEFAULT NULL,
`NAICS` varchar(10) DEFAULT NULL,
`NAICS_TITLE` varchar(255) DEFAULT NULL,
`I_GROUP` varchar(50) DEFAULT NULL,
`OWN_CODE` varchar(10) DEFAULT NULL,
`OCC_CODE` varchar(10) DEFAULT NULL,
`OCC_TITLE` varchar(255) DEFAULT NULL,
`O_GROUP` varchar(50) DEFAULT NULL,
`TOT_EMP` int DEFAULT NULL,
`EMP_PRSE` decimal(10,2) DEFAULT NULL,
`JOBS_1000` decimal(10,2) DEFAULT NULL,
`LOC_QUOTIENT` decimal(10,2) DEFAULT NULL,
`PCT_TOTAL` decimal(10,2) DEFAULT NULL,
`PCT_RPT` decimal(10,2) DEFAULT NULL,
`H_MEAN` decimal(10,2) DEFAULT NULL,
`A_MEAN` int DEFAULT NULL,
`MEAN_PRSE` decimal(10,2) DEFAULT NULL,
`H_PCT10` decimal(10,2) DEFAULT NULL,
`H_PCT25` decimal(10,2) DEFAULT NULL,
`H_MEDIAN` decimal(10,2) DEFAULT NULL,
`H_PCT75` decimal(10,2) DEFAULT NULL,
`H_PCT90` decimal(10,2) DEFAULT NULL,
`A_PCT10` int DEFAULT NULL,
`A_PCT25` int DEFAULT NULL,
`A_MEDIAN` int DEFAULT NULL,
`A_PCT75` int DEFAULT NULL,
`A_PCT90` int DEFAULT NULL,
`ANNUAL` tinyint(1) DEFAULT NULL,
`HOURLY` tinyint(1) DEFAULT NULL,
`JOB_ZONE` int DEFAULT NULL,
`limited_data` tinyint(1) DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `stripe_events`
--
DROP TABLE IF EXISTS `stripe_events`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `stripe_events` (
`id` varchar(255) NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `tasks`
--
DROP TABLE IF EXISTS `tasks`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `tasks` (
`id` varchar(36) NOT NULL,
`milestone_id` varchar(36) NOT NULL,
`user_id` int NOT NULL,
`title` varchar(255) DEFAULT NULL,
`description` mediumtext,
`due_date` varchar(255) DEFAULT NULL,
`status` varchar(255) DEFAULT 'not_started',
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `fk_tasks_user` (`user_id`),
CONSTRAINT `fk_tasks_user` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_auth`
--
DROP TABLE IF EXISTS `user_auth`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_auth` (
`id` int NOT NULL AUTO_INCREMENT,
`user_id` int NOT NULL,
`username` varchar(255) NOT NULL,
`hashed_password` text NOT NULL,
`password_changed_at` bigint unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`),
KEY `ix_user_auth_userid_changedat` (`user_id`,`password_changed_at`),
CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user_profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Table structure for table `user_profile`
--
DROP TABLE IF EXISTS `user_profile`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user_profile` (
`id` int NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`firstname` varchar(400) DEFAULT NULL,
`lastname` varchar(400) DEFAULT NULL,
`email` varchar(512) DEFAULT NULL,
`email_lookup` char(64) NOT NULL DEFAULT '',
`phone_e164` varchar(128) DEFAULT NULL,
`sms_opt_in` tinyint(1) NOT NULL DEFAULT '0',
`zipcode` varchar(64) DEFAULT NULL,
`state` varchar(50) NOT NULL,
`area` varchar(255) NOT NULL,
`is_premium` tinyint DEFAULT '0',
`is_pro_premium` tinyint DEFAULT '0',
`stripe_customer_id` varchar(128) DEFAULT NULL,
`career_situation` text,
`interest_inventory_answers` mediumtext,
`riasec_scores` varchar(768) DEFAULT NULL,
`resume_optimizations_used` int DEFAULT '0',
`resume_limit_reset` date DEFAULT NULL,
`resume_booster_count` int DEFAULT '0',
`career_priorities` mediumtext,
`career_list` mediumtext,
`stripe_customer_id_hash` char(64) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `stripe_customer_id` (`stripe_customer_id`),
KEY `idx_customer_hash` (`stripe_customer_id_hash`),
KEY `idx_user_profile_email_lookup` (`email_lookup`)
) ENGINE=InnoDB AUTO_INCREMENT=64 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping events for database 'user_profile_db'
--
--
-- Dumping routines for database 'user_profile_db'
--
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2025-08-27 16:38:46