Files
heygermany-e2e-mrg5ct1q/db/sqlite/0003-recognition-dossiers.sql
e2e 2c4174b44b
Some checks failed
Main / Setup and Test (push) Has been cancelled
Main / Build Website (push) Has been cancelled
chore: heygermany customer project
2026-07-11 11:13:08 +02:00

106 lines
3.2 KiB
SQL

PRAGMA foreign_keys = OFF;
CREATE TABLE IF NOT EXISTS "candidate_experience_v2" (
"experience_id" TEXT PRIMARY KEY,
"candidate_id" TEXT NOT NULL REFERENCES "candidate"("candidate_id") ON DELETE CASCADE,
"employer_name" TEXT,
"role_title" TEXT,
"department" TEXT,
"start_date" DATE,
"end_date" DATE,
"created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
"last_updated_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
"country" TEXT,
"city" TEXT,
"facility_type" TEXT
);
INSERT INTO "candidate_experience_v2" (
"experience_id",
"candidate_id",
"employer_name",
"role_title",
"department",
"start_date",
"end_date",
"created_at",
"last_updated_at",
"country",
"city",
"facility_type"
)
SELECT
"experience_id",
"candidate_id",
"employer_name",
"role_title",
"department",
"start_date",
"end_date",
"created_at",
"last_updated_at",
"country",
"city",
"facility_type"
FROM "candidate_experience";
DROP TABLE "candidate_experience";
ALTER TABLE "candidate_experience_v2" RENAME TO "candidate_experience";
CREATE INDEX IF NOT EXISTS "idx_candidate_experience_candidate_id"
ON "candidate_experience" ("candidate_id");
CREATE TABLE IF NOT EXISTS "recognition_dossier" (
"dossier_id" TEXT PRIMARY KEY,
"candidate_id" TEXT NOT NULL REFERENCES "candidate"("candidate_id") ON DELETE CASCADE,
"target_state" TEXT NOT NULL,
"target_profession" TEXT NOT NULL,
"status" TEXT NOT NULL DEFAULT 'draft',
"rules_version" TEXT,
"input_fingerprint" TEXT,
"generated_at" TIMESTAMP,
"package_file_path" TEXT,
"submission_guide_json" JSON NOT NULL DEFAULT '{}',
"checklist_json" JSON NOT NULL DEFAULT '[]',
"blocking_issues_json" JSON NOT NULL DEFAULT '[]',
"created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
"last_updated_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX IF NOT EXISTS "idx_recognition_dossier_candidate_state_profession"
ON "recognition_dossier" ("candidate_id", "target_state", "target_profession");
CREATE INDEX IF NOT EXISTS "idx_recognition_dossier_candidate_id"
ON "recognition_dossier" ("candidate_id");
CREATE INDEX IF NOT EXISTS "idx_recognition_dossier_status"
ON "recognition_dossier" ("status");
CREATE TABLE IF NOT EXISTS "recognition_dossier_document" (
"document_id" TEXT PRIMARY KEY,
"dossier_id" TEXT NOT NULL REFERENCES "recognition_dossier"("dossier_id") ON DELETE CASCADE,
"candidate_id" TEXT NOT NULL REFERENCES "candidate"("candidate_id") ON DELETE CASCADE,
"category" TEXT NOT NULL,
"title" TEXT,
"note" TEXT,
"file_path" TEXT NOT NULL,
"file_name" TEXT NOT NULL,
"file_size" INTEGER,
"mime_type" TEXT,
"uploaded" BOOLEAN NOT NULL DEFAULT 0,
"document_status" TEXT NOT NULL DEFAULT 'Unverified',
"created_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
"last_updated_at" TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS "idx_recognition_dossier_document_dossier_id"
ON "recognition_dossier_document" ("dossier_id");
CREATE INDEX IF NOT EXISTS "idx_recognition_dossier_document_candidate_id"
ON "recognition_dossier_document" ("candidate_id");
CREATE INDEX IF NOT EXISTS "idx_recognition_dossier_document_category"
ON "recognition_dossier_document" ("category");
PRAGMA foreign_keys = ON;