-- PostgreSQL canonical schema alignment
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS legal_entity VARCHAR(100);
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS nib VARCHAR(50);
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS city VARCHAR(100);
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS province VARCHAR(100);
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS postal_code VARCHAR(20);
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS director_name VARCHAR(150);
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS accountant_name VARCHAR(150);
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS currency VARCHAR(10) NOT NULL DEFAULT 'IDR';
ALTER TABLE company_profile ADD COLUMN IF NOT EXISTS tax_method VARCHAR(30) NOT NULL DEFAULT 'MANUAL';

CREATE TABLE IF NOT EXISTS aset_tetap (
  id VARCHAR(36) PRIMARY KEY,
  asset_code VARCHAR(50) NOT NULL UNIQUE,
  asset_name VARCHAR(150) NOT NULL,
  fiscal_group VARCHAR(100) NOT NULL,
  acquisition_date DATE NOT NULL,
  acquisition_cost NUMERIC(18,2) NOT NULL DEFAULT 0,
  useful_life_years INT NOT NULL DEFAULT 1,
  depreciation_rate NUMERIC(8,4) NOT NULL DEFAULT 0,
  depreciation_method VARCHAR(100) NOT NULL,
  residual_value NUMERIC(18,2) NOT NULL DEFAULT 0,
  opening_accumulated_depreciation NUMERIC(18,2) NOT NULL DEFAULT 0,
  current_month_depreciation NUMERIC(18,2) NOT NULL DEFAULT 0,
  ending_accumulated_depreciation NUMERIC(18,2) NOT NULL DEFAULT 0,
  book_value NUMERIC(18,2) NOT NULL DEFAULT 0,
  asset_account_code VARCHAR(30) NOT NULL,
  accumulated_account_code VARCHAR(30) NOT NULL,
  expense_account_code VARCHAR(30) NOT NULL,
  location VARCHAR(255),
  description TEXT,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

-- Legacy tables users1/fixed_assets are not part of the canonical schema.
-- Data should be migrated to users/aset_tetap before those legacy tables are removed.
