Add datamodel for DMG

This commit is contained in:
Christian Volkmann 2024-01-20 02:45:48 +01:00
parent c8d227929b
commit 77cf87bccd
6 changed files with 143 additions and 1 deletions

2
.gitignore vendored
View File

@ -11,4 +11,4 @@ nbproject
!/public/typo3conf/LocalConfiguration.php
!/public/typo3conf/AdditionalConfiguration.php
t3bootstrap*.zip
t3bootstrap*.zip

3
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"intelephense.environment.phpVersion": "8.1"
}

View File

@ -0,0 +1,67 @@
Project DMG {
database_type: 'MariaDB'
Note: '''
# Datenmodell für DMG Projekt
'''
}
Enum Status {
Aktiv
Deaktiviert
}
Table Marketplace as MP {
guid string [pk, note: "Eindeutiger Schlüssel des Marktplatzes im CRM"]
number string [note: "Marktplatznummer"]
keyword string [note: "Stichwort aus dem Marktplatz überall gefüllt und besteht aus „[Ortsname] / [indiv. Bezeichner]“"]
branchoffice string [note: "Niederlassungs-Nr. und Bezeichnung"]
commonname string [note: "„Ortsüblicher Marktname“ - nicht bei jedem Marktplatz gefüllt!"]
designationmp string [note: "„Bezeichnung Marktplatz“ - bei jedem Marktplatz gefüllt !"]
street string [note: "Anschrift des Marktplatzes"]
zip string [note: "Anschrift des Marktplatzes"]
town string [note: "Anschrift des Marktplatzes"]
longitude string [note: "Marktplatz WGS 84 Koordinaten"]
latitude string [note: "Marktplatz WGS 84 Koordinaten"]
alt_designationmp string [note: "„Bezeichnung Ausweichplatz“"]
alt_street string [note: "Anschrift des Alternativen Marktplatzes"]
alt_zip string [note: "Anschrift des Alternativen Marktplatzes"]
alt_town string [note: "Anschrift des Alternativen Marktplatzes"]
alt_longitude string [note: "Alternativer Marktplatz WGS 84 Koordinaten"]
alt_latitude string [note: "Alternativer Marktplatz WGS 84 Koordinaten"]
status Status
nl_addressterm string [note: "Niederlassungsleiter mit Telefonnummer und Mailadresse (aus Niederlassungsdatensatz)"]
nl_christianname string [note: "Niederlassungsleiter mit Telefonnummer und Mailadresse (aus Niederlassungsdatensatz)"]
nl_name string [note: "Niederlassungsleiter mit Telefonnummer und Mailadresse (aus Niederlassungsdatensatz)"]
nl_phone string [note: "Niederlassungsleiter mit Telefonnummer und Mailadresse (aus Niederlassungsdatensatz)"]
nl_email string [note: "Niederlassungsleiter mit Telefonnummer und Mailadresse (aus Niederlassungsdatensatz)"]
Note: '''
## Marktplätze
- Die vier Bezeichnungsfelder beim Marktplatz sind leider maximalverwirrend. Falls es überhaupt benötigt werden sollte, würde ich zum Feld „designationmp“ tendieren. Dieses entspricht dem Feld „Bezeichnung Marktplatz (Treffpunkt)“ im CAS. Da Sie aber das Feld „Stichwort“ bei den Markttagen verwenden sollten, werden Sie den Ort des Marktplatzes einzeln gar nicht benötigen 😃
- Der Ausweichplatz ist nicht zwangsläufig gefüllt. Er besitzt im CRM Datenstamm allerdings keine eigene PLZ und keinen eigenen Ort. Falls Sie, wieder erwarten, gefüllte Ausweichplätze ausfiltern müssten, müssten Sie bitte auf alt_street != ` ` filtern
- Der Status Aktiv bedeutet nicht zwangsläufig, dass dieser Marktplatz derzeit wirklich aktiv ist. Solange es z.B. noch Abrechnungen zu erledigen gibt, ist dieser Status mindestens noch auf aktiv obwohl der letzte Markttagstermin bereits stattgefunden hat.
'''
}
Table Marketday as MD {
guid string [pk, note: "Eindeutiger Schlüssel des Markttages im CRM"]
number string [note: "Markttagnummer"]
mp_guid string [ref: <> MP.guid, note: "Verweis zur Guid des Marktplatzes"]
mp_number string [ref: <> MP.number, note: "Verweis zur Nummer des Marktplatzes"]
keyword string
weekday string [note: "Wochentag des Markttages"]
openingtime_summer Date [note: "Öffnung des Marktes zwischen 01.04. und 31.10."]
openingtime_winter Date [note: "Öffnung des Marktes zwischen 01.11. und 31.03."]
closingtime_summer Date [note: "Ende des Marktes zwischen 01.04. und 31.10."]
closingtime_winter Date [note: "Ende des Marktes zwischen 01.11. und 31.03."]
status Status
contract_start Date [note: "Vertragslaufzeit des Markttages"]
contract_end Date [note: "Vertragslaufzeit des Markttages"]
haslandingpage boolean [note: "Besitzt der übergeordnete Marktort eine Landingpage ? (die Subdomain wird immer aus dem Feld Town des Marktplatzes gebildet."]
mp_url string [note: "URL zur Treffpunktseite, falls Haslandingpage=true"]
Note: '''
## Markttage
- Auch beim Markttag spiegelt der Status nicht zwangsläufig die Realität wieder (gleicher Grund wie oben) Ein aktiver Markttag ist eindeutig über die Kombination (Status == „aktiv“) && (contract_start <= Date.now() ) && ( Date.now() <= contract_end ) zu identifizieren.
'''
}

BIN
exploratory/er_diagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -0,0 +1 @@
*.json

View File

@ -0,0 +1,71 @@
{
"client": "Thunder Client",
"collectionName": "DMG API",
"dateExported": "2024-01-20T00:51:23.309Z",
"version": "1.1",
"folders": [],
"requests": [
{
"_id": "57d5ee45-2a10-4203-aed4-e97f89ab55bf",
"colId": "681a3049-d855-421d-96e9-c554f1db5e53",
"containerId": "",
"name": "Marktplätze",
"url": "/marketplaces",
"method": "GET",
"sortNum": 20000,
"created": "2024-01-20T00:37:21.557Z",
"modified": "2024-01-20T00:46:52.965Z",
"headers": [],
"params": [],
"tests": [],
"docs": "## Marktplätze\n\n- Die vier Bezeichnungsfelder beim Marktplatz sind leider maximalverwirrend. Falls es überhaupt benötigt werden sollte, würde ich zum Feld „designationmp“ tendieren. Dieses entspricht dem Feld „Bezeichnung Marktplatz (Treffpunkt)“ im CAS. Da Sie aber das Feld „Stichwort“ bei den Markttagen verwenden sollten, werden Sie den Ort des Marktplatzes einzeln gar nicht benötigen 😃\n- Der Ausweichplatz ist nicht zwangsläufig gefüllt. Er besitzt im CRM Datenstamm allerdings keine eigene PLZ und keinen eigenen Ort. Falls Sie, wieder erwarten, gefüllte Ausweichplätze ausfiltern müssten, müssten Sie bitte auf alt_street != ` ` filtern\n- Der Status Aktiv bedeutet nicht zwangsläufig, dass dieser Marktplatz derzeit wirklich aktiv ist. Solange es z.B. noch Abrechnungen zu erledigen gibt, ist dieser Status mindestens noch auf aktiv obwohl der letzte Markttagstermin bereits stattgefunden hat.\n\n| Gguid | Eindeutiger Schlüssel des Markttages im CRM |\n| --- | --- |\n| Number | Markttagnummer |\n| Mp_guid | Verweis zur Guid des Marktplatzes |\n| Keyword | Verweis zur Nummer des Marktplatzes |\n| Weekday | Wochentag des Markttages |\n| Openingtime_summer | Öffnung des Marktes zwischen 01.04. und 31.10. |\n| Openingtime_winter | Öffnung des Marktes zwischen 01.11. und 31.03. |\n| Closingtime_Summer | Ende des Marktes zwischen 01.04. und 31.10. |\n| Closingtime_winter | Ende des Marktes zwischen 01.11. und 31.03. |\n| Status | [Aktiv, Deaktiviert] |\n| Contract_start,\nContract_End | Vertragslaufzeit des Markttages |\n| Haslandingpage | Besitzt der übergeordnete Marktort eine Landingpage ? (die Subdomain wird immer aus dem Feld Town des Marktplatzes gebildet. |\n| Mp_url | URL zur Treffpunktseite, falls Haslandingpage=true |"
},
{
"_id": "4a9334ad-301b-4c5b-bda2-a5a72124dd1c",
"colId": "681a3049-d855-421d-96e9-c554f1db5e53",
"containerId": "",
"name": "Markttage",
"url": "/marketdays",
"method": "GET",
"sortNum": 40000,
"created": "2024-01-20T00:39:24.939Z",
"modified": "2024-01-20T00:46:57.539Z",
"headers": [],
"params": [],
"tests": [],
"docs": "## Markttage\n\n- Auch beim Markttag spiegelt der Status nicht zwangsläufig die Realität wieder (gleicher Grund wie oben) Ein aktiver Markttag ist eindeutig über die Kombination (Status == „aktiv“) && (contract_start <= Date.now() ) && ( Date.now() <= contract_end ) zu identifizieren.\n\n| Gguid | Eindeutiger Schlüssel des Marktplatzes im CRM |\n| --- | --- |\n| Number | Marktplatznummer |\n| Keyword | Stichwort aus dem Marktplatz überall gefüllt und besteht aus „[Ortsname] / [indiv. Bezeichner]“ |\n| Branchoffice | Niederlassungs-Nr. und Bezeichnung |\n| Commonname | „Ortsüblicher Marktname“ - nicht bei jedem Marktplatz gefüllt! |\n| Designationmp | „Bezeichnung Marktplatz“ - bei jedem Marktplatz gefüllt ! |\n| Street, Zip,\nTown | Anschrift des Marktplatzes |\n| Longitude,\nlatitude | Marktplatz WGS 84 Koordinaten |\n| Alt_designationmp | „Bezeichnung Ausweichplatz“ |\n| Alt_Street,\nAlt_Zip,\nAlt_Town | Anschrift des Alternativen Marktplatzes |\n| Alt_Longitude,\nAlt_Latitude | Alternativer Marktplatz WGS 84 Koordinaten |\n| Status | [Aktiv, Deaktiviert] |\n| Nl_adressterm,\nnl_Christianname,\nnl_Name,\nNL_phone,\nNL_EMail | Niederlassungsleiter mit Telefonnummer und Mailadresse (aus Niederlassungsdatensatz) |"
}
],
"settings": {
"headers": [
{
"name": "X-API-KEY",
"value": "{{APIKEY}}"
}
],
"tests": [
{
"type": "res-code",
"custom": "",
"action": ">=",
"value": "200"
},
{
"type": "res-code",
"custom": "",
"action": "<",
"value": "300"
},
{
"type": "Content-Type",
"custom": "",
"action": "contains",
"value": "application/json"
}
],
"options": {
"baseUrl": "{{BASEURL}}"
},
"envId": "f0ecf133-7bbc-4786-bff5-e48227b1dadb"
}
}