chore: heygermany customer project
Some checks failed
Main / Setup and Test (push) Has been cancelled
Main / Build Website (push) Has been cancelled

This commit is contained in:
e2e
2026-07-11 10:52:27 +02:00
commit 6c231d1d36
370 changed files with 35571 additions and 0 deletions

View File

@@ -0,0 +1,99 @@
-- Create enums for states (using German names), countries (using ISO codes for i18n), and language levels
CREATE TYPE app.german_state AS ENUM (
'Baden-Württemberg',
'Bayern',
'Berlin',
'Brandenburg',
'Bremen',
'Hamburg',
'Hessen',
'Mecklenburg-Vorpommern',
'Niedersachsen',
'Nordrhein-Westfalen',
'Rheinland-Pfalz',
'Saarland',
'Sachsen',
'Sachsen-Anhalt',
'Schleswig-Holstein',
'Thüringen'
);
CREATE TYPE app.education_country AS ENUM (
'AL', -- Albania
'BA', -- Bosnia and Herzegovina
'IN', -- India
'MX', -- Mexico
'PH', -- Philippines
'SY', -- Syria
'TN', -- Tunisia
'TR', -- Turkey
'UA', -- Ukraine
'VN' -- Vietnam
);
CREATE TYPE app.language_level AS ENUM (
'A_ONE',
'A_TWO',
'B_ONE',
'B_TWO',
'C_ONE',
'C_TWO'
);
CREATE TYPE app.candidate_document_type AS ENUM (
'education',
'transcript',
'license',
'language',
'work_experience'
);
CREATE TABLE app.candidate (
candidate_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR NOT NULL,
name VARCHAR NOT NULL,
-- Basic info
state_work_preference app.german_state[],
open_to_work BOOLEAN,
living_in_germany BOOLEAN,
eu_passport BOOLEAN,
country_education app.education_country,
-- License info
license_provided BOOLEAN,
-- Language info
language_certificate_provided BOOLEAN,
language_self_assessment_level app.language_level,
submitted_at TIMESTAMPTZ,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
last_updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE app.candidate_document (
document_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
candidate_id UUID NOT NULL REFERENCES app.candidate,
category app.candidate_document_type NOT NULL,
title VARCHAR,
note VARCHAR,
file_path VARCHAR NOT NULL,
file_name VARCHAR NOT NULL,
file_size INTEGER,
mime_type VARCHAR,
uploaded BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
last_updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
-- Add triggers for timestamp updates
CREATE TRIGGER update_candidate_timestamp
BEFORE UPDATE ON app.candidate
FOR EACH ROW EXECUTE PROCEDURE app.update_lastupdated_timestamp();
CREATE TRIGGER update_candidate_document_timestamp
BEFORE UPDATE ON app.candidate_document
FOR EACH ROW EXECUTE PROCEDURE app.update_lastupdated_timestamp();