v1.36: Mieterverwaltung (Mieter 1:1 pro Wohnung, Kaution/Vertrag/Dokumente) + v1.37: KI-Assistent (N8N + Kimi, 6 Portal-Tools)
This commit is contained in:
+20
-6
@@ -17,11 +17,24 @@ async function seed() {
|
||||
await client.query('BEGIN')
|
||||
|
||||
for (const u of generated.units) {
|
||||
// v1.36: Wohnung schlank (kein Mieter/Miete mehr am Objekt); Mieter
|
||||
// werden als eigene Datensätze (Tabelle mieter) angelegt.
|
||||
const status = u.status === 'vermietet' ? 'vermietet' : 'leerstand'
|
||||
await client.query(
|
||||
`INSERT INTO units (id, building, number, floor, size, cold_rent, warm_rent, tenant, status)
|
||||
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)`,
|
||||
[u.id, u.building, u.number, u.floor, u.size, u.coldRent, u.warmRent, u.tenant, u.status],
|
||||
`INSERT INTO units (id, building, number, floor, size, status) VALUES ($1,$2,$3,$4,$5,$6)`,
|
||||
[u.id, u.building, u.number, u.floor, u.size, status],
|
||||
)
|
||||
if (u.tenant) {
|
||||
const teile = String(u.tenant).trim().split(/\s+/)
|
||||
const vorname = teile.length > 1 ? teile.slice(0, -1).join(' ') : ''
|
||||
const nachname = teile.length > 1 ? teile[teile.length - 1] : teile[0]
|
||||
await client.query(
|
||||
`INSERT INTO mieter (id, unit_id, name, vorname, kaltmiete, warmmiete, vertragsstatus,
|
||||
mietbeginn_am, erstellt_am, geaendert_am)
|
||||
VALUES ($1,$2,$3,$4,$5,$6,'aktiv','',$7,$7)`,
|
||||
[`mi-${u.id}`, u.id, nachname, vorname, Number(u.coldRent ?? 0), Number(u.warmRent ?? 0), new Date().toLocaleDateString('de-DE')],
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
for (const t of generated.transactions) {
|
||||
@@ -32,9 +45,10 @@ async function seed() {
|
||||
)
|
||||
}
|
||||
|
||||
// Mieter-Namen in Tickets/Threads aus der units-Tabelle nachziehen
|
||||
const { rows: unitRows } = await client.query('SELECT id, tenant FROM units')
|
||||
const mieterVon = Object.fromEntries(unitRows.map((u) => [u.id, u.tenant]))
|
||||
// Mieter-Namen in Tickets/Threads aus den Seed-Daten nachziehen
|
||||
const mieterVon = Object.fromEntries(
|
||||
generated.units.filter((u) => u.tenant).map((u) => [u.id, u.tenant]),
|
||||
)
|
||||
|
||||
for (const t of tickets) {
|
||||
await client.query(
|
||||
|
||||
Reference in New Issue
Block a user