b22e5baa5c
Build and Push Docker Image / build (push) Successful in 1m23s
- Implemented client-side validation functions for tax ID, VAT ID, IBAN, BIC, and website URL. - Added debug logging functionality to assist in development. - Created a comprehensive validation function for company form data. feat: initialize database with Prisma migrations - Added a server-side script to run Prisma migrations and check database health. - Ensured safe initialization of the database to prevent concurrent migrations. feat: comprehensive server-side error logging - Developed an error logging system that captures detailed error context, including request details and stack traces. - Implemented logging functions for different error types (route, action, database, API, startup). fix: validate user ID existence in audit logs - Updated the logging function to validate that the user ID exists in the database before logging actions. fix: update schemas for optional fields and validation - Modified schemas to allow for nullable fields and refined validation logic for tax ID, VAT ID, IBAN, and BIC. feat: enhance error boundary for better debugging - Improved error boundary to log detailed error information in development mode. - Added a debug panel to the main application layout for real-time error tracking. feat: implement company deletion functionality in admin routes - Added a new API route for deleting companies with appropriate logging. - Integrated delete confirmation in the admin interface for better user experience. fix: handle API errors gracefully - Wrapped API actions in try-catch blocks to log errors and return appropriate responses. feat: generate and save invoice PDFs - Implemented functionality to generate and save invoice PDFs upon status updates. - Added a new column in the database for storing the URL of the generated PDF. chore: update Docker image reference - Changed the Docker image reference to point to the new Git repository. chore: update package dependencies - Added @radix-ui/react-tooltip for enhanced UI components. - Updated package-lock.json to reflect new dependencies.
71 lines
4.0 KiB
TypeScript
71 lines
4.0 KiB
TypeScript
import { type RouteConfig, index, route, layout } from "@react-router/dev/routes";
|
|
|
|
export default [
|
|
route("login", "routes/login.tsx"),
|
|
route("logout", "routes/logout.ts"),
|
|
|
|
layout("routes/dashboard-layout.tsx", [
|
|
index("routes/home.tsx"),
|
|
route("companies", "routes/companies.tsx"),
|
|
route("companies/new", "routes/companies.new.tsx"),
|
|
route("companies/:id", "routes/companies.$id.tsx"),
|
|
route("companies/:id/edit", "routes/companies.$id.edit.tsx"),
|
|
route("companies/:id/customers", "routes/companies.$id.customers.tsx"),
|
|
route("companies/:id/leistungen", "routes/companies.$id.leistungen.tsx"),
|
|
route("companies/:id/invoices", "routes/companies.$id.invoices.tsx"),
|
|
route("companies/:id/invoices/new", "routes/companies.$id.invoices.new.tsx"),
|
|
route("companies/:id/invoices/:invoiceId", "routes/companies.$id.invoices.$invoiceId.tsx"),
|
|
route("companies/:id/invoices/:invoiceId/edit", "routes/companies.$id.invoices.$invoiceId.edit.tsx"),
|
|
route("companies/:id/reports", "routes/companies.$id.reports.tsx"),
|
|
layout("routes/companies.$id.buchhaltung.tsx", [
|
|
route("companies/:id/buchhaltung/bilanzen", "routes/companies.$id.buchhaltung.bilanzen.tsx"),
|
|
route("companies/:id/buchhaltung/ausgaben", "routes/companies.$id.buchhaltung.ausgaben.tsx"),
|
|
route("companies/:id/buchhaltung/ausgaben/kategorien", "routes/companies.$id.buchhaltung.ausgaben.kategorien.tsx"),
|
|
route("companies/:id/buchhaltung/einnahmen", "routes/companies.$id.buchhaltung.einnahmen.tsx"),
|
|
route("companies/:id/buchhaltung/einnahmen/kategorien", "routes/companies.$id.buchhaltung.einnahmen.kategorien.tsx"),
|
|
route("companies/:id/buchhaltung/anlagevermoegen", "routes/companies.$id.buchhaltung.anlagevermoegen.tsx"),
|
|
route("companies/:id/buchhaltung/money", "routes/companies.$id.buchhaltung.money.tsx"),
|
|
]),
|
|
route("archiv", "routes/archiv.tsx"),
|
|
route("settings/password", "routes/settings.password.tsx"),
|
|
]),
|
|
|
|
// Admin routes
|
|
layout("routes/admin-layout.tsx", [
|
|
route("admin/mandanten", "routes/admin.mandanten.tsx"),
|
|
route("admin/users", "routes/admin.users.tsx"),
|
|
route("admin/users/new", "routes/admin.users.new.tsx"),
|
|
route("admin/users/:id", "routes/admin.users.$id.tsx"),
|
|
route("admin/logs", "routes/admin.logs.tsx"),
|
|
]),
|
|
|
|
// API resource routes
|
|
route("api/companies", "routes/api.companies.ts"),
|
|
route("api/companies/:id", "routes/api.companies.$id.ts"),
|
|
route("api/companies/:id/customers", "routes/api.companies.$id.customers.ts"),
|
|
route("api/companies/:id/invoices", "routes/api.companies.$id.invoices.ts"),
|
|
route("api/companies/:id/money", "routes/api.companies.$id.money.ts"),
|
|
route("api/admin/companies/:id/delete", "routes/api.admin.companies.$id.delete.ts"),
|
|
route("api/customers", "routes/api.customers.ts"),
|
|
route("api/customers/:id", "routes/api.customers.$id.ts"),
|
|
route("api/services", "routes/api.services.ts"),
|
|
route("api/services/:id", "routes/api.services.$id.ts"),
|
|
route("api/invoices", "routes/api.invoices.ts"),
|
|
route("api/invoices/:id", "routes/api.invoices.$id.ts"),
|
|
route("api/invoices/:id/pdf", "routes/api.invoices.$id.pdf.ts"),
|
|
route("api/invoices/:id/xml", "routes/api.invoices.$id.xml.ts"),
|
|
route("api/reports", "routes/api.reports.ts"),
|
|
route("api/bilanzen", "routes/api.bilanzen.ts"),
|
|
route("api/ausgaben", "routes/api.ausgaben.ts"),
|
|
route("api/ausgaben/:id", "routes/api.ausgaben.$id.ts"),
|
|
route("api/einnahmen", "routes/api.einnahmen.ts"),
|
|
route("api/einnahmen/:id", "routes/api.einnahmen.$id.ts"),
|
|
route("api/einnahmen/:id/upload", "routes/api.einnahmen.$id.upload.ts"),
|
|
route("api/beleg/:userId/:filename", "routes/api.beleg.$userId.$filename.ts"),
|
|
route("api/companies/:id/buchungkategorien", "routes/api.companies.$id.buchungkategorien.ts"),
|
|
route("api/companies/:id/buchungkategorien/:katId", "routes/api.companies.$id.buchungkategorien.$katId.ts"),
|
|
route("api/anlagevermoegen", "routes/api.anlagevermoegen.ts"),
|
|
route("api/anlagevermoegen/:id", "routes/api.anlagevermoegen.$id.ts"),
|
|
|
|
] satisfies RouteConfig;
|