initial backend: Dokumente, Historie, API und Persistenz (D76)

- Liquibase-Schema (`document`, `document_history`) + Rollback-scripts
- Spring Boot with JPA-repositories, entities and services
- REST-API (`/documents`, `/documents/{id}`, `/documents/{id}/history`)
- OpenAPI-specifikation for CRUD-Operationen and history
- config files (`application.yaml`, `Liquibase`, H2 im PostgreSQL-Modus)
- preps for future live-editing/delta-updates
- Exceptions for conflikt- and not-found cases (409/404)
- keeping document hostory even after `delete` for RESTORE functionality
This commit is contained in:
mhoennig
2026-08-26 12:56:27 +02:00
parent 4e0ce51820
commit 0446e3d81e
31 changed files with 2060 additions and 7 deletions
@@ -0,0 +1,28 @@
--liquibase formatted sql
--changeset editor:001-create-document
CREATE TABLE document (
id UUID PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
version BIGINT NOT NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL,
updated_at TIMESTAMP WITH TIME ZONE NOT NULL
);
--rollback DROP TABLE document;
--changeset editor:002-create-document-history
CREATE TABLE document_history (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
document_id UUID NOT NULL,
version BIGINT NOT NULL,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
change_type VARCHAR(16) NOT NULL,
change_time TIMESTAMP WITH TIME ZONE NOT NULL
);
--rollback DROP TABLE document_history;
--changeset editor:003-index-document-history
CREATE INDEX idx_document_history_document_id ON document_history (document_id);
--rollback DROP INDEX idx_document_history_document_id;