chore: heygermany customer project
This commit is contained in:
105
db/sqlite/0003-recognition-dossiers.sql
Normal file
105
db/sqlite/0003-recognition-dossiers.sql
Normal file
@@ -0,0 +1,105 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user