-- 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;