-- Migration: Company Contacts with Source and Purpose
-- Date: 2025-12-29
-- Description: Adds table for multiple company contacts (phones, emails) with metadata

-- ============================================================
-- 1. COMPANY CONTACTS TABLE
-- ============================================================
CREATE TABLE IF NOT EXISTS company_contacts (
    id SERIAL PRIMARY KEY,
    company_id INTEGER NOT NULL REFERENCES companies(id) ON DELETE CASCADE,

    -- Contact type: 'phone', 'email', 'fax', 'mobile'
    contact_type VARCHAR(20) NOT NULL,

    -- Contact value (phone number or email address)
    value VARCHAR(255) NOT NULL,

    -- Purpose/description: 'Biuro', 'Sprzedaż', 'Właściciel', 'Transport', 'Serwis', etc.
    purpose VARCHAR(100),

    -- Is this the primary contact of this type?
    is_primary BOOLEAN DEFAULT FALSE,

    -- Source of this contact data
    source VARCHAR(100), -- 'website', 'krs', 'google_business', 'facebook', 'manual', 'brave_search'
    source_url VARCHAR(500), -- URL where the contact was found
    source_date DATE, -- When the contact was found/verified

    -- Validation
    is_verified BOOLEAN DEFAULT FALSE,
    verified_at TIMESTAMP,
    verified_by VARCHAR(100),

    -- Metadata
    created_at TIMESTAMP DEFAULT NOW(),
    updated_at TIMESTAMP DEFAULT NOW(),

    -- Unique constraint to avoid duplicates
    UNIQUE (company_id, contact_type, value)
);

-- Indexes
CREATE INDEX IF NOT EXISTS idx_company_contacts_company ON company_contacts(company_id);
CREATE INDEX IF NOT EXISTS idx_company_contacts_type ON company_contacts(contact_type);
CREATE INDEX IF NOT EXISTS idx_company_contacts_primary ON company_contacts(company_id, contact_type, is_primary) WHERE is_primary = TRUE;

-- ============================================================
-- 2. COMMENTS
-- ============================================================
COMMENT ON TABLE company_contacts IS 'Multiple contacts (phones, emails) per company with source tracking';
COMMENT ON COLUMN company_contacts.contact_type IS 'Type: phone, email, fax, mobile';
COMMENT ON COLUMN company_contacts.purpose IS 'Purpose: Biuro, Sprzedaż, Właściciel, Transport, Serwis, Księgowość, etc.';
COMMENT ON COLUMN company_contacts.source IS 'Source: website, krs, google_business, facebook, manual, brave_search';

-- ============================================================
-- 3. Verify migration
-- ============================================================
DO $$
BEGIN
    RAISE NOTICE 'Migration 20251229_company_contacts completed successfully';
END $$;
