diff --git a/pom.xml b/pom.xml
index 0da3b13..9ffe5b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,15 +40,19 @@
- org.mariadb.jdbc
- mariadb-java-client
- runtime
+ com.h2database
+ h2
org.springframework.boot
spring-boot-starter-test
test
+
+ com.example
+ batchprocessing
+ 0.0.1-SNAPSHOT
+
diff --git a/src/main/java/de/avatic/taricdb/batch/ImporterConfiguration.java b/src/main/java/de/avatic/taricdb/batch/ImporterConfiguration.java
new file mode 100644
index 0000000..16d7514
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/batch/ImporterConfiguration.java
@@ -0,0 +1,8 @@
+package de.avatic.taricdb.batch;
+
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class ImporterConfiguration {
+
+}
diff --git a/src/main/java/de/avatic/taricdb/batch/processors/ExtractZipItemProcessor.java b/src/main/java/de/avatic/taricdb/batch/processors/ExtractZipItemProcessor.java
new file mode 100644
index 0000000..89f5d49
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/batch/processors/ExtractZipItemProcessor.java
@@ -0,0 +1,16 @@
+package de.avatic.taricdb.batch.processors;
+
+import java.io.File;
+import java.util.List;
+
+import org.springframework.batch.item.ItemProcessor;
+
+public class ExtractZipItemProcessor implements ItemProcessor> {
+
+ @Override
+ public List process(File item) throws Exception {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
diff --git a/src/main/java/de/avatic/taricdb/batch/processors/FootnoteItemProcessor.java b/src/main/java/de/avatic/taricdb/batch/processors/FootnoteItemProcessor.java
new file mode 100644
index 0000000..31d0bc8
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/batch/processors/FootnoteItemProcessor.java
@@ -0,0 +1,5 @@
+package de.avatic.taricdb.batch.processors;
+
+public class FootnoteItemProcessor {
+
+}
diff --git a/src/main/java/de/avatic/taricdb/model/UploadFile.java b/src/main/java/de/avatic/taricdb/model/UploadFile.java
new file mode 100644
index 0000000..a4b5879
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/model/UploadFile.java
@@ -0,0 +1,11 @@
+package de.avatic.taricdb.model;
+
+
+
+public class UploadFile {
+
+ int id;
+
+ UploadFileType type;
+
+}
diff --git a/src/main/java/de/avatic/taricdb/model/UploadFileType.java b/src/main/java/de/avatic/taricdb/model/UploadFileType.java
new file mode 100644
index 0000000..d185ffd
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/model/UploadFileType.java
@@ -0,0 +1,26 @@
+package de.avatic.taricdb.model;
+
+public enum UploadFileType {
+ ZIP("null"),
+ DUTIES("Duties Import 01-99.xlsx"),
+ BUSINESS_CODE("TARIC Business codes.xlsx"),
+ GEO_COMPOSITION("Geographical areas composition.xlsx"),
+ GEO("Geographical areas descriptions.xlsx"),
+ LEGAL_BASES("Legal bases.xlsx"),
+ MEASURE_CONDITIONS("Measure conditions.xlsx"),
+ MEASURE_EXCLUSIONS("Measure exclusions.xlsx"),
+ MEASURE_FOOTNOTES("Measure footnotes.xlsx"),
+ NOMENCLATURE_DE("Nomenclature DE.xlsx"),
+ NOMENCLATURE_FR("Nomenclature FR.xlsx"),
+ NOMENCLATURE_EN("Nomenclature EN.xlsx"),
+ DECLARABLE_CODES("Declarable codes.xlsx"),
+ ADDITIONAL_CODES("Additional codes descriptions.xlsx"),
+ BOX_44("Box 44 codes of the SAD.xlsx"),
+ FOOTNOTES("Footnotes descriptions.xlsx"),
+ NOMENCLATURE_FOOTNOTES("Nomenclature footnotes.xlsx");
+
+ UploadFileType(String fileName) {
+
+ }
+
+}
diff --git a/src/main/java/de/avatic/taricdb/repository/UploadFileRepository.java b/src/main/java/de/avatic/taricdb/repository/UploadFileRepository.java
new file mode 100644
index 0000000..caa7238
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/repository/UploadFileRepository.java
@@ -0,0 +1,5 @@
+package de.avatic.taricdb.repository;
+
+public class UploadFileRepository {
+
+}
diff --git a/src/main/java/de/avatic/taricdb/service/UploadService.java b/src/main/java/de/avatic/taricdb/service/UploadService.java
new file mode 100644
index 0000000..af878c0
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/service/UploadService.java
@@ -0,0 +1,8 @@
+package de.avatic.taricdb.service;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class UploadService {
+
+}
diff --git a/src/main/java/de/avatic/taricdb/web/UploadController.java b/src/main/java/de/avatic/taricdb/web/UploadController.java
new file mode 100644
index 0000000..af22d4d
--- /dev/null
+++ b/src/main/java/de/avatic/taricdb/web/UploadController.java
@@ -0,0 +1,15 @@
+package de.avatic.taricdb.web;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class UploadController {
+
+
+ @PostMapping
+ public void startConversion() {
+
+ }
+
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 55528b2..b8761f1 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1 +1,2 @@
spring.application.name=taricdb
+spring.batch.job.enabled= false
\ No newline at end of file
diff --git a/src/main/resources/schema.sql b/src/main/resources/schema.sql
index a892e16..a686437 100644
--- a/src/main/resources/schema.sql
+++ b/src/main/resources/schema.sql
@@ -1,3 +1,15 @@
+-- upload tables
+create table if not exists "upload_file"
+(
+ id INT NOT NULL PRIMARY KEY,
+ file_name TEXT,
+ file_type ENUM("zip", "duties", "business_codes", "geo_composition", "geo", "legal_bases", "measure_conditions", "measure_exclusions",
+ "measure_footnotes", "nomenclature_de", "nomenclature_en", , "nomenclature_fr", "declarable_codes", "additional_codes", "box44",
+ "footnotes", "nomenclature_footnotes")
+ blob LONGBLOB
+ parent_zip INT
+);
+
-- meta tables, like units and certificates
create table if not exists "legal_base"
(
@@ -110,6 +122,12 @@ create table if not exists "nomenclature"
is_leaf_start_date DATE,
parent_id INT -- TODO: for each child do: alter table nomenclature add constraint parent_nomenclature foreign key (parent_id) references nomenclature(id) on delete set null;
);
+create table if not exists "nomenclature_footnote"
+(
+ id INT NOT NULL PRIMARY KEY,
+ FOREIGN KEY (footnote_id) REFERENCES footnote(id),
+ FOREIGN KEY (nomenclature_id) REFERENCES nomenclature(id)
+);
create table if not exists "additional_code"
(
id INT NOT NULL PRIMARY KEY,