Milestone 1: Tenant-System + Shared Contacts + Tags + Activities¶
Status: Abgeschlossen
Datum: 2026-03-05
Revision: 015_tenant_contacts
Zusammenfassung¶
Foundation fuer das modulare Produktsystem (xynap.cloud). Multi-Tenant-Architektur mit Shared Components: Kontaktverwaltung, Tags und Activity-Timeline.
Was wurde gebaut¶
Backend (FastAPI)¶
6 neue Datenbanktabellen (Alembic Migration 015_tenant_contacts):
| Tabelle | Zweck |
|---|---|
tenants |
Mandanten mit Slug, Plan, Quota, Trial |
tenant_modules |
Aktivierte Module pro Tenant (crm, cms, mail...) |
contacts |
Kontakte/Firmen mit E-Mails, Telefon, Tags, Custom Fields |
contact_relations |
Beziehungen zwischen Kontakten (Mitarbeiter, Partner...) |
tags |
Tenant-spezifische Tags mit Farbe |
activities |
Chronologische Activity-Timeline (E-Mail, Anruf, Notiz...) |
4 SQLAlchemy Models: Tenant, TenantModule, Contact, ContactRelation, Tag, Activity
2 API Router unter /api/v1/:
| Endpoint | Methode | Beschreibung |
|---|---|---|
/tenants |
GET | Alle Tenants auflisten |
/tenants |
POST | Neuen Tenant erstellen (mit Modulen) |
/tenants/{id} |
GET | Tenant-Details |
/tenants/{id} |
PUT | Tenant aktualisieren |
/tenants/{id}/modules |
GET | Module eines Tenants |
/tenants/{id}/modules |
POST | Modul aktivieren |
/tenants/{id}/modules/{slug} |
DELETE | Modul deaktivieren |
/contacts |
GET | Kontakte auflisten (Suche, Filter, Pagination) |
/contacts |
POST | Kontakt erstellen (+ auto Activity) |
/contacts/{id} |
GET | Kontakt-Details |
/contacts/{id} |
PUT | Kontakt aktualisieren (+ Change-Activity) |
/contacts/{id} |
DELETE | Kontakt loeschen |
/contacts/{id}/activities |
GET | Activities eines Kontakts |
/contacts/activities |
POST | Activity manuell erstellen |
/contacts/tags |
GET | Tags auflisten |
/contacts/tags |
POST | Tag erstellen |
/contacts/tags/{id} |
DELETE | Tag loeschen |
Frontend (Vue 3)¶
3 neue Views:
- ContactsView — Kontaktliste mit Echtzeit-Suche, Typ-Filter, Pagination, Create/Edit Modal
- ContactDetailView — Kontakt-Detail mit Kontaktdaten, Tags, Notizen, Activity-Timeline, Activity-Erstellung
- TenantsView — Tenant-Karten mit Modul-Tags, Create-Modal mit Modul-Auswahl, Detail-Modal mit Modul-Verwaltung
Navigation: Neue Sidebar-Sektion "Produkte" mit Tenants, Kontakte, XyNaP.cms, XyNaP.crm
Dateien¶
Neue Dateien¶
| Datei | Typ |
|---|---|
backend/app/core_models/tenant.py |
Model |
backend/app/core_models/contact.py |
Model |
backend/app/core_models/tag.py |
Model |
backend/app/core_models/activity.py |
Model |
backend/app/core/tenants/router.py |
API Router |
backend/app/core/contacts/router.py |
API Router |
backend/alembic/versions/015_tenant_contacts_tags.py |
Migration |
frontend/src/shell/contacts/ContactsView.vue |
View |
frontend/src/shell/contacts/ContactDetailView.vue |
View |
frontend/src/shell/tenants/TenantsView.vue |
View |
Modifizierte Dateien¶
| Datei | Aenderung |
|---|---|
backend/app/core_models/__init__.py |
Neue Model-Imports |
backend/app/main.py |
Router-Registration (tenants, contacts) |
frontend/src/shell/router.ts |
Neue Routes |
frontend/src/shell/layout/SidebarNav.vue |
Navigation |
frontend/src/main.ts |
i18n Labels |
Naechste Schritte (MS-2)¶
- CRM Pipeline + Deals
- Deal-Stages (Kanban-Board)
- Lead-Scoring
- Dashboard mit Umsatz-Widgets