-- Create our DB to work from
CREATE DATABASE collector;
\c collector

-- Modeling the businesses that we track overall
CREATE TABLE businesses (
    business_id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    business_name VARCHAR(255) NOT NULL
);

-- Modeling the products
CREATE TABLE products (
    -- Internal product ID
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),

    -- Store-specific Identifiers
    business_id UUID REFERENCES businesses (business_id) NOT NULL,

    -- Product Details
    product_name VARCHAR(255) NOT NULL,
    product_type VARCHAR(100), -- e.g., 'service', 'goods'

    -- Pricing (Numeric is preferred over Float for money)
    -- Also tracking in USD at the time
    price NUMERIC(12, 2) NOT NULL,
    currency VARCHAR(100) NOT NULL,

    -- Also tracking the price per unit
    unit_type VARCHAR(100) NOT NULL, -- e.g. 'item', 'weight', 'hour', etc.

    -- Tracking time that we checked
    track_time TIMESTAMPTZ DEFAULT current_timestamp
);
