2f398711c8
Complete Phase 1 foundation with working board, column, and card CRUD: - SvelteKit + TypeScript + Tailwind CSS v4 + adapter-node - Full Prisma schema with 18 tables (tenants, users, boards, columns, cards, etc.) - Multi-tenant architecture with hostname-based tenant resolution - Email/password auth with bcrypt + session cookies - Board/Column/Card API routes with full CRUD - Fractional indexing for drag-and-drop ordering - Board view with svelte-dnd-action for column and card drag-and-drop - Card modal with inline editing - Auth pages (login, register) - Board listing with create form - RLS policies SQL script for tenant isolation - Prisma RLS client extensions (forTenant/bypassRLS) - Permission helpers (canEditBoard, canManageMembers, etc.) - Socket.IO server setup (dev Vite plugin + production Express server) - Client-side socket store for real-time updates - Docker Compose (app + PostgreSQL 16) + multi-stage Dockerfile - Database seed script (default tenant + admin user) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
34 lines
576 B
TypeScript
34 lines
576 B
TypeScript
// See https://svelte.dev/docs/kit/types#app.d.ts
|
|
import type { PrismaClient } from '@prisma/client';
|
|
|
|
declare global {
|
|
namespace App {
|
|
interface Error {
|
|
message: string;
|
|
code?: string;
|
|
}
|
|
interface Locals {
|
|
tenant: {
|
|
id: string;
|
|
name: string;
|
|
slug: string;
|
|
} | null;
|
|
user: {
|
|
id: string;
|
|
email: string;
|
|
name: string;
|
|
globalRole: string;
|
|
tenantRole: string | null;
|
|
} | null;
|
|
session: {
|
|
id: string;
|
|
} | null;
|
|
}
|
|
// interface PageData {}
|
|
// interface PageState {}
|
|
// interface Platform {}
|
|
}
|
|
}
|
|
|
|
export {};
|