refactor: rename features to room-based directory structure

- Rename features/dashboard → features/front_hall
- Update routes: /, /control-room, /parlor, /settings
- Update navigation to 4 rooms (removed chat tab - will be omnipresent dock)
- Add docs/UI_LAYOUT.md with wireframes and responsive specs
- Update ARCHITECTURE.md and PLAN.md to reflect room structure

Directory structure now mirrors "Rooms of the Estate" UI navigation:
- front_hall/ (dashboard)
- control_room/ (infrastructure - containers, stacks, etc.)
- parlor/ (home automation)
- library/ (future)
- study/ (future, hidden)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-30 23:14:40 +01:00
co-authored by Claude Opus 4.5
parent adcb0e0427
commit a4aaea33b8
8 changed files with 505 additions and 126 deletions
+30 -27
View File
@@ -3,17 +3,17 @@ import 'package:go_router/go_router.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../shared/layouts/app_scaffold.dart';
import '../features/dashboard/presentation/pages/dashboard_page.dart';
import '../features/front_hall/presentation/pages/front_hall_page.dart';
part 'app_router.g.dart';
/// Route paths as constants.
abstract class AppRoutes {
static const dashboard = '/';
static const chat = '/chat';
static const containers = '/containers';
static const containerDetail = '/containers/:id';
static const housekeeping = '/housekeeping';
static const frontHall = '/';
static const controlRoom = '/control-room';
static const containers = '/control-room/containers';
static const containerDetail = '/control-room/containers/:id';
static const parlor = '/parlor';
static const settings = '/settings';
}
@@ -21,43 +21,46 @@ abstract class AppRoutes {
@riverpod
GoRouter appRouter(AppRouterRef ref) {
return GoRouter(
initialLocation: AppRoutes.dashboard,
initialLocation: AppRoutes.frontHall,
debugLogDiagnostics: true,
routes: [
ShellRoute(
builder: (context, state, child) => AppScaffold(child: child),
routes: [
GoRoute(
path: AppRoutes.dashboard,
name: 'dashboard',
builder: (context, state) => const DashboardPage(),
path: AppRoutes.frontHall,
name: 'frontHall',
builder: (context, state) => const FrontHallPage(),
),
GoRoute(
path: AppRoutes.chat,
name: 'chat',
builder: (context, state) => const _PlaceholderPage(title: 'Chat'),
),
GoRoute(
path: AppRoutes.containers,
name: 'containers',
path: AppRoutes.controlRoom,
name: 'controlRoom',
builder: (context, state) =>
const _PlaceholderPage(title: 'Containers'),
const _PlaceholderPage(title: 'Control Room'),
routes: [
GoRoute(
path: ':id',
name: 'containerDetail',
builder: (context, state) {
final id = state.pathParameters['id']!;
return _PlaceholderPage(title: 'Container: $id');
},
path: 'containers',
name: 'containers',
builder: (context, state) =>
const _PlaceholderPage(title: 'Containers'),
routes: [
GoRoute(
path: ':id',
name: 'containerDetail',
builder: (context, state) {
final id = state.pathParameters['id']!;
return _PlaceholderPage(title: 'Container: $id');
},
),
],
),
],
),
GoRoute(
path: AppRoutes.housekeeping,
name: 'housekeeping',
path: AppRoutes.parlor,
name: 'parlor',
builder: (context, state) =>
const _PlaceholderPage(title: 'Housekeeping'),
const _PlaceholderPage(title: 'Parlor'),
),
GoRoute(
path: AppRoutes.settings,