From 3cabbbab4f0978db6838ea5e7ec0443ef4c2a259 Mon Sep 17 00:00:00 2001 From: Rodribm10 Date: Mon, 13 Apr 2026 23:02:19 -0300 Subject: [PATCH] feat: configura cliente supabase com variaveis de ambiente --- .env.local.example | 8 ++++++++ src/lib/supabase.ts | 16 ++++++++++++++++ src/lib/utils.ts | 6 ++++++ src/types/database.ts | 15 +++++++++++++++ tsconfig.app.json | 2 +- 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 .env.local.example create mode 100644 src/lib/supabase.ts create mode 100644 src/lib/utils.ts create mode 100644 src/types/database.ts diff --git a/.env.local.example b/.env.local.example new file mode 100644 index 0000000..5fcb7dc --- /dev/null +++ b/.env.local.example @@ -0,0 +1,8 @@ +# Supabase — projeto InAudit Hotel +VITE_SUPABASE_URL=https://acdvblhzzaneddlxqyst.supabase.co +VITE_SUPABASE_ANON_KEY= +VITE_SUPABASE_SCHEMA=reserva_hotel + +# Chatwoot — token de integração (Fase 2) +VITE_CHATWOOT_API_URL=https://chatwoot.fazer.ai +VITE_CHATWOOT_API_TOKEN= diff --git a/src/lib/supabase.ts b/src/lib/supabase.ts new file mode 100644 index 0000000..d916158 --- /dev/null +++ b/src/lib/supabase.ts @@ -0,0 +1,16 @@ +import { createClient } from '@supabase/supabase-js' +import type { Database } from '@/types/database' + +const supabaseUrl = import.meta.env.VITE_SUPABASE_URL +const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY +const supabaseSchema = import.meta.env.VITE_SUPABASE_SCHEMA ?? 'reserva_hotel' + +if (!supabaseUrl || !supabaseAnonKey) { + throw new Error( + 'Variáveis VITE_SUPABASE_URL e VITE_SUPABASE_ANON_KEY não estão definidas. Copie .env.local.example para .env.local e preencha.' + ) +} + +export const supabase = createClient(supabaseUrl, supabaseAnonKey, { + db: { schema: supabaseSchema as 'reserva_hotel' }, +}) diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 0000000..fed2fe9 --- /dev/null +++ b/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from 'clsx' +import { twMerge } from 'tailwind-merge' + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/src/types/database.ts b/src/types/database.ts new file mode 100644 index 0000000..803a659 --- /dev/null +++ b/src/types/database.ts @@ -0,0 +1,15 @@ +// Este arquivo é gerado automaticamente via `pnpm supabase:types`. +// Não edite à mão. Regenerar após cada migration. +// Placeholder inicial — Task 6 substitui com tipos reais. + +export type Json = string | number | boolean | null | { [key: string]: Json | undefined } | Json[] + +export type Database = { + reserva_hotel: { + Tables: Record + Views: Record + Functions: Record + Enums: Record + CompositeTypes: Record + } +} diff --git a/tsconfig.app.json b/tsconfig.app.json index 521c7b2..7b7c192 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -19,7 +19,7 @@ "paths": { "@/*": ["./src/*"] }, - "types": ["vitest/globals", "@testing-library/jest-dom"] + "types": ["vite/client", "vitest/globals", "@testing-library/jest-dom"] }, "include": ["src"] }