feat: seed dados de teste (unidade aguas lindas, precos, fotos, extras) + types atualizados

This commit is contained in:
Rodribm10 2026-04-13 23:41:49 -03:00
parent 87f6e8df4f
commit 118bde32f4
2 changed files with 187 additions and 91 deletions

View File

@ -1,10 +1,16 @@
export type Json = string | number | boolean | null | { [key: string]: Json | undefined } | Json[] export type Json =
| string
| number
| boolean
| null
| { [key: string]: Json | undefined }
| Json[]
export type Database = { export type Database = {
// Allows to automatically instantiate createClient with right options // Allows to automatically instantiate createClient with right options
// instead of createClient<Database, { PostgrestVersion: 'XX' }>(URL, KEY) // instead of createClient<Database, { PostgrestVersion: 'XX' }>(URL, KEY)
__InternalSupabase: { __InternalSupabase: {
PostgrestVersion: '13.0.4' PostgrestVersion: "13.0.4"
} }
reserva_hotel: { reserva_hotel: {
Tables: { Tables: {
@ -89,11 +95,11 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'extras_id_marca_fkey' foreignKeyName: "extras_id_marca_fkey"
columns: ['id_marca'] columns: ["id_marca"]
isOneToOne: false isOneToOne: false
referencedRelation: 'marcas' referencedRelation: "marcas"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -133,11 +139,11 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'fotos_categoria_id_unidade_fkey' foreignKeyName: "fotos_categoria_id_unidade_fkey"
columns: ['id_unidade'] columns: ["id_unidade"]
isOneToOne: false isOneToOne: false
referencedRelation: 'unidades' referencedRelation: "unidades"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -213,11 +219,11 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'precos_id_marca_fkey' foreignKeyName: "precos_id_marca_fkey"
columns: ['id_marca'] columns: ["id_marca"]
isOneToOne: false isOneToOne: false
referencedRelation: 'marcas' referencedRelation: "marcas"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -242,25 +248,25 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'reserva_extras_id_extra_fkey' foreignKeyName: "reserva_extras_id_extra_fkey"
columns: ['id_extra'] columns: ["id_extra"]
isOneToOne: false isOneToOne: false
referencedRelation: 'extras' referencedRelation: "extras"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
{ {
foreignKeyName: 'reserva_extras_id_reserva_fkey' foreignKeyName: "reserva_extras_id_reserva_fkey"
columns: ['id_reserva'] columns: ["id_reserva"]
isOneToOne: false isOneToOne: false
referencedRelation: 'reservas' referencedRelation: "reservas"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
{ {
foreignKeyName: 'reserva_extras_id_reserva_fkey' foreignKeyName: "reserva_extras_id_reserva_fkey"
columns: ['id_reserva'] columns: ["id_reserva"]
isOneToOne: false isOneToOne: false
referencedRelation: 'vw_reservas_completa' referencedRelation: "vw_reservas_completa"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -348,18 +354,18 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'reservas_id_suite_fkey' foreignKeyName: "reservas_id_suite_fkey"
columns: ['id_suite'] columns: ["id_suite"]
isOneToOne: false isOneToOne: false
referencedRelation: 'suites' referencedRelation: "suites"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
{ {
foreignKeyName: 'reservas_id_unidade_fkey' foreignKeyName: "reservas_id_unidade_fkey"
columns: ['id_unidade'] columns: ["id_unidade"]
isOneToOne: false isOneToOne: false
referencedRelation: 'unidades' referencedRelation: "unidades"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -423,18 +429,18 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'suites_unidades_id_suite_fkey' foreignKeyName: "suites_unidades_id_suite_fkey"
columns: ['id_suite'] columns: ["id_suite"]
isOneToOne: false isOneToOne: false
referencedRelation: 'suites' referencedRelation: "suites"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
{ {
foreignKeyName: 'suites_unidades_id_unidade_fkey' foreignKeyName: "suites_unidades_id_unidade_fkey"
columns: ['id_unidade'] columns: ["id_unidade"]
isOneToOne: false isOneToOne: false
referencedRelation: 'unidades' referencedRelation: "unidades"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -483,18 +489,18 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'unidades_id_conta_pagamento_fkey' foreignKeyName: "unidades_id_conta_pagamento_fkey"
columns: ['id_conta_pagamento'] columns: ["id_conta_pagamento"]
isOneToOne: false isOneToOne: false
referencedRelation: 'contas_pagamento' referencedRelation: "contas_pagamento"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
{ {
foreignKeyName: 'unidades_id_marca_fkey' foreignKeyName: "unidades_id_marca_fkey"
columns: ['id_marca'] columns: ["id_marca"]
isOneToOne: false isOneToOne: false
referencedRelation: 'marcas' referencedRelation: "marcas"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -516,11 +522,11 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'precos_id_marca_fkey' foreignKeyName: "precos_id_marca_fkey"
columns: ['id_marca'] columns: ["id_marca"]
isOneToOne: false isOneToOne: false
referencedRelation: 'marcas' referencedRelation: "marcas"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -556,18 +562,18 @@ export type Database = {
} }
Relationships: [ Relationships: [
{ {
foreignKeyName: 'reservas_id_suite_fkey' foreignKeyName: "reservas_id_suite_fkey"
columns: ['id_suite'] columns: ["id_suite"]
isOneToOne: false isOneToOne: false
referencedRelation: 'suites' referencedRelation: "suites"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
{ {
foreignKeyName: 'reservas_id_unidade_fkey' foreignKeyName: "reservas_id_unidade_fkey"
columns: ['id_unidade'] columns: ["id_unidade"]
isOneToOne: false isOneToOne: false
referencedRelation: 'unidades' referencedRelation: "unidades"
referencedColumns: ['id'] referencedColumns: ["id"]
}, },
] ]
} }
@ -592,31 +598,33 @@ export type Database = {
} }
} }
type DatabaseWithoutInternals = Omit<Database, '__InternalSupabase'> type DatabaseWithoutInternals = Omit<Database, "__InternalSupabase">
type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, 'public'>] type DefaultSchema = DatabaseWithoutInternals[Extract<keyof Database, "public">]
export type Tables< export type Tables<
DefaultSchemaTableNameOrOptions extends DefaultSchemaTableNameOrOptions extends
| keyof (DefaultSchema['Tables'] & DefaultSchema['Views']) | keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
| { schema: keyof DatabaseWithoutInternals }, | { schema: keyof DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends { TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] & ? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Views']) DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
: never = never, : never = never,
> = DefaultSchemaTableNameOrOptions extends { > = DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] & ? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Views'])[TableName] extends { DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
Row: infer R Row: infer R
} }
? R ? R
: never : never
: DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema['Tables'] & DefaultSchema['Views']) : DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] &
? (DefaultSchema['Tables'] & DefaultSchema['Views'])[DefaultSchemaTableNameOrOptions] extends { DefaultSchema["Views"])
? (DefaultSchema["Tables"] &
DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
Row: infer R Row: infer R
} }
? R ? R
@ -625,23 +633,23 @@ export type Tables<
export type TablesInsert< export type TablesInsert<
DefaultSchemaTableNameOrOptions extends DefaultSchemaTableNameOrOptions extends
| keyof DefaultSchema['Tables'] | keyof DefaultSchema["Tables"]
| { schema: keyof DatabaseWithoutInternals }, | { schema: keyof DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends { TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never, : never = never,
> = DefaultSchemaTableNameOrOptions extends { > = DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends { ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
Insert: infer I Insert: infer I
} }
? I ? I
: never : never
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables'] : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends { ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
Insert: infer I Insert: infer I
} }
? I ? I
@ -650,23 +658,23 @@ export type TablesInsert<
export type TablesUpdate< export type TablesUpdate<
DefaultSchemaTableNameOrOptions extends DefaultSchemaTableNameOrOptions extends
| keyof DefaultSchema['Tables'] | keyof DefaultSchema["Tables"]
| { schema: keyof DatabaseWithoutInternals }, | { schema: keyof DatabaseWithoutInternals },
TableName extends DefaultSchemaTableNameOrOptions extends { TableName extends DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] ? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
: never = never, : never = never,
> = DefaultSchemaTableNameOrOptions extends { > = DefaultSchemaTableNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends { ? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
Update: infer U Update: infer U
} }
? U ? U
: never : never
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables'] : DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends { ? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
Update: infer U Update: infer U
} }
? U ? U
@ -675,36 +683,36 @@ export type TablesUpdate<
export type Enums< export type Enums<
DefaultSchemaEnumNameOrOptions extends DefaultSchemaEnumNameOrOptions extends
| keyof DefaultSchema['Enums'] | keyof DefaultSchema["Enums"]
| { schema: keyof DatabaseWithoutInternals }, | { schema: keyof DatabaseWithoutInternals },
EnumName extends DefaultSchemaEnumNameOrOptions extends { EnumName extends DefaultSchemaEnumNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions['schema']]['Enums'] ? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
: never = never, : never = never,
> = DefaultSchemaEnumNameOrOptions extends { > = DefaultSchemaEnumNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions['schema']]['Enums'][EnumName] ? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema['Enums'] : DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
? DefaultSchema['Enums'][DefaultSchemaEnumNameOrOptions] ? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
: never : never
export type CompositeTypes< export type CompositeTypes<
PublicCompositeTypeNameOrOptions extends PublicCompositeTypeNameOrOptions extends
| keyof DefaultSchema['CompositeTypes'] | keyof DefaultSchema["CompositeTypes"]
| { schema: keyof DatabaseWithoutInternals }, | { schema: keyof DatabaseWithoutInternals },
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends { CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'] ? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
: never = never, : never = never,
> = PublicCompositeTypeNameOrOptions extends { > = PublicCompositeTypeNameOrOptions extends {
schema: keyof DatabaseWithoutInternals schema: keyof DatabaseWithoutInternals
} }
? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'][CompositeTypeName] ? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
: PublicCompositeTypeNameOrOptions extends keyof DefaultSchema['CompositeTypes'] : PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
? DefaultSchema['CompositeTypes'][PublicCompositeTypeNameOrOptions] ? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
: never : never
export const Constants = { export const Constants = {
@ -712,3 +720,5 @@ export const Constants = {
Enums: {}, Enums: {},
}, },
} as const } as const
A new version of Supabase CLI is available: v2.90.0 (currently installed v2.48.3)
We recommend updating regularly for new features and bug fixes: https://supabase.com/docs/guides/cli/getting-started#updating-the-supabase-cli

View File

@ -0,0 +1,86 @@
-- Seed de dados de teste para Reserva Rede 1001 (Fase 2+3)
-- Já aplicada via MCP. Este arquivo é source of truth.
--
-- Popula:
-- • 1 unidade (Hotel 1001 Águas Lindas) amarrada ao Captain::Unit id=4 do Chatwoot
-- • 6 preços (2 categorias × 3 permanências)
-- • 4 fotos por categoria (URLs Unsplash de placeholder)
-- • 2 extras
--
-- Idempotente: checa existência antes de inserir.
do $$
declare
v_marca_id uuid;
v_unidade_id uuid;
v_conta_id uuid;
begin
-- 1. Garante a marca com categorias e permanências coerentes
select id into v_marca_id from reserva_hotel.marcas where nome = 'Hotel 1001 Noites' limit 1;
if v_marca_id is null then
insert into reserva_hotel.marcas (nome, categorias, permanencias, ativa)
values ('Hotel 1001 Noites',
array['Standard','Hidromassagem'],
array['3hrs','4hrs','Pernoite'],
true)
returning id into v_marca_id;
else
update reserva_hotel.marcas
set categorias = array['Standard','Hidromassagem'],
permanencias = array['3hrs','4hrs','Pernoite']
where id = v_marca_id;
end if;
-- 2. Pega a primeira conta_pagamento existente (o POC tinha uma seedada)
select id into v_conta_id from reserva_hotel.contas_pagamento limit 1;
-- 3. Cria a unidade amarrada ao Captain::Unit id=4 (Hotel 1001 Águas Lindas)
select id into v_unidade_id from reserva_hotel.unidades where chatwoot_unit_id = 4 limit 1;
if v_unidade_id is null then
insert into reserva_hotel.unidades
(nome, id_marca, id_conta_pagamento, categorias_visiveis,
endereco, telefone, ativa, chatwoot_unit_id)
values
('Hotel 1001 Águas Lindas',
v_marca_id,
v_conta_id,
array['Standard','Hidromassagem'],
'Águas Lindas, GO',
'(61) 99999-0000',
true,
4)
returning id into v_unidade_id;
end if;
-- 4. Preços
if not exists (
select 1 from reserva_hotel.precos
where id_marca = v_marca_id and categoria = 'Standard' and permanencia = '3hrs'
) then
insert into reserva_hotel.precos (id_marca, categoria, permanencia, periodo_semana, valor, ativo) values
(v_marca_id, 'Standard', '3hrs', 'default', 120.00, true),
(v_marca_id, 'Standard', '4hrs', 'default', 150.00, true),
(v_marca_id, 'Standard', 'Pernoite', 'default', 220.00, true),
(v_marca_id, 'Hidromassagem', '3hrs', 'default', 170.00, true),
(v_marca_id, 'Hidromassagem', '4hrs', 'default', 210.00, true),
(v_marca_id, 'Hidromassagem', 'Pernoite', 'default', 290.00, true);
end if;
-- 5. Fotos
if not exists (select 1 from reserva_hotel.fotos_categoria where id_unidade = v_unidade_id) then
insert into reserva_hotel.fotos_categoria (id_unidade, categoria, url_foto, alt, ordem) values
(v_unidade_id, 'Standard', 'https://images.unsplash.com/photo-1631049307264-da0ec9d70304?w=800', 'Suíte Standard 1', 0),
(v_unidade_id, 'Standard', 'https://images.unsplash.com/photo-1590490360182-c33d57733427?w=800', 'Suíte Standard 2', 1),
(v_unidade_id, 'Hidromassagem', 'https://images.unsplash.com/photo-1582719508461-905c673771fd?w=800', 'Suíte Hidromassagem 1', 0),
(v_unidade_id, 'Hidromassagem', 'https://images.unsplash.com/photo-1578683010236-d716f9a3f461?w=800', 'Suíte Hidromassagem 2', 1);
end if;
-- 6. Extras
if not exists (select 1 from reserva_hotel.extras where id_marca = v_marca_id) then
insert into reserva_hotel.extras (id_marca, titulo, descricao, preco, ativo, ordem) values
(v_marca_id, 'Tira-gosto', 'Porção de petiscos servida na suíte', 35.00, true, 0),
(v_marca_id, 'Decoração romântica', 'Pétalas, velas e champanhe', 90.00, true, 1);
end if;
end $$;