feat: seed dados de teste (unidade aguas lindas, precos, fotos, extras) + types atualizados
This commit is contained in:
parent
87f6e8df4f
commit
118bde32f4
@ -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 = {
|
||||
// Allows to automatically instantiate createClient with right options
|
||||
// instead of createClient<Database, { PostgrestVersion: 'XX' }>(URL, KEY)
|
||||
__InternalSupabase: {
|
||||
PostgrestVersion: '13.0.4'
|
||||
PostgrestVersion: "13.0.4"
|
||||
}
|
||||
reserva_hotel: {
|
||||
Tables: {
|
||||
@ -89,11 +95,11 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'extras_id_marca_fkey'
|
||||
columns: ['id_marca']
|
||||
foreignKeyName: "extras_id_marca_fkey"
|
||||
columns: ["id_marca"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'marcas'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "marcas"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -133,11 +139,11 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'fotos_categoria_id_unidade_fkey'
|
||||
columns: ['id_unidade']
|
||||
foreignKeyName: "fotos_categoria_id_unidade_fkey"
|
||||
columns: ["id_unidade"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'unidades'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "unidades"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -213,11 +219,11 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'precos_id_marca_fkey'
|
||||
columns: ['id_marca']
|
||||
foreignKeyName: "precos_id_marca_fkey"
|
||||
columns: ["id_marca"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'marcas'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "marcas"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -242,25 +248,25 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'reserva_extras_id_extra_fkey'
|
||||
columns: ['id_extra']
|
||||
foreignKeyName: "reserva_extras_id_extra_fkey"
|
||||
columns: ["id_extra"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'extras'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "extras"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
{
|
||||
foreignKeyName: 'reserva_extras_id_reserva_fkey'
|
||||
columns: ['id_reserva']
|
||||
foreignKeyName: "reserva_extras_id_reserva_fkey"
|
||||
columns: ["id_reserva"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'reservas'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "reservas"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
{
|
||||
foreignKeyName: 'reserva_extras_id_reserva_fkey'
|
||||
columns: ['id_reserva']
|
||||
foreignKeyName: "reserva_extras_id_reserva_fkey"
|
||||
columns: ["id_reserva"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'vw_reservas_completa'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "vw_reservas_completa"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -348,18 +354,18 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'reservas_id_suite_fkey'
|
||||
columns: ['id_suite']
|
||||
foreignKeyName: "reservas_id_suite_fkey"
|
||||
columns: ["id_suite"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'suites'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "suites"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
{
|
||||
foreignKeyName: 'reservas_id_unidade_fkey'
|
||||
columns: ['id_unidade']
|
||||
foreignKeyName: "reservas_id_unidade_fkey"
|
||||
columns: ["id_unidade"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'unidades'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "unidades"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -423,18 +429,18 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'suites_unidades_id_suite_fkey'
|
||||
columns: ['id_suite']
|
||||
foreignKeyName: "suites_unidades_id_suite_fkey"
|
||||
columns: ["id_suite"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'suites'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "suites"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
{
|
||||
foreignKeyName: 'suites_unidades_id_unidade_fkey'
|
||||
columns: ['id_unidade']
|
||||
foreignKeyName: "suites_unidades_id_unidade_fkey"
|
||||
columns: ["id_unidade"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'unidades'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "unidades"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -483,18 +489,18 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'unidades_id_conta_pagamento_fkey'
|
||||
columns: ['id_conta_pagamento']
|
||||
foreignKeyName: "unidades_id_conta_pagamento_fkey"
|
||||
columns: ["id_conta_pagamento"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'contas_pagamento'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "contas_pagamento"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
{
|
||||
foreignKeyName: 'unidades_id_marca_fkey'
|
||||
columns: ['id_marca']
|
||||
foreignKeyName: "unidades_id_marca_fkey"
|
||||
columns: ["id_marca"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'marcas'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "marcas"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -516,11 +522,11 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'precos_id_marca_fkey'
|
||||
columns: ['id_marca']
|
||||
foreignKeyName: "precos_id_marca_fkey"
|
||||
columns: ["id_marca"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'marcas'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "marcas"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
]
|
||||
}
|
||||
@ -556,18 +562,18 @@ export type Database = {
|
||||
}
|
||||
Relationships: [
|
||||
{
|
||||
foreignKeyName: 'reservas_id_suite_fkey'
|
||||
columns: ['id_suite']
|
||||
foreignKeyName: "reservas_id_suite_fkey"
|
||||
columns: ["id_suite"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'suites'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "suites"
|
||||
referencedColumns: ["id"]
|
||||
},
|
||||
{
|
||||
foreignKeyName: 'reservas_id_unidade_fkey'
|
||||
columns: ['id_unidade']
|
||||
foreignKeyName: "reservas_id_unidade_fkey"
|
||||
columns: ["id_unidade"]
|
||||
isOneToOne: false
|
||||
referencedRelation: 'unidades'
|
||||
referencedColumns: ['id']
|
||||
referencedRelation: "unidades"
|
||||
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<
|
||||
DefaultSchemaTableNameOrOptions extends
|
||||
| keyof (DefaultSchema['Tables'] & DefaultSchema['Views'])
|
||||
| keyof (DefaultSchema["Tables"] & DefaultSchema["Views"])
|
||||
| { schema: keyof DatabaseWithoutInternals },
|
||||
TableName extends DefaultSchemaTableNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] &
|
||||
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Views'])
|
||||
? keyof (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
|
||||
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])
|
||||
: never = never,
|
||||
> = DefaultSchemaTableNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'] &
|
||||
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Views'])[TableName] extends {
|
||||
? (DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"] &
|
||||
DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Views"])[TableName] extends {
|
||||
Row: infer R
|
||||
}
|
||||
? R
|
||||
: never
|
||||
: DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema['Tables'] & DefaultSchema['Views'])
|
||||
? (DefaultSchema['Tables'] & DefaultSchema['Views'])[DefaultSchemaTableNameOrOptions] extends {
|
||||
: DefaultSchemaTableNameOrOptions extends keyof (DefaultSchema["Tables"] &
|
||||
DefaultSchema["Views"])
|
||||
? (DefaultSchema["Tables"] &
|
||||
DefaultSchema["Views"])[DefaultSchemaTableNameOrOptions] extends {
|
||||
Row: infer R
|
||||
}
|
||||
? R
|
||||
@ -625,23 +633,23 @@ export type Tables<
|
||||
|
||||
export type TablesInsert<
|
||||
DefaultSchemaTableNameOrOptions extends
|
||||
| keyof DefaultSchema['Tables']
|
||||
| keyof DefaultSchema["Tables"]
|
||||
| { schema: keyof DatabaseWithoutInternals },
|
||||
TableName extends DefaultSchemaTableNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables']
|
||||
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
|
||||
: never = never,
|
||||
> = DefaultSchemaTableNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends {
|
||||
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
|
||||
Insert: infer I
|
||||
}
|
||||
? I
|
||||
: never
|
||||
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables']
|
||||
? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends {
|
||||
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
|
||||
? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
|
||||
Insert: infer I
|
||||
}
|
||||
? I
|
||||
@ -650,23 +658,23 @@ export type TablesInsert<
|
||||
|
||||
export type TablesUpdate<
|
||||
DefaultSchemaTableNameOrOptions extends
|
||||
| keyof DefaultSchema['Tables']
|
||||
| keyof DefaultSchema["Tables"]
|
||||
| { schema: keyof DatabaseWithoutInternals },
|
||||
TableName extends DefaultSchemaTableNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables']
|
||||
? keyof DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"]
|
||||
: never = never,
|
||||
> = DefaultSchemaTableNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions['schema']]['Tables'][TableName] extends {
|
||||
? DatabaseWithoutInternals[DefaultSchemaTableNameOrOptions["schema"]]["Tables"][TableName] extends {
|
||||
Update: infer U
|
||||
}
|
||||
? U
|
||||
: never
|
||||
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema['Tables']
|
||||
? DefaultSchema['Tables'][DefaultSchemaTableNameOrOptions] extends {
|
||||
: DefaultSchemaTableNameOrOptions extends keyof DefaultSchema["Tables"]
|
||||
? DefaultSchema["Tables"][DefaultSchemaTableNameOrOptions] extends {
|
||||
Update: infer U
|
||||
}
|
||||
? U
|
||||
@ -675,36 +683,36 @@ export type TablesUpdate<
|
||||
|
||||
export type Enums<
|
||||
DefaultSchemaEnumNameOrOptions extends
|
||||
| keyof DefaultSchema['Enums']
|
||||
| keyof DefaultSchema["Enums"]
|
||||
| { schema: keyof DatabaseWithoutInternals },
|
||||
EnumName extends DefaultSchemaEnumNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions['schema']]['Enums']
|
||||
? keyof DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"]
|
||||
: never = never,
|
||||
> = DefaultSchemaEnumNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions['schema']]['Enums'][EnumName]
|
||||
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema['Enums']
|
||||
? DefaultSchema['Enums'][DefaultSchemaEnumNameOrOptions]
|
||||
? DatabaseWithoutInternals[DefaultSchemaEnumNameOrOptions["schema"]]["Enums"][EnumName]
|
||||
: DefaultSchemaEnumNameOrOptions extends keyof DefaultSchema["Enums"]
|
||||
? DefaultSchema["Enums"][DefaultSchemaEnumNameOrOptions]
|
||||
: never
|
||||
|
||||
export type CompositeTypes<
|
||||
PublicCompositeTypeNameOrOptions extends
|
||||
| keyof DefaultSchema['CompositeTypes']
|
||||
| keyof DefaultSchema["CompositeTypes"]
|
||||
| { schema: keyof DatabaseWithoutInternals },
|
||||
CompositeTypeName extends PublicCompositeTypeNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes']
|
||||
? keyof DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"]
|
||||
: never = never,
|
||||
> = PublicCompositeTypeNameOrOptions extends {
|
||||
schema: keyof DatabaseWithoutInternals
|
||||
}
|
||||
? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions['schema']]['CompositeTypes'][CompositeTypeName]
|
||||
: PublicCompositeTypeNameOrOptions extends keyof DefaultSchema['CompositeTypes']
|
||||
? DefaultSchema['CompositeTypes'][PublicCompositeTypeNameOrOptions]
|
||||
? DatabaseWithoutInternals[PublicCompositeTypeNameOrOptions["schema"]]["CompositeTypes"][CompositeTypeName]
|
||||
: PublicCompositeTypeNameOrOptions extends keyof DefaultSchema["CompositeTypes"]
|
||||
? DefaultSchema["CompositeTypes"][PublicCompositeTypeNameOrOptions]
|
||||
: never
|
||||
|
||||
export const Constants = {
|
||||
@ -712,3 +720,5 @@ export const Constants = {
|
||||
Enums: {},
|
||||
},
|
||||
} 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
|
||||
|
||||
86
supabase/migrations/20260413000002_seed_dados_teste.sql
Normal file
86
supabase/migrations/20260413000002_seed_dados_teste.sql
Normal 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 $$;
|
||||
Loading…
Reference in New Issue
Block a user