-- Migration: Add cycle_feed_initial_balance table -- Description: Store initial feed sack balance (saldo karung awal) per cycle -- Date: 2026-05-26 CREATE TABLE IF NOT EXISTS cycle_feed_initial_balance ( id SERIAL PRIMARY KEY, cycle_id VARCHAR(255) NOT NULL UNIQUE, saldo_awal INTEGER NOT NULL DEFAULT 0 CHECK(saldo_awal >= 0), created_by VARCHAR(255), created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (cycle_id) REFERENCES cycles(id) ON DELETE CASCADE ); -- Create index for faster lookups by cycle CREATE INDEX IF NOT EXISTS idx_cycle_feed_initial_balance_cycle ON cycle_feed_initial_balance(cycle_id); -- Trigger for automatic updated_at timestamp DROP TRIGGER IF EXISTS update_cycle_feed_initial_balance_updated_at ON cycle_feed_initial_balance; CREATE TRIGGER update_cycle_feed_initial_balance_updated_at BEFORE UPDATE ON cycle_feed_initial_balance FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();