-- ---------------------------- -- Table structure for anwesenheit -- ---------------------------- DROP TABLE IF EXISTS "anwesenheit"; CREATE TABLE "anwesenheit" ( "counter_id" bigserial PRIMARY KEY, "timestamp" timestamptz(6) DEFAULT CURRENT_TIMESTAMP, "card_uid" varchar(255), "check_in_out" int2, "geraet_id" int2 ); COMMENT ON COLUMN "anwesenheit"."check_in_out" IS '1=Check In 2=Check Out , 3=Check in Manuell, 4=Check out manuell255=Automatic Check Out'; COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes'; -- ---------------------------- -- Table structure for personal_daten -- ---------------------------- DROP TABLE IF EXISTS "personal_daten"; CREATE TABLE "personal_daten" ( "personal_nummer" int4 NOT NULL PRIMARY KEY, "aktiv_beschaeftigt" bool, "vorname" varchar(255), "nachname" varchar(255), "geburtsdatum" date, "plz" varchar(255), "adresse" varchar(255), "geschlecht" int2, "card_uid" varchar(255), "hauptbeschaeftigungs_ort" int2, "arbeitszeit_per_tag" float4, "arbeitszeit_min_start" time(6), "arbeitszeit_max_ende" time(6), "vorgesetzter_pers_nr" int4 ); COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers'; DROP TABLE IF EXISTS "user_password"; CREATE TABLE "user_password" ( "personal_nummer" int4 NOT NULL PRIMARY KEY, "pass_hash" TEXT, "zuletzt_geandert" timestamp(6) DEFAULT CURRENT_TIMESTAMP ); CREATE OR REPLACE FUNCTION update_zuletzt_geandert() RETURNS TRIGGER AS $$ BEGIN -- Nur wenn hash geändert wurde IF NEW.pass_hash IS DISTINCT FROM OLD.pass_hash THEN NEW.zuletzt_geandert = now(); END IF; RETURN NEW; END; $$ LANGUAGE plpgsql; CREATE TRIGGER pass_hash_update BEFORE UPDATE ON user_password FOR EACH ROW EXECUTE FUNCTION update_zuletzt_geandert(); -- Adds crypto extension CREATE EXTENSION IF NOT EXISTS pgcrypto; -- Insert into personal_daten INSERT INTO "personal_daten" ("personal_nummer", "aktiv_beschaeftigt", "vorname", "nachname", "geburtsdatum", "plz", "adresse", "geschlecht", "card_uid", "hauptbeschaeftigungs_ort", "arbeitszeit_per_tag", "arbeitszeit_min_start", "arbeitszeit_max_ende", "vorgesetzter_pers_nr") VALUES (123, 't', 'Max', 'Mustermann', '2003-02-01', '08963', 'Altenburger Str. 44A', 1, 'acde-edca', 1, 7.5, '07:00:00', '20:00:00', 0);