refactor: rename planta → plants, clean up codebase

- Rename planta module to plants everywhere (routes, modules, API,
  branding, i18n, docker, docs, shared packages)
- Fix package name collisions: @mana/credits-service, @mana/subscriptions-service
  (unblocks turbo)
- Extract layout composables: use-ai-tier-items, use-sync-status-items,
  RouteTierGate (layout 1345→1015 lines)
- Create shared DB pool for apps/api (lib/db.ts), migrate 5 modules
- Add automations module queries.ts with useAllAutomations/useEnabledAutomations
- Remove debug console.log statements from production code
- Rename storage display name: Ablage → Speicher

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-12 18:59:44 +02:00
parent c6c19dbc77
commit a91a6076cc
110 changed files with 831 additions and 707 deletions

View file

@ -28,7 +28,7 @@ Each app gets its own isolated bucket, created automatically by `minio-init`:
| `mail-storage` | Mail | Email attachments |
| `inventory-storage` | Inventory | Product photos |
| `music-storage` | Music | Music tracks, beats, covers |
| `planta-storage` | Planta | Plant photos |
| `plants-storage` | Planta | Plant photos |
| `projectdoc-storage` | ProjectDoc | Document files |
## Usage

View file

@ -32,7 +32,7 @@ const PUBLIC_URL_ENV: Partial<Record<keyof typeof BUCKETS, string>> = {
PICTURE: 'PICTURE_STORAGE_PUBLIC_URL',
STORAGE: 'STORAGE_S3_PUBLIC_URL',
INVENTORY: 'INVENTORY_S3_PUBLIC_URL',
PLANTA: 'PLANTA_STORAGE_PUBLIC_URL',
PLANTS: 'PLANTS_STORAGE_PUBLIC_URL',
};
/**
@ -111,5 +111,5 @@ export const createStorageStorage = (publicUrl?: string) => createStorage('STORA
export const createMailStorage = () => createStorage('MAIL');
export const createInventoryStorage = (publicUrl?: string) => createStorage('INVENTORY', publicUrl);
export const createMusicStorage = () => createStorage('MUSIC');
export const createPlantaStorage = (publicUrl?: string) => createStorage('PLANTA', publicUrl);
export const createPlantsStorage = (publicUrl?: string) => createStorage('PLANTS', publicUrl);
export const createProjectDocStorage = () => createStorage('PROJECTDOC');

View file

@ -17,7 +17,7 @@ export {
createMailStorage,
createInventoryStorage,
createMusicStorage,
createPlantaStorage,
createPlantsStorage,
createProjectDocStorage,
} from './factory';

View file

@ -137,7 +137,7 @@ export const BUCKETS = {
MAIL: 'mail-storage',
INVENTORY: 'inventory-storage',
MUSIC: 'music-storage',
PLANTA: 'planta-storage',
PLANTS: 'plants-storage',
PROJECTDOC: 'projectdoc-storage',
} as const;