CREATE TABLE mtbm_assessments (
    id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    medical_record_id UUID NOT NULL REFERENCES medical_records(id) ON DELETE CASCADE,
    visit_id UUID NOT NULL REFERENCES visits(id) ON DELETE CASCADE,
    
    -- Tenaga Medis
    nama_nakes VARCHAR(255),
    nama_asisten VARCHAR(255),
    
    -- Keluhan Utama
    bayi_sakit_apa TEXT,
    
    -- Penilaian: Memeriksa Kemungkinan Penyakit Sangat Berat atau Infeksi Bakteri
    tidak_mau_minum_dan_muntah BOOLEAN DEFAULT FALSE,
    riwayat_kejang BOOLEAN DEFAULT FALSE,
    bergerak_hanya_jika_distimulasi BOOLEAN DEFAULT FALSE,
    
    -- Pernafasan
    jumlah_nafas_dalam_1menit INT,
    jumlah_nafas_kedua INT,
    is_nafas_cepat BOOLEAN DEFAULT FALSE,
    is_nafas_lambat BOOLEAN DEFAULT FALSE,
    tarikan_dinding_dada_sangat_kuat BOOLEAN DEFAULT FALSE,
    
    -- Suhu & Infeksi Lain
    suhu_tubuh DECIMAL(4,1), -- Dalam Celcius
    mata_bernanah VARCHAR(50), -- 'sedikit', 'banyak'
    pusar_kemerahan_meluas_ke_dinding_perut BOOLEAN DEFAULT FALSE, -- > 1 cm
    pusar_kemerahan_atau_bernanah BOOLEAN DEFAULT FALSE,
    
    -- Klasifikasi
    klasifikasi_keparahan VARCHAR(255),
    
    -- Vitamin K1
    status_vitamin_k1_setelah_lahir BOOLEAN DEFAULT FALSE,
    vit_k1_diberikan_hari_ini BOOLEAN DEFAULT FALSE,
    
    -- Imunisasi
    status_imunisasi_hari_ini TEXT, -- Comma separated values: HB-0, BCG, Polio1
    imunisasi_yang_dibutuhkan_hari_ini TEXT, -- Comma separated values
    
    -- Masalah Lain
    menilai_masalah_lain TEXT,
    keterangan TEXT,
    
    -- Kunjungan Ulang
    kunjungan_kembali_hari INT, -- Jumlah hari
    
    -- Keluhan Ibu
    keluhan_ibu TEXT,
    tindakan_pengobatan_atas_keluhan_ibu TEXT,
    
    -- Metadata
    created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
    created_by UUID REFERENCES users(id),
    updated_by UUID REFERENCES users(id)
);

CREATE INDEX idx_mtbm_assessments_medical_record ON mtbm_assessments(medical_record_id);
CREATE INDEX idx_mtbm_assessments_visit ON mtbm_assessments(visit_id);

CREATE TRIGGER update_mtbm_assessments_updated_at
    BEFORE UPDATE ON mtbm_assessments
    FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
