-- https://www.phpmyadmin.net/
--

START TRANSACTION;



--
-- Database: `db_mms26`
--

-- --------------------------------------------------------

--
-- Table structure for table `bulk`
--

CREATE TABLE `bulk` (
  `id_bulk` int(11) NOT NULL,
  `nis` varchar(20) NOT NULL,
  `nama_siswa` varchar(100) NOT NULL,
  `nama_kelas` varchar(50) NOT NULL,
  `id_transaksi_lama` int(11) DEFAULT NULL,
  `jenis_transaksi` varchar(50) DEFAULT NULL,
  `jumlah` decimal(10,2) DEFAULT NULL,
  `keterangan` varchar(255) DEFAULT NULL,
  `tanggal_transaksi` datetime DEFAULT NULL,
  `tanggal_verifikasi` datetime DEFAULT NULL,
  `status_akhir` varchar(20) DEFAULT NULL,
  `diinput_oleh` varchar(50) DEFAULT NULL,
  `waktu_dihapus` datetime DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `bulk`
--

INSERT INTO `bulk` (`id_bulk`, `nis`, `nama_siswa`, `nama_kelas`, `id_transaksi_lama`, `jenis_transaksi`, `jumlah`, `keterangan`, `tanggal_transaksi`, `tanggal_verifikasi`, `status_akhir`, `diinput_oleh`, `waktu_dihapus`) VALUES
(5, '1005', 'Afnan', '10-A', NULL, NULL, NULL, 'Dihapus tanpa riwayat transaksi', NULL, NULL, NULL, NULL, '2026-01-26 16:52:22'),
(6, '1001', 'Cayo', '10-A', NULL, NULL, NULL, 'Dihapus tanpa riwayat transaksi', NULL, NULL, NULL, NULL, '2026-01-26 18:34:51'),
(7, '123', 'AULIA FITRIANI', '10-A', NULL, NULL, NULL, 'Dihapus tanpa riwayat transaksi', NULL, NULL, NULL, NULL, '2026-01-26 18:34:53');

-- --------------------------------------------------------

--
-- Table structure for table `data_pembayaran`
--

CREATE TABLE `data_pembayaran` (
  `id_pembayaran` int(11) NOT NULL,
  `no_rekening` varchar(20) NOT NULL,
  `nama_pembayaran` varchar(100) NOT NULL,
  `nilai_satuan` decimal(10,2) NOT NULL,
  `saldo` decimal(15,2) DEFAULT '0.00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `data_pembayaran`
--

INSERT INTO `data_pembayaran` (`id_pembayaran`, `no_rekening`, `nama_pembayaran`, `nilai_satuan`, `saldo`) VALUES
(1, 'SPP01', 'SPP', '0.00', '0.00'),
(2, '002', 'PPDB', '0.00', '5000.00');

-- --------------------------------------------------------

--
-- Table structure for table `kandidat`
--

CREATE TABLE `kandidat` (
  `id_kandidat` int(11) NOT NULL,
  `id_tahun_fk` int(11) NOT NULL,
  `no_urut` int(11) NOT NULL,
  `nama_ketua` varchar(255) NOT NULL,
  `kelas_ketua` varchar(100) DEFAULT NULL,
  `nama_wakil` varchar(255) NOT NULL,
  `kelas_wakil` varchar(100) DEFAULT NULL,
  `foto_paslon` varchar(255) DEFAULT NULL,
  `visi` text,
  `misi` text,
  `total_suara` int(11) NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `kandidat`
--

INSERT INTO `kandidat` (`id_kandidat`, `id_tahun_fk`, `no_urut`, `nama_ketua`, `kelas_ketua`, `nama_wakil`, `kelas_wakil`, `foto_paslon`, `visi`, `misi`, `total_suara`) VALUES
(1, 1, 1, 'Muhammad Zaini', 'XI A', 'Siti Fatimah', 'XI B', '691537692ae66_2025-05-28 06_58_29-DOKUMENTASI TEKS - Google Drive and 1 more page - Profile 1 - Microsoft​ Edge.png', '\"Membangun Siswa MA Darul Ulum yang Berakhlakul Karimah, Memiliki Jiwa Kepemimpinan Islami, Peduli Sosial, serta Aktif Menjadi Agen Perubahan Positif bagi Sekolah dan Masyarakat.\"', 'Menginisiasi program keagamaan rutin (seperti kajian/taddarus pagi) yang inovatif dan partisipatif untuk meningkatkan kualitas iman dan takwa siswa.\r\n\r\nMengadakan pelatihan/seminar tentang etika, sopan santun, dan kepemimpinan Islami untuk membentuk akhlakul karimah.', 0),
(2, 1, 2, 'Ahmad Budi', 'X A', 'Rina Wati', 'X C', '6915378f8fb4a_94b57367-53be-4597-9d64-3710e6278f1f.jpg', '\"Terwujudnya Generasi Emas MA Darul Ulum yang Berintegritas Tinggi, Berkarakter Kuat, Disiplin, dan Unggul dalam Prestasi, Berlandaskan Iman dan Takwa (IMTAK).\"', 'Misi Paslon 2...', 0);

-- --------------------------------------------------------

--
-- Table structure for table `kelas`
--

CREATE TABLE `kelas` (
  `id_kelas` int(11) NOT NULL,
  `tingkat` int(11) NOT NULL,
  `rombel` varchar(10) NOT NULL,
  `nama_kelas` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `kelas`
--

INSERT INTO `kelas` (`id_kelas`, `tingkat`, `rombel`, `nama_kelas`) VALUES
(1, 10, 'A', '10-A');

-- --------------------------------------------------------

--
-- Table structure for table `panitia`
--

CREATE TABLE `panitia` (
  `id_panitia` int(11) NOT NULL,
  `id_tahun_fk` int(11) NOT NULL,
  `nama_panitia` varchar(255) NOT NULL,
  `jabatan_sekolah` enum('Kepala Madrasah','Wakamad Kesiswaan','Pembina OSIM','Anggota OSIM','Lainnya') DEFAULT NULL,
  `jabatan_panitia` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `panitia`
--

INSERT INTO `panitia` (`id_panitia`, `id_tahun_fk`, `nama_panitia`, `jabatan_sekolah`, `jabatan_panitia`) VALUES
(1, 1, 'Fahmi Ali, M.Pd', 'Kepala Madrasah', 'Pelindung'),
(2, 1, 'Ade Trimawati Putri Pamungkas, M.Pd', 'Wakamad Kesiswaan', 'Penanggung Jawab'),
(3, 1, 'Syaira Nur Andini', 'Anggota OSIM', 'Ketua Panitia');

-- --------------------------------------------------------

--
-- Table structure for table `pengaturan_aplikasi`
--

CREATE TABLE `pengaturan_aplikasi` (
  `id` int(11) NOT NULL,
  `nama_aplikasi` varchar(100) DEFAULT 'E-Tabungan Siswa',
  `nama_sekolah` varchar(100) DEFAULT NULL,
  `alamat` text,
  `bendahara` varchar(100) DEFAULT NULL,
  `nip_bendahara` varchar(50) DEFAULT NULL,
  `logo_sekolah` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `pengaturan_aplikasi`
--

INSERT INTO `pengaturan_aplikasi` (`id`, `nama_aplikasi`, `nama_sekolah`, `alamat`, `bendahara`, `nip_bendahara`, `logo_sekolah`) VALUES
(1, 'E-Tabungan Siswa', 'Madu Mandiri Saving', '1', '1', '1', 'logo_1769412660.png');

-- --------------------------------------------------------

--
-- Table structure for table `suara`
--

CREATE TABLE `suara` (
  `id_suara` int(11) NOT NULL,
  `id_tahun_fk` int(11) NOT NULL,
  `id_kandidat_fk` int(11) NOT NULL,
  `id_pemilih_fk` int(11) NOT NULL,
  `waktu_memilih` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- --------------------------------------------------------

--
-- Table structure for table `tahun_fiskal`
--

CREATE TABLE `tahun_fiskal` (
  `id_tahun` int(11) NOT NULL,
  `nama_tahun` varchar(50) NOT NULL,
  `status` enum('aktif','arsip') DEFAULT 'arsip'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `tahun_fiskal`
--

INSERT INTO `tahun_fiskal` (`id_tahun`, `nama_tahun`, `status`) VALUES
(1, '2025', 'aktif'),
(2, '2026', 'arsip');

-- --------------------------------------------------------

--
-- Table structure for table `tahun_pemilihan`
--

CREATE TABLE `tahun_pemilihan` (
  `id_tahun` int(11) NOT NULL,
  `tahun_ajaran` varchar(100) NOT NULL COMMENT 'Contoh: 2025/2026',
  `status` enum('aktif','arsip') NOT NULL DEFAULT 'arsip',
  `putaran1_nama` varchar(255) DEFAULT 'Pemilihan Putaran 1',
  `putaran1_tanggal` date DEFAULT NULL,
  `putaran1_jam_mulai` time DEFAULT NULL,
  `putaran1_jam_selesai` time DEFAULT NULL,
  `putaran1_status` enum('aktif','tidak aktif') DEFAULT 'tidak aktif',
  `putaran2_nama` varchar(255) DEFAULT 'Pemilihan Putaran 2 (Final)',
  `putaran2_tanggal` date DEFAULT NULL,
  `putaran2_jam_mulai` time DEFAULT NULL,
  `putaran2_jam_selesai` time DEFAULT NULL,
  `putaran2_status` enum('aktif','tidak aktif') DEFAULT 'tidak aktif'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `tahun_pemilihan`
--

INSERT INTO `tahun_pemilihan` (`id_tahun`, `tahun_ajaran`, `status`, `putaran1_nama`, `putaran1_tanggal`, `putaran1_jam_mulai`, `putaran1_jam_selesai`, `putaran1_status`, `putaran2_nama`, `putaran2_tanggal`, `putaran2_jam_mulai`, `putaran2_jam_selesai`, `putaran2_status`) VALUES
(1, '2025', 'aktif', 'Pemilihan Putaran 1', NULL, NULL, NULL, 'tidak aktif', 'Pemilihan Putaran 2 (Final)', NULL, NULL, NULL, 'tidak aktif');

-- --------------------------------------------------------

--
-- Table structure for table `transaksi`
--

CREATE TABLE `transaksi` (
  `id_transaksi` int(11) NOT NULL,
  `id_siswa` int(11) NOT NULL,
  `jenis_transaksi` enum('setoran','penarikan','transfer_keluar','transfer_masuk','pembayaran') NOT NULL,
  `jumlah` decimal(10,2) NOT NULL,
  `keterangan` varchar(255) DEFAULT NULL,
  `tanggal_transaksi` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `status` enum('pending','valid','batal') NOT NULL DEFAULT 'pending',
  `tanggal_verifikasi` datetime DEFAULT NULL,
  `input_by` varchar(50) NOT NULL,
  `id_siswa_terkait` int(11) DEFAULT NULL,
  `group_transfer` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `transaksi`
--

INSERT INTO `transaksi` (`id_transaksi`, `id_siswa`, `jenis_transaksi`, `jumlah`, `keterangan`, `tanggal_transaksi`, `status`, `tanggal_verifikasi`, `input_by`, `id_siswa_terkait`, `group_transfer`) VALUES
(41, 19, 'setoran', '100000.00', 'Setoran Tunai', '2026-01-26 14:00:00', 'valid', '2026-01-26 20:00:34', 'Siswa', NULL, NULL),
(42, 19, 'transfer_keluar', '30000.00', 'Transfer ke ID: 21', '2026-01-26 20:00:57', 'valid', NULL, 'Siswa', NULL, 'TRF176943245719'),
(43, 21, 'transfer_masuk', '30000.00', 'Transfer dari ID: 19', '2026-01-26 20:00:57', 'valid', NULL, 'Siswa', NULL, 'TRF176943245719'),
(44, 21, 'transfer_keluar', '10000.00', 'Kirim ke Afnan', '2026-01-26 14:01:00', 'valid', '2026-01-26 20:03:00', 'admin', 19, 'TRF176943253276'),
(45, 19, 'transfer_masuk', '10000.00', 'Terima dari Aki', '2026-01-26 14:01:00', 'valid', '2026-01-26 20:03:00', 'admin', 21, 'TRF176943253276');

-- --------------------------------------------------------

--
-- Table structure for table `transaksi_payment`
--

CREATE TABLE `transaksi_payment` (
  `id_payment` int(11) NOT NULL,
  `id_siswa` int(11) NOT NULL,
  `id_pembayaran` int(11) NOT NULL,
  `jumlah` decimal(15,2) NOT NULL,
  `tanggal_bayar` datetime NOT NULL,
  `status` enum('pending','valid') DEFAULT 'pending',
  `tanggal_verifikasi` datetime DEFAULT NULL,
  `input_by` varchar(50) DEFAULT NULL,
  `keterangan` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data for table `transaksi_payment`
--

INSERT INTO `transaksi_payment` (`id_payment`, `id_siswa`, `id_pembayaran`, `jumlah`, `tanggal_bayar`, `status`, `tanggal_verifikasi`, `input_by`, `keterangan`) VALUES
(11, 19, 2, '5000.00', '0000-00-00 00:00:00', 'valid', NULL, 'Siswa', NULL);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `bulk`
--
ALTER TABLE `bulk`
  ADD PRIMARY KEY (`id_bulk`);

--
-- Indexes for table `data_pembayaran`
--
ALTER TABLE `data_pembayaran`
  ADD PRIMARY KEY (`id_pembayaran`);

--
-- Indexes for table `kandidat`
--
ALTER TABLE `kandidat`
  ADD PRIMARY KEY (`id_kandidat`),
  ADD UNIQUE KEY `no_urut` (`no_urut`),
  ADD KEY `fk_kandidat_tahun` (`id_tahun_fk`);

--
-- Indexes for table `kelas`
--
ALTER TABLE `kelas`
  ADD PRIMARY KEY (`id_kelas`),
  ADD UNIQUE KEY `nama_kelas_unik` (`nama_kelas`);

--
-- Indexes for table `panitia`
--
ALTER TABLE `panitia`
  ADD PRIMARY KEY (`id_panitia`),
  ADD KEY `fk_panitia_tahun` (`id_tahun_fk`);

--
-- Indexes for table `pengaturan_aplikasi`
--
ALTER TABLE `pengaturan_aplikasi`
  ADD PRIMARY KEY (`id`);

--
-- Indexes for table `suara`
--
ALTER TABLE `suara`
  ADD PRIMARY KEY (`id_suara`),
  ADD UNIQUE KEY `pemilih_hanya_satu_kali` (`id_pemilih_fk`),
  ADD KEY `fk_kandidat` (`id_kandidat_fk`),
  ADD KEY `fk_suara_tahun` (`id_tahun_fk`);

--
-- Indexes for table `tahun_fiskal`
--
ALTER TABLE `tahun_fiskal`
  ADD PRIMARY KEY (`id_tahun`);

--
-- Indexes for table `tahun_pemilihan`
--
ALTER TABLE `tahun_pemilihan`
  ADD PRIMARY KEY (`id_tahun`);

--
-- Indexes for table `transaksi`
--
ALTER TABLE `transaksi`
  ADD PRIMARY KEY (`id_transaksi`),
  ADD KEY `fk_id_siswa` (`id_siswa`);

--
-- Indexes for table `transaksi_payment`
--
ALTER TABLE `transaksi_payment`
  ADD PRIMARY KEY (`id_payment`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `bulk`
--
ALTER TABLE `bulk`
  MODIFY `id_bulk` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;

--
-- AUTO_INCREMENT for table `data_pembayaran`
--
ALTER TABLE `data_pembayaran`
  MODIFY `id_pembayaran` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `kandidat`
--
ALTER TABLE `kandidat`
  MODIFY `id_kandidat` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `kelas`
--
ALTER TABLE `kelas`
  MODIFY `id_kelas` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `panitia`
--
ALTER TABLE `panitia`
  MODIFY `id_panitia` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

--
-- AUTO_INCREMENT for table `pengaturan_aplikasi`
--
ALTER TABLE `pengaturan_aplikasi`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `suara`
--
ALTER TABLE `suara`
  MODIFY `id_suara` int(11) NOT NULL AUTO_INCREMENT;

--
-- AUTO_INCREMENT for table `tahun_fiskal`
--
ALTER TABLE `tahun_fiskal`
  MODIFY `id_tahun` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- AUTO_INCREMENT for table `tahun_pemilihan`
--
ALTER TABLE `tahun_pemilihan`
  MODIFY `id_tahun` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

--
-- AUTO_INCREMENT for table `transaksi`
--
ALTER TABLE `transaksi`
  MODIFY `id_transaksi` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=46;

--
-- AUTO_INCREMENT for table `transaksi_payment`
--
ALTER TABLE `transaksi_payment`
  MODIFY `id_payment` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `kandidat`
--
ALTER TABLE `kandidat`
  ADD CONSTRAINT `fk_kandidat_tahun` FOREIGN KEY (`id_tahun_fk`) REFERENCES `tahun_pemilihan` (`id_tahun`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `panitia`
--
ALTER TABLE `panitia`
  ADD CONSTRAINT `fk_panitia_tahun` FOREIGN KEY (`id_tahun_fk`) REFERENCES `tahun_pemilihan` (`id_tahun`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `suara`
--
ALTER TABLE `suara`
  ADD CONSTRAINT `fk_kandidat` FOREIGN KEY (`id_kandidat_fk`) REFERENCES `kandidat` (`id_kandidat`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_pemilih` FOREIGN KEY (`id_pemilih_fk`) REFERENCES `pemilih` (`id_pemilih`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `fk_suara_tahun` FOREIGN KEY (`id_tahun_fk`) REFERENCES `tahun_pemilihan` (`id_tahun`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Constraints for table `transaksi`
--
ALTER TABLE `transaksi`
  ADD CONSTRAINT `fk_transaksi_siswa` FOREIGN KEY (`id_siswa`) REFERENCES `siswa` (`id_siswa`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;

