Initial commit: Add Docker setup, database schema, and basic PHP application structure

This commit is contained in:
Troy Grunt
2026-02-01 17:14:55 +01:00
parent 52dc3b4536
commit 21e2eebe48
6 changed files with 129 additions and 0 deletions

55
db/init/001_schema.sql Normal file
View File

@@ -0,0 +1,55 @@
-- Identitäten
CREATE TABLE identities (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Stammdaten (Key-Value)
CREATE TABLE identity_fields (
id INT AUTO_INCREMENT PRIMARY KEY,
identity_id INT NOT NULL,
field_key VARCHAR(50) NOT NULL,
field_value TEXT NOT NULL,
FOREIGN KEY (identity_id)
REFERENCES identities(id)
ON DELETE CASCADE
) ENGINE=InnoDB;
-- Zugriffstoken (UUIDs)
CREATE TABLE access_tokens (
id INT AUTO_INCREMENT PRIMARY KEY,
identity_id INT NOT NULL,
uuid CHAR(36) NOT NULL UNIQUE,
expires_at DATETIME NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (identity_id)
REFERENCES identities(id)
ON DELETE CASCADE
) ENGINE=InnoDB;
-- Feldrechte pro Token
CREATE TABLE token_permissions (
token_id INT NOT NULL,
field_key VARCHAR(50) NOT NULL,
PRIMARY KEY (token_id, field_key),
FOREIGN KEY (token_id)
REFERENCES access_tokens(id)
ON DELETE CASCADE
) ENGINE=InnoDB;
-- Dateien (Bilder, PDFs, etc.)
CREATE TABLE files (
id INT AUTO_INCREMENT PRIMARY KEY,
identity_id INT NOT NULL,
token_id INT NULL,
filename VARCHAR(255) NOT NULL,
stored_name VARCHAR(255) NOT NULL,
mime_type VARCHAR(100),
uploaded_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (identity_id)
REFERENCES identities(id)
ON DELETE CASCADE,
FOREIGN KEY (token_id)
REFERENCES access_tokens(id)
ON DELETE SET NULL
) ENGINE=InnoDB;