diff --git a/backend/internal/infrastructure/database/migrations/20260627161855_password_reset_tokens.sql b/backend/internal/infrastructure/database/migrations/20260627161855_password_reset_tokens.sql new file mode 100644 index 0000000..ddecfc4 --- /dev/null +++ b/backend/internal/infrastructure/database/migrations/20260627161855_password_reset_tokens.sql @@ -0,0 +1,13 @@ +-- +goose Up +CREATE TABLE password_reset_tokens ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + email TEXT NOT NULL, + token TEXT NOT NULL UNIQUE, + expires_at TIMESTAMPTZ NOT NULL, + used_at TIMESTAMPTZ, + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW() +); +CREATE INDEX idx_password_reset_tokens_token ON password_reset_tokens(token); + +-- +goose Down +DROP TABLE IF EXISTS password_reset_tokens; diff --git a/web/components/common/Logo.tsx b/web/components/common/Logo.tsx new file mode 100644 index 0000000..e8d4304 --- /dev/null +++ b/web/components/common/Logo.tsx @@ -0,0 +1,9 @@ +import Link from 'next/link' + +export function Logo({ className }: { className?: string }) { + return ( + + App + + ) +} diff --git a/web/components/common/container.tsx b/web/components/common/container.tsx index e0df43c..baee791 100644 --- a/web/components/common/container.tsx +++ b/web/components/common/container.tsx @@ -1,7 +1,7 @@ import { cn } from "@/lib/utils"; const Container = ({ children, className }: { children: React.ReactNode; className?: string }) => { - return
{children}
; + return
{children}
; }; export default Container; diff --git a/web/components/layout/AppSidebar.tsx b/web/components/layout/AppSidebar.tsx index a98295a..6ab7f0e 100644 --- a/web/components/layout/AppSidebar.tsx +++ b/web/components/layout/AppSidebar.tsx @@ -1,5 +1,5 @@ -import Link from 'next/link' import { LayoutDashboard, Settings } from 'lucide-react' +import { Logo } from '@/components/common/Logo' import { Sidebar, SidebarContent, @@ -13,6 +13,7 @@ import { SidebarMenuItem, } from '@/components/ui/sidebar' import { UserMenu } from '@/features/auth/components/UserMenu' +import Link from 'next/link' const navItems = [ { title: 'Dashboard', url: '/dashboard', icon: LayoutDashboard }, @@ -23,9 +24,7 @@ export function AppSidebar() { return ( - - App - + diff --git a/web/components/layout/header.tsx b/web/components/layout/header.tsx index a47a50e..94d0982 100644 --- a/web/components/layout/header.tsx +++ b/web/components/layout/header.tsx @@ -1,13 +1,11 @@ -import Link from "next/link" +import { Logo } from "@/components/common/Logo" import { NavAuth } from "./NavAuth" export default function Header() { return (
- - App - +
diff --git a/web/public/file.svg b/web/public/file.svg deleted file mode 100644 index 004145c..0000000 --- a/web/public/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/public/firebase-messaging-sw.js b/web/public/firebase-messaging-sw.js deleted file mode 100644 index 48406f9..0000000 --- a/web/public/firebase-messaging-sw.js +++ /dev/null @@ -1,17 +0,0 @@ -importScripts('https://www.gstatic.com/firebasejs/12.0.0/firebase-app-compat.js') -importScripts('https://www.gstatic.com/firebasejs/12.0.0/firebase-messaging-compat.js') - -// Firebase config is injected by the page before registering this worker, -// via postMessage, or you can hardcode NEXT_PUBLIC_* values here at build time. -// For development, populate these from your .env.local file. -self.addEventListener('message', (event) => { - if (event.data?.type === 'FIREBASE_CONFIG' && !firebase.apps.length) { - firebase.initializeApp(event.data.config) - firebase.messaging() - } -}) - -// Background message handler — called when the app is not in the foreground. -self.addEventListener('push', () => { - // firebase-messaging-compat handles push events automatically once initialised. -}) diff --git a/web/public/globe.svg b/web/public/globe.svg deleted file mode 100644 index 567f17b..0000000 --- a/web/public/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/public/next.svg b/web/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/web/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/public/vercel.svg b/web/public/vercel.svg deleted file mode 100644 index 7705396..0000000 --- a/web/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/web/public/window.svg b/web/public/window.svg deleted file mode 100644 index b2b2a44..0000000 --- a/web/public/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file