-- Create Companies table for multi-tenant support
CREATE TABLE IF NOT EXISTS companies (
    id              SERIAL          PRIMARY KEY,
    company_code    VARCHAR(50)     NOT NULL UNIQUE,
    company_name    VARCHAR(200)    NOT NULL,
    contact_person  VARCHAR(100),
    phone           VARCHAR(20),
    email           VARCHAR(200),
    memo            TEXT,
    is_active       BOOLEAN         NOT NULL DEFAULT TRUE,
    created_at      TIMESTAMPTZ     NOT NULL DEFAULT NOW(),
    updated_at      TIMESTAMPTZ     NOT NULL DEFAULT NOW()
);

-- Add company_id to admin_users (nullable for backward compatibility)
ALTER TABLE admin_users ADD COLUMN IF NOT EXISTS company_id INT REFERENCES companies(id) ON DELETE RESTRICT;

-- Create index for company lookups
CREATE INDEX IF NOT EXISTS idx_companies_code ON companies(company_code);
CREATE INDEX IF NOT EXISTS idx_admin_users_company ON admin_users(company_id);

-- Insert default company for existing admin users
INSERT INTO companies (company_code, company_name, is_active)
VALUES ('DEFAULT', '기본 회사', TRUE)
ON CONFLICT (company_code) DO NOTHING;

-- Assign existing admin users to default company if not assigned
UPDATE admin_users
SET company_id = (SELECT id FROM companies WHERE company_code = 'DEFAULT')
WHERE company_id IS NULL;
