public.venues
| # | Name | Type | Nullable | Default | PK |
|---|---|---|---|---|---|
| 1 | id | uuid | NO | uuid_generate_v4() | PK |
| 2 | slug | text | NO | — | |
| 3 | name | text | NO | — | |
| 4 | name_pl | text | YES | — | |
| 5 | name_uk | text | YES | — | |
| 6 | description_en | text | YES | — | |
| 7 | description_pl | text | YES | — | |
| 8 | description_uk | text | YES | — | |
| 9 | venue_type | USER-DEFINED | NO | 'karaoke_bar'::venue_type | |
| 10 | district | USER-DEFINED | NO | — | |
| 11 | address | text | NO | — | |
| 12 | latitude | double precision | NO | — | |
| 13 | longitude | double precision | NO | — | |
| 14 | phone | text | YES | — | |
| 15 | website | text | YES | — | |
| 16 | instagram | text | YES | — | |
| 17 | facebook | text | YES | — | |
| 18 | google_maps_url | text | YES | — | |
| 19 | image_url | text | YES | — | |
| 20 | opening_hours | jsonb | NO | '{}'::jsonb | |
| 21 | price_range | integer | YES | — | |
| 22 | price_details_en | text | YES | — | |
| 23 | price_details_pl | text | YES | — | |
| 24 | price_details_uk | text | YES | — | |
| 25 | has_private_rooms | boolean | NO | false | |
| 26 | has_food | boolean | NO | false | |
| 27 | has_drinks | boolean | NO | true | |
| 28 | song_count | integer | YES | — | |
| 29 | has_english_songs | boolean | NO | true | |
| 30 | has_polish_songs | boolean | NO | true | |
| 31 | has_ukrainian_songs | boolean | NO | false | |
| 32 | reservation_required | boolean | NO | false | |
| 33 | reservation_url | text | YES | — | |
| 34 | sources | jsonb | NO | '[]'::jsonb | |
| 35 | last_scraped_at | timestamp with time zone | YES | — | |
| 36 | scrape_status | text | YES | 'pending'::text | |
| 37 | scrape_error | text | YES | — | |
| 38 | is_active | boolean | NO | true | |
| 39 | is_verified | boolean | NO | false | |
| 40 | search_vector | tsvector | YES | — | |
| 41 | created_at | timestamp with time zone | NO | now() | |
| 42 | updated_at | timestamp with time zone | NO | now() | |
| 43 | google_place_id | text | YES | — | |
| 44 | price_details | text | YES | — | |
| 45 | hours_source | text | YES | — | |
| 46 | last_discovery_at | timestamp with time zone | YES | — | |
| 47 | data_confidence | double precision | YES | — | |
| 48 | karaoke_hours | jsonb | YES | '{}'::jsonb | |
| 49 | is_dedicated_karaoke | boolean | YES | false | |
| 50 | karaoke_schedule_note | text | YES | — | |
| 51 | karaoke_schedule_confidence | double precision | YES | 0 | |
| 52 | karaoke_schedule_sources | ARRAY | YES | '{}'::text[] | |
| 53 | karaoke_schedule_note_pl | text | YES | — | |
| 54 | karaoke_schedule_note_uk | text | YES | — |
Indexes
| Name | Definition | Unique | Primary | Size |
|---|---|---|---|---|
| idx_venues_active | CREATE INDEX idx_venues_active ON public.venues USING btree (is_active) WHERE (is_active = true) | 16 kB | ||
| idx_venues_discovery | CREATE INDEX idx_venues_discovery ON public.venues USING btree (last_discovery_at) | 16 kB | ||
| idx_venues_district | CREATE INDEX idx_venues_district ON public.venues USING btree (district) | 16 kB | ||
| idx_venues_location | CREATE INDEX idx_venues_location ON public.venues USING btree (latitude, longitude) | 16 kB | ||
| idx_venues_search | CREATE INDEX idx_venues_search ON public.venues USING gin (search_vector) | 80 kB | ||
| idx_venues_slug | CREATE INDEX idx_venues_slug ON public.venues USING btree (slug) | 16 kB | ||
| idx_venues_type | CREATE INDEX idx_venues_type ON public.venues USING btree (venue_type) | 16 kB | ||
| venues_pkey | CREATE UNIQUE INDEX venues_pkey ON public.venues USING btree (id) | ✓ | ✓ | 16 kB |
| venues_slug_key | CREATE UNIQUE INDEX venues_slug_key ON public.venues USING btree (slug) | ✓ | 16 kB |
Constraints
| Name | Type | Definition |
|---|---|---|
| venues_price_range_check | CHECK | CHECK (((price_range >= 1) AND (price_range <= 3))) |
| venues_pkey | PRIMARY KEY | PRIMARY KEY (id) |
| venues_slug_key | UNIQUE | UNIQUE (slug) |