Z User
aa075762b2
feat: full CRUD support — companies, deals, projects, expenses, tickets, licenses
API routes (new + modified):
- POST /api/aos/crm/companies (create company)
- PATCH/DELETE /api/aos/crm/companies/[id] (edit/delete with dependency check)
- PATCH/DELETE /api/aos/crm/deals/[id] (edit/delete deal)
- POST /api/aos/projects (create project)
- PATCH/DELETE /api/aos/projects/[id] (edit/delete with dependency check)
- POST /api/aos/expenses (create expense)
- PATCH/DELETE /api/aos/expenses/[id] (edit/delete with GoBD lock)
- PATCH/DELETE /api/aos/tickets/[id] (edit/delete with message check)
- DELETE /api/aos/licenses/[id] (delete only if cancelled + no deps)
- NO invoice delete endpoint (GoBD retention — storno only)
UI components (new):
- DeleteDialog: reusable AlertDialog with dependency list
- CompanyFormDialog: create + edit (12 fields)
- DealFormDialog: create + edit (replaces CreateDealDialog)
- ProjectFormDialog: create + edit
- ExpenseFormDialog: create + edit
- TicketEditDialog: edit status/priority/category/assignee
UI views (modified):
- CRM: 'Neue Firma' + 'Neuer Deal' buttons, edit/delete per row
- Projects: 'Projekt' button, edit/delete on cards
- Expenses: 'Ausgabe' button, edit/delete per row (hidden if DATEV-locked)
- Support: edit/delete in inbox header
- Licenses: delete button (only if cancelled/revoked/expired)
Cascade policy:
- Every DELETE counts FK relations, returns 409 with dependency list
- Hard delete only when no dependencies exist
- GoBD: expenses locked if DATEV-exported or invoiced
- Audit log on every create/update/delete
2026-10-29 13:32:17 +00:00
..
2026-10-27 18:51:55 +00:00
2026-10-28 17:00:06 +00:00
2026-10-27 12:23:32 +00:00
2026-10-27 12:23:32 +00:00
2026-10-27 12:23:32 +00:00
2026-10-28 02:36:53 +00:00
2026-10-29 13:32:17 +00:00
2026-10-27 12:23:32 +00:00
2026-10-27 22:48:01 +00:00
2026-10-27 12:23:32 +00:00
2026-10-29 13:32:17 +00:00
2026-10-27 12:23:32 +00:00
2026-10-27 22:48:01 +00:00
2026-10-27 12:23:32 +00:00
2026-10-28 19:38:28 +00:00
2026-10-27 12:23:32 +00:00
2026-10-28 03:08:54 +00:00
2026-10-29 13:32:17 +00:00
2026-10-29 13:32:17 +00:00
2026-10-28 02:36:53 +00:00
2026-10-27 12:23:32 +00:00
2026-10-28 23:46:54 +00:00
2026-10-27 12:23:32 +00:00
2026-10-27 12:23:32 +00:00
2026-10-29 13:32:17 +00:00
2026-10-28 02:36:53 +00:00