diff --git a/backend/src/main/java/de/svencarstensen/muh/domain/ReportTemplate.java b/backend/src/main/java/de/svencarstensen/muh/domain/ReportTemplate.java new file mode 100644 index 0000000..2d9743b --- /dev/null +++ b/backend/src/main/java/de/svencarstensen/muh/domain/ReportTemplate.java @@ -0,0 +1,16 @@ +package de.svencarstensen.muh.domain; + +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.time.LocalDateTime; +import java.util.List; + +@Document("reportTemplates") +public record ReportTemplate( + @Id String userId, + List elements, + LocalDateTime createdAt, + LocalDateTime updatedAt +) { +} diff --git a/backend/src/main/java/de/svencarstensen/muh/domain/Template.java b/backend/src/main/java/de/svencarstensen/muh/domain/Template.java new file mode 100644 index 0000000..e28b0ca --- /dev/null +++ b/backend/src/main/java/de/svencarstensen/muh/domain/Template.java @@ -0,0 +1,20 @@ +package de.svencarstensen.muh.domain; + +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.index.CompoundIndex; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.time.LocalDateTime; +import java.util.List; + +@Document("templates") +@CompoundIndex(name = "user_template_type_unique", def = "{'userId': 1, 'type': 1}", unique = true) +public record Template( + @Id String id, + String userId, + TemplateType type, + List elements, + LocalDateTime createdAt, + LocalDateTime updatedAt +) { +} diff --git a/backend/src/main/java/de/svencarstensen/muh/domain/TemplateType.java b/backend/src/main/java/de/svencarstensen/muh/domain/TemplateType.java new file mode 100644 index 0000000..afe989f --- /dev/null +++ b/backend/src/main/java/de/svencarstensen/muh/domain/TemplateType.java @@ -0,0 +1,6 @@ +package de.svencarstensen.muh.domain; + +public enum TemplateType { + INVOICE, + REPORT +} diff --git a/backend/src/main/java/de/svencarstensen/muh/repository/ReportTemplateRepository.java b/backend/src/main/java/de/svencarstensen/muh/repository/ReportTemplateRepository.java new file mode 100644 index 0000000..4e1b5f5 --- /dev/null +++ b/backend/src/main/java/de/svencarstensen/muh/repository/ReportTemplateRepository.java @@ -0,0 +1,7 @@ +package de.svencarstensen.muh.repository; + +import de.svencarstensen.muh.domain.ReportTemplate; +import org.springframework.data.mongodb.repository.MongoRepository; + +public interface ReportTemplateRepository extends MongoRepository { +} diff --git a/backend/src/main/java/de/svencarstensen/muh/repository/TemplateRepository.java b/backend/src/main/java/de/svencarstensen/muh/repository/TemplateRepository.java new file mode 100644 index 0000000..c6f28c9 --- /dev/null +++ b/backend/src/main/java/de/svencarstensen/muh/repository/TemplateRepository.java @@ -0,0 +1,12 @@ +package de.svencarstensen.muh.repository; + +import de.svencarstensen.muh.domain.Template; +import de.svencarstensen.muh.domain.TemplateType; +import org.springframework.data.mongodb.repository.MongoRepository; + +import java.util.Optional; + +public interface TemplateRepository extends MongoRepository { + + Optional