Kamus Data
Kamus data database tenant eSchool, dibuat dari struktur database sekolah
Halaman ini dibuat otomatis dari struktur database tenant (eschool-87-smkn100malang, MariaDB 10.11). Isi data tidak ikut dibaca.
Total: 192 tabel, 1762 kolom, 319 foreign key. Penjelasan koneksi, ERD inti, dan aturan ada di Dokumentasi Database.
Jangan edit halaman ini manual. Ubah migration (->comment('...')) lalu generate ulang, supaya kolom Keterangan ikut terisi.
Daftar tabel per kelompok
Pengguna dan akses (15): users, students, staffs, guardian_details, extra_student_datas, staff_support_schools, roles, permissions, role_has_permissions, model_has_roles, model_has_permissions, personal_access_tokens, password_resets, device_tokens, user_status_for_next_cycles
Sekolah, paket, dan langganan (25): schools, school_settings, system_settings, edu_level, packages, package_features, features, feature_sections, feature_section_lists, addons, addon_subscriptions, subscriptions, subscription_bills, subscription_features, trial_reminder_logs, school_inquiries, contact_inquiries, database_backups, modules, languages, faqs, sliders, galleries, guidances, receipt_settings
Akademik dan kelas (26): session_years, semesters, grade_level, classes, class_groups, class_sections, original_classes, sections, streams, mediums, shifts, rooms, subjects, class_subjects, class_teachers, subject_teachers, student_subjects, elective_subject_groups, lessons, lesson_topics, timetables, promote_students, academic_calendars, holidays, categories, certificate_templates
Absensi (9): attendances, attendance_days, attendance_points, absensi_settings, auto_absen_admins, recap_absensi, recap_edits, subject_attendances, subject_attendance_students
Ujian dan nilai (16): exams, exam_marks, exam_results, exam_timetables, grades, online_exams, online_exam_questions, online_exam_question_choices, online_exam_question_options, online_exam_answer_not_multiple_choices, online_exam_student_answers, online_exam_student_marks, student_online_exam_statuses, bank_soal, bank_soal_detail, bank_soal_versions
Tugas dan komunikasi (11): assignments, assignment_submissions, accepted_file, attachments, filetype, files, announcements, announcement_classes, notifications, chats, messages
Keuangan (19): fees, fees_class, fees_paids, fees_types, optional_fees, special_fees, expenses, expense_categories, beginning_balance, payment_accounts, payment_configurations, payment_history, payment_methods, payment_transactions, xendit_invoices, xendit_invoice_fees, payroll_settings, staff_payrolls, staff_salaries
Cuti dan pelanggaran (7): leaves, leave_details, leave_masters, student_violations, violation_types, violation_sanction_levels, warning_letter_settings
Ekstrakurikuler (4): estrakulikulers, eskul_details, eskul_absensis, eskul_timetables
Aset dan sarana (9): assets, asset_categories, asset_disposals, asset_items, asset_loans, asset_loan_items, asset_maintenances, asset_procurements, asset_stock_logs
Dokumen departemen (42): folder_bendahara, folder_humas, folder_kesiswaan, folder_kpk, folder_kpk_elin, folder_kpk_metro, folder_kpk_rpl, folder_kpk_tkj, folder_kurikulum, folder_pdsm, folder_perpus, folder_sarpas, folder_tatib, folder_tu, tag_dokumen_bendahara, tag_dokumen_humas, tag_dokumen_kesiswaan, tag_dokumen_kpk, tag_dokumen_kpk_elin, tag_dokumen_kpk_metro, tag_dokumen_kpk_rpl, tag_dokumen_kpk_tkj, tag_dokumen_kurikulum, tag_dokumen_pdsm, tag_dokumen_perpus, tag_dokumen_sarpas, tag_dokumen_tatib, tag_dokumen_tu, upload_file_bendahara, upload_file_humas, upload_file_kesiswaan, upload_file_kpk, upload_file_kpk_elin, upload_file_kpk_metro, upload_file_kpk_rpl, upload_file_kpk_tkj, upload_file_kurikulum, upload_file_pdsm, upload_file_perpus, upload_file_sarpas, upload_file_tatib, upload_file_tu
Sistem Laravel (9): migrations, failed_jobs, form_fields, kpks, department_documents, department_folders, department_tags, document_files, document_folders
Pengguna dan akses
Tabel: users
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nip | VARCHAR(20) | Unique, Nullable | |
first_name | VARCHAR(128) | Not Null | |
last_name | VARCHAR(128) | Nullable | |
mobile | VARCHAR(191) | Nullable | |
phone | VARCHAR(20) | Nullable | |
email | VARCHAR(191) | Not Null | |
password | VARCHAR(191) | Not Null | |
gender | VARCHAR(16) | Nullable | |
image | VARCHAR(512) | Nullable | |
dob | DATE | Nullable | |
current_address | VARCHAR(191) | Nullable | |
permanent_address | VARCHAR(191) | Nullable | |
occupation | VARCHAR(128) | Nullable | |
status | TINYINT | Not Null, Default 1 | |
reset_request | TINYINT | Not Null, Default 0 | |
fcm_id | VARCHAR(1024) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Nullable | |
language | VARCHAR(191) | Not Null, Default en | |
remember_token | VARCHAR(100) | Nullable | |
email_verified_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: students
Relasi: class_id → classes.id (hapus: CASCADE), class_section_id → class_sections.id (hapus: CASCADE), grade_level_id → grade_level.id (hapus: SET NULL), guardian_id → users.id (hapus: CASCADE), original_class_section_id → class_sections.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
class_id | BIGINT UNSIGNED | FK (classes.id), Nullable | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Nullable | |
billing_disabled | TINYINT(1) | Not Null, Default 0 | |
billing_disabled_at | TIMESTAMP | Nullable | |
billing_disabled_reason | TEXT | Nullable | |
original_class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Nullable | |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
application_type | VARCHAR(191) | Nullable, Default offline | |
admission_no | VARCHAR(512) | Not Null | |
nisn | VARCHAR(20) | Nullable | |
nis | VARCHAR(20) | Nullable | |
roll_number | INT | Nullable | |
admission_date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
application_status | INT | Nullable, Default 1 | 1- accepted, 0- rejected |
guardian_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: staffs
Relasi: user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
qualification | VARCHAR(512) | Nullable | |
salary | DOUBLE | Not Null, Default 0 | |
joining_date | DATE | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: guardian_details
Relasi: user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
nama_wali | VARCHAR(191) | Not Null | |
tahun_lahir_wali | VARCHAR(191) | Not Null | |
jenjang_pendidikan_wali | VARCHAR(191) | Not Null | |
pekerjaan_wali | VARCHAR(191) | Not Null | |
penghasilan_wali | VARCHAR(191) | Not Null | |
NIK_wali | VARCHAR(191) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: extra_student_datas
Relasi: form_field_id → form_fields.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
form_field_id | BIGINT UNSIGNED | FK (form_fields.id), Not Null | |
data | TEXT | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: staff_support_schools
Relasi: school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: roles
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Unique (name+guard_name+school_id), Not Null | |
guard_name | VARCHAR(191) | Unique (name+guard_name+school_id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (name+guard_name+school_id), Nullable | |
custom_role | TINYINT(1) | Not Null, Default 1 | |
editable | TINYINT(1) | Not Null, Default 1 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: permissions
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Unique (name+guard_name), Not Null | |
guard_name | VARCHAR(191) | Unique (name+guard_name), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: role_has_permissions
Relasi: permission_id → permissions.id (hapus: CASCADE), role_id → roles.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
permission_id | BIGINT UNSIGNED | PK (gabungan), FK (permissions.id), Not Null | |
role_id | BIGINT UNSIGNED | PK (gabungan), FK (roles.id), Not Null |
Tabel: model_has_roles
Relasi: role_id → roles.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
role_id | BIGINT UNSIGNED | PK (gabungan), FK (roles.id), Not Null | |
model_type | VARCHAR(191) | PK (gabungan), Not Null | |
model_id | BIGINT UNSIGNED | PK (gabungan), Not Null |
Tabel: model_has_permissions
Relasi: permission_id → permissions.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
permission_id | BIGINT UNSIGNED | PK (gabungan), FK (permissions.id), Not Null | |
model_type | VARCHAR(191) | PK (gabungan), Not Null | |
model_id | BIGINT UNSIGNED | PK (gabungan), Not Null |
Tabel: personal_access_tokens
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
tokenable_type | VARCHAR(191) | Not Null | |
tokenable_id | BIGINT UNSIGNED | Not Null | |
name | VARCHAR(191) | Not Null | |
token | VARCHAR(64) | Not Null | |
abilities | TEXT | Nullable | |
last_used_at | TIMESTAMP | Nullable | |
expires_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: password_resets
Tabel ini tidak punya primary key.
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
email | VARCHAR(191) | Not Null | |
token | VARCHAR(191) | Not Null | |
created_at | TIMESTAMP | Nullable |
Tabel: device_tokens
Relasi: user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Unique (user_id+fcm_id), Nullable | |
fcm_id | VARCHAR(191) | Unique (user_id+fcm_id), Not Null | |
platform | VARCHAR(10) | Not Null | |
last_seen_at | TIMESTAMP | Nullable | |
is_active | TINYINT(1) | Not Null, Default 1 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: user_status_for_next_cycles
Relasi: school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
status | INT | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Sekolah, paket, dan langganan
Tabel: schools
Relasi: admin_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
address | VARCHAR(191) | Not Null | |
support_phone | VARCHAR(191) | Not Null | |
support_email | VARCHAR(191) | Not Null | |
tagline | VARCHAR(191) | Not Null | |
logo | VARCHAR(191) | Not Null | |
admin_id | BIGINT UNSIGNED | FK (users.id), Nullable | user_id |
status | TINYINT | Not Null, Default 0 | 0 => Deactivate, 1 => Active |
trial_start_date | TIMESTAMP | Nullable | When trial period started (when school was activated) |
trial_end_date | TIMESTAMP | Nullable | When trial period ends (trial_start_date + 14 days) |
is_trial | TINYINT(1) | Not Null, Default 1 | Whether school is in trial mode |
edu_level_id | BIGINT UNSIGNED | Nullable | |
timezone | VARCHAR(191) | Not Null, Default Asia/Jakarta | Timezone untuk setiap school/tenant |
domain | VARCHAR(191) | Nullable | |
database_name | VARCHAR(191) | Nullable | |
code | VARCHAR(191) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable | |
xendit_api_key_test | TEXT | Nullable | |
xendit_api_key_live | TEXT | Nullable | |
xendit_callback_token | VARCHAR(191) | Nullable | |
xendit_enabled | TINYINT(1) | Not Null, Default 0 | |
payment_mode | ENUM('manual','xendit','both') | Not Null, Default manual |
Tabel: school_settings
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
data | TEXT | Not Null | |
type | VARCHAR(191) | Nullable | datatype like string , file etc |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: system_settings
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
data | TEXT | Not Null | |
type | VARCHAR(191) | Nullable | datatype like string , file etc |
Tabel: edu_level
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Unique, Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: packages
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Nullable | |
description | VARCHAR(191) | Nullable | |
tagline | VARCHAR(191) | Nullable | |
student_charge | DOUBLE(8,2) | Not Null | |
staff_charge | DOUBLE(8,2) | Not Null | |
days | INT | Not Null, Default 1 | |
type | INT | Not Null, Default 1 | 0 => Prepaid, 1 => Postpaid |
no_of_students | INT | Not Null, Default 0 | |
no_of_staffs | INT | Not Null, Default 0 | |
charges | DOUBLE(8,2) | Not Null | |
status | TINYINT | Not Null, Default 0 | 0 => Unpublished, 1 => Published |
is_trial | INT | Not Null, Default 0 | |
student_limit | INT | Not Null, Default 0 | Maximum students allowed. -1 = unlimited, 0 = use system default |
staff_limit | INT | Not Null, Default 0 | Maximum staff allowed. -1 = unlimited, 0 = use system default |
class_limit | INT | Not Null, Default 0 | Maximum classes allowed. -1 = unlimited, 0 = use system default |
subject_limit | INT | Not Null, Default 0 | Maximum subjects allowed. -1 = unlimited, 0 = use system default |
announcement_limit | INT | Not Null, Default 0 | Maximum announcements per month. -1 = unlimited, 0 = use system default |
assignment_limit | INT | Not Null, Default 0 | Maximum assignments per month. -1 = unlimited, 0 = use system default |
exam_limit | INT | Not Null, Default 0 | Maximum exams per month. -1 = unlimited, 0 = use system default |
holiday_limit | INT | Not Null, Default 0 | Maximum holidays per year. -1 = unlimited, 0 = use system default |
features_json | TEXT | Nullable | JSON array of allowed features for this package |
trial_days | INT | Not Null, Default 14 | |
highlight | TINYINT | Not Null, Default 0 | 0 => No, 1 => Yes |
rank | INT | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: package_features
Relasi: feature_id → features.id (hapus: CASCADE), package_id → packages.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
package_id | BIGINT UNSIGNED | FK (packages.id), Not Null | |
feature_id | BIGINT UNSIGNED | FK (features.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: features
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
is_default | TINYINT | Not Null, Default 0 | 0 => No, 1 => Yes |
status | INT | Not Null, Default 1 | |
required_vps | INT | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: feature_sections
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
title | VARCHAR(191) | Not Null | |
heading | VARCHAR(191) | Nullable | |
rank | INT | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: feature_section_lists
Relasi: feature_section_id → feature_sections.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
feature_section_id | BIGINT UNSIGNED | FK (feature_sections.id), Not Null | |
feature | VARCHAR(191) | Nullable | |
description | TEXT | Nullable | |
image | VARCHAR(191) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: addons
Relasi: feature_id → features.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
price | DOUBLE(8,4) | Not Null | Daily price |
feature_id | BIGINT UNSIGNED | FK (features.id), Not Null | |
status | TINYINT | Not Null, Default 0 | 0 => Inactive, 1 => Active |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: addon_subscriptions
Relasi: feature_id → features.id (hapus: CASCADE), payment_transaction_id → payment_transactions.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), subscription_id → subscriptions.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
subscription_id | BIGINT UNSIGNED | FK (subscriptions.id), Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
feature_id | BIGINT UNSIGNED | FK (features.id), Not Null | |
price | DOUBLE(64,4) | Not Null | |
start_date | DATE | Not Null | |
end_date | DATE | Not Null | |
status | TINYINT | Not Null, Default 1 | 0 => Discontinue next billing, 1 => Continue |
payment_transaction_id | BIGINT UNSIGNED | FK (payment_transactions.id), Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: subscriptions
Relasi: package_id → packages.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | Not Null | |
package_id | BIGINT UNSIGNED | FK (packages.id), Not Null | |
name | VARCHAR(191) | Not Null | |
student_charge | DOUBLE(8,4) | Not Null | |
staff_charge | DOUBLE(8,4) | Not Null | |
start_date | DATE | Not Null | |
end_date | DATE | Not Null | |
package_type | INT | Not Null, Default 1 | 0 => Prepaid, 1 => Postpaid |
no_of_students | INT | Not Null, Default 0 | |
no_of_staffs | INT | Not Null, Default 0 | |
charges | DOUBLE(64,4) | Not Null, Default 0.0000 | |
billing_cycle | INT | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: subscription_bills
Relasi: payment_transaction_id → payment_transactions.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), subscription_id → subscriptions.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
subscription_id | BIGINT UNSIGNED | FK (subscriptions.id), Not Null | |
description | VARCHAR(191) | Nullable | |
amount | DOUBLE(64,4) | Not Null | |
total_student | INT | Not Null | |
total_staff | INT | Not Null | |
payment_transaction_id | BIGINT UNSIGNED | FK (payment_transactions.id), Nullable | |
due_date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: subscription_features
Relasi: feature_id → features.id (hapus: CASCADE), subscription_id → subscriptions.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
subscription_id | BIGINT UNSIGNED | FK (subscriptions.id), Not Null | |
feature_id | BIGINT UNSIGNED | FK (features.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: trial_reminder_logs
Relasi: subscription_id → subscriptions.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
subscription_id | BIGINT UNSIGNED | FK (subscriptions.id), Unique (subscription_id+days_left), Not Null | |
days_left | INT UNSIGNED | Unique (subscription_id+days_left), Not Null | |
sent_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: school_inquiries
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_name | VARCHAR(191) | Not Null | |
school_email | VARCHAR(191) | Unique, Not Null | |
school_phone | VARCHAR(191) | Nullable | |
school_address | VARCHAR(191) | Nullable | |
school_tagline | VARCHAR(191) | Nullable | |
date | DATE | Nullable | |
status | ENUM('pending','approved','rejected') | Not Null, Default pending | |
payment_proof | VARCHAR(191) | Nullable | |
payment_date | DATE | Nullable | |
payment_status | ENUM('pending','verified','rejected') | Not Null, Default pending | |
notes | TEXT | Nullable | |
database_status | ENUM('not_created','creating','created','failed') | Not Null, Default not_created | |
database_created_at | TIMESTAMP | Nullable | |
database_error | TEXT | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: contact_inquiries
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
email | VARCHAR(191) | Not Null | |
subject | VARCHAR(191) | Not Null | |
message | TEXT | Not Null | |
type | VARCHAR(191) | Nullable | |
status | ENUM('new','replied','closed') | Not Null, Default new | |
replied_at | TIMESTAMP | Nullable | |
replied_by | BIGINT UNSIGNED | Nullable | |
admin_reply | TEXT | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: database_backups
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
last_backup_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: modules
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (school_id+code), Not Null | |
code | VARCHAR(50) | Unique (school_id+code), Not Null | kode unik: humas, kurikulum, dll |
name | VARCHAR(100) | Not Null | nama tampil |
is_active | TINYINT | Not Null, Default 1 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: languages
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Not Null | |
code | VARCHAR(64) | Not Null | |
file | VARCHAR(512) | Not Null | |
status | TINYINT | Not Null, Default 0 | 1=>active |
is_rtl | TINYINT | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: faqs
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
title | VARCHAR(191) | Not Null | |
description | TEXT | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: sliders
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
image | VARCHAR(1024) | Not Null | |
link | VARCHAR(191) | Nullable | |
type | INT | Not Null, Default 1 | 1 => App, 2 => web, 3 => Both |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: galleries
Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
title | VARCHAR(191) | Not Null | |
description | VARCHAR(191) | Nullable | |
thumbnail | VARCHAR(191) | Nullable | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: guidances
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(100) | Nullable | |
link | TEXT | Nullable |
Tabel: receipt_settings
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | Unique, Not Null | |
receipt_size | VARCHAR(2) | Not Null, Default m | |
receipt_print_mode | ENUM('none','confirm','auto') | Not Null, Default confirm | |
receipt_logo_path | VARCHAR(191) | Nullable | |
receipt_header_html | TEXT | Nullable | |
receipt_footer_html | TEXT | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Akademik dan kelas
Tabel: session_years
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Not Null | |
default | TINYINT | Not Null, Default 0 | |
start_date | DATE | Not Null | |
end_date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: semesters
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
start_month | TINYINT | Not Null | |
start_day | TINYINT | Nullable, Default 1 | |
end_month | TINYINT | Not Null | |
end_day | TINYINT | Nullable, Default 30 | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: grade_level
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: classes
Relasi: grade_level_id → grade_level.id (hapus: SET NULL), medium_id → mediums.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), shift_id → shifts.id (hapus: CASCADE), stream_id → streams.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Not Null | |
include_semesters | TINYINT | Not Null, Default 0 | 0 - no 1 - yes |
medium_id | BIGINT UNSIGNED | FK (mediums.id), Not Null | |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
shift_id | BIGINT UNSIGNED | FK (shifts.id), Nullable | |
stream_id | BIGINT UNSIGNED | FK (streams.id), Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: class_groups
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Nullable | |
description | TEXT | Nullable | |
image | VARCHAR(191) | Nullable | |
class_ids | VARCHAR(191) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: class_sections
Relasi: class_id → classes.id (hapus: CASCADE), grade_level_id → grade_level.id (hapus: SET NULL), medium_id → mediums.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), section_id → sections.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_id | BIGINT UNSIGNED | FK (classes.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null | |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
section_id | BIGINT UNSIGNED | FK (sections.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null | |
medium_id | BIGINT UNSIGNED | FK (mediums.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable | |
pkl | TINYINT(1) | Not Null, Default 0 |
Tabel: original_classes
Relasi: class_id → classes.id (hapus: SET NULL), class_section_id → class_sections.id (hapus: SET NULL), student_id → students.id (hapus: SET NULL), user_id → users.id (hapus: SET NULL).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
original_key | CHAR(36) | Not Null | |
student_id | BIGINT UNSIGNED | FK (students.id), Nullable | |
user_id | BIGINT UNSIGNED | FK (users.id), Nullable | |
class_id | BIGINT UNSIGNED | FK (classes.id), Nullable | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Nullable | |
session_year_id | BIGINT UNSIGNED | Nullable | |
school_id | BIGINT UNSIGNED | Nullable | |
admission_no | VARCHAR(512) | Nullable | |
roll_number | INT UNSIGNED | Nullable | |
admission_date | DATE | Nullable | |
student_name | VARCHAR(191) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: sections
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: streams
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: mediums
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
deleted_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: shifts
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
start_time | TIME | Not Null | |
end_time | TIME | Not Null | |
status | INT | Not Null, Default 1 | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: rooms
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (school_id+code), Not Null | |
name | VARCHAR(150) | Not Null | |
code | VARCHAR(50) | Unique (school_id+code), Nullable | |
type | ENUM('CLASSROOM','LAB','OFFICE','LIBRARY','HALL','STORAGE','WORKSHOP','OTHER') | Not Null, Default CLASSROOM | |
capacity | INT | Not Null, Default 0 | |
description | TEXT | Nullable | |
is_active | TINYINT | Not Null, Default 1 | |
created_by | BIGINT UNSIGNED | Nullable | |
updated_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: subjects
Relasi: medium_id → mediums.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Unique, Not Null | |
code | VARCHAR(64) | Nullable | |
bg_color | VARCHAR(32) | Not Null | |
image | VARCHAR(512) | Not Null | |
medium_id | BIGINT UNSIGNED | FK (mediums.id), Not Null | |
type | VARCHAR(64) | Not Null | Theory / Practical |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: class_subjects
Relasi: class_id → classes.id (hapus: CASCADE), elective_subject_group_id → elective_subject_groups.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), semester_id → semesters.id (hapus: CASCADE), subject_id → subjects.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_id | BIGINT UNSIGNED | FK (classes.id), Not Null | |
subject_id | BIGINT UNSIGNED | FK (subjects.id), Not Null | |
type | VARCHAR(32) | Not Null | Compulsory / Elective |
elective_subject_group_id | BIGINT UNSIGNED | FK (elective_subject_groups.id), Nullable | if type=Elective |
semester_id | BIGINT UNSIGNED | FK (semesters.id), Nullable | |
virtual_semester_id | INT | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
deleted_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: class_teachers
Relasi: class_section_id → class_sections.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), teacher_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
teacher_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: subject_teachers
Relasi: class_section_id → class_sections.id (hapus: CASCADE), class_subject_id → class_subjects.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), subject_id → subjects.id (hapus: CASCADE), teacher_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
subject_id | BIGINT UNSIGNED | FK (subjects.id), Not Null | |
teacher_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: student_subjects
Relasi: class_section_id → class_sections.id (hapus: CASCADE), class_subject_id → class_subjects.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: elective_subject_groups
Relasi: class_id → classes.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), semester_id → semesters.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
total_subjects | INT | Not Null | |
total_selectable_subjects | INT | Not Null | |
class_id | BIGINT UNSIGNED | FK (classes.id), Not Null | |
semester_id | BIGINT UNSIGNED | FK (semesters.id), Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: lessons
Relasi: class_section_id → class_sections.id (hapus: CASCADE), class_subject_id → class_subjects.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Unique, Not Null | |
description | VARCHAR(1024) | Nullable | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: lesson_topics
Relasi: lesson_id → lessons.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
lesson_id | BIGINT UNSIGNED | FK (lessons.id), Unique (name+lesson_id), Not Null | |
name | VARCHAR(128) | Unique (name+lesson_id), Not Null | |
description | VARCHAR(1024) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: timetables
Relasi: class_section_id → class_sections.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), semester_id → semesters.id (hapus: CASCADE), subject_id → subjects.id (hapus: CASCADE), subject_teacher_id → subject_teachers.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
subject_teacher_id | BIGINT UNSIGNED | FK (subject_teachers.id), Nullable | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
subject_id | BIGINT UNSIGNED | FK (subjects.id), Nullable | |
start_time | TIME | Not Null | |
end_time | TIME | Not Null | |
note | VARCHAR(1024) | Nullable | |
day | ENUM('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday') | Not Null | |
type | ENUM('Lecture','Break') | Not Null | |
semester_id | BIGINT UNSIGNED | FK (semesters.id), Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: promote_students
Relasi: class_section_id → class_sections.id (hapus: CASCADE), from_grade_level_id → grade_level.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE), to_grade_level_id → grade_level.id (hapus: SET NULL), original_class_section_id → class_sections.id (hapus: SET NULL).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
original_class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Nullable | |
from_grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
to_grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
result | TINYINT | Not Null, Default 1 | 1=>Pass,0=>fail |
status | TINYINT | Not Null, Default 1 | 1=>continue,0=>leave |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: academic_calendars
Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
date | DATE | Not Null | |
title | VARCHAR(512) | Not Null | |
description | VARCHAR(1024) | Nullable | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: holidays
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
start_date | DATE | Not Null | |
end_date | DATE | Not Null | |
title | VARCHAR(128) | Not Null | |
description | VARCHAR(1024) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: categories
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(512) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
status | TINYINT | Not Null, Default 1 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: certificate_templates
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
page_layout | VARCHAR(191) | Not Null | A4 Portrait, A4 Landscape, Custom |
height | DOUBLE(8,2) | Nullable | |
width | DOUBLE(8,2) | Nullable | |
user_image_shape | VARCHAR(191) | Not Null | Round, Square |
image_size | DOUBLE(8,2) | Nullable | |
background_image | VARCHAR(191) | Nullable | |
description | TEXT | Nullable | |
fields | VARCHAR(191) | Nullable | |
style | LONGTEXT | Nullable | |
type | VARCHAR(191) | Nullable | Student, Staff |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Absensi
Tabel: attendances
Relasi: class_section_id → class_sections.id (hapus: CASCADE), grade_level_id → grade_level.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
type | TINYINT | Not Null | 0=Absent, 1=Present |
date | DATE | Not Null | |
remark | VARCHAR(512) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: attendance_days
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | Unique (school_id+day_key), Not Null | |
day_key | VARCHAR(10) | Unique (school_id+day_key), Not Null | |
day_name | VARCHAR(20) | Not Null | |
is_active | TINYINT(1) | Not Null, Default 1 | |
max_jp | TINYINT UNSIGNED | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: attendance_points
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
starting_range | DOUBLE | Not Null | |
ending_range | DOUBLE | Not Null | |
rules | VARCHAR(191) | Not Null | |
school_id | INT | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: absensi_settings
Relasi: kesiswaan_user_id → users.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), tatib_user_id → users.id (hapus: SET NULL).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
point_kehadiran | DOUBLE(8,2) | Not Null | |
point_tatib | DOUBLE(8,2) | Not Null | |
tatib | VARCHAR(191) | Not Null | |
kesiswaan | VARCHAR(191) | Not Null | |
nip_tatib | VARCHAR(191) | Not Null | |
nip_kesiswaan | VARCHAR(191) | Not Null | |
ttd_kesiswaan | VARCHAR(191) | Not Null | |
ttd_petugas | VARCHAR(191) | Not Null | |
logo_sekolah | VARCHAR(191) | Not Null | |
kesiswaan_user_id | BIGINT UNSIGNED | FK (users.id), Nullable | |
tatib_user_id | BIGINT UNSIGNED | FK (users.id), Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: auto_absen_admins
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
month_year | VARCHAR(7) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: recap_absensi
Relasi: original_class_section_id → class_sections.id (hapus: SET NULL), class_section_id → class_sections.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), student_id → students.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (students.id), Not Null | |
thbln | VARCHAR(10) | Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
original_class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Nullable | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
t1 | VARCHAR(10) | Nullable | |
t2 | VARCHAR(10) | Nullable | |
t3 | VARCHAR(10) | Nullable | |
t4 | VARCHAR(10) | Nullable | |
t5 | VARCHAR(10) | Nullable | |
t6 | VARCHAR(10) | Nullable | |
t7 | VARCHAR(10) | Nullable | |
t8 | VARCHAR(10) | Nullable | |
t9 | VARCHAR(10) | Nullable | |
t10 | VARCHAR(10) | Nullable | |
t11 | VARCHAR(10) | Nullable | |
t12 | VARCHAR(10) | Nullable | |
t13 | VARCHAR(10) | Nullable | |
t14 | VARCHAR(10) | Nullable | |
t15 | VARCHAR(10) | Nullable | |
t16 | VARCHAR(10) | Nullable | |
t17 | VARCHAR(10) | Nullable | |
t18 | VARCHAR(10) | Nullable | |
t19 | VARCHAR(10) | Nullable | |
t20 | VARCHAR(10) | Nullable | |
t21 | VARCHAR(10) | Nullable | |
t22 | VARCHAR(10) | Nullable | |
t23 | VARCHAR(10) | Nullable | |
t24 | VARCHAR(10) | Nullable | |
t25 | VARCHAR(10) | Nullable | |
t26 | VARCHAR(10) | Nullable | |
t27 | VARCHAR(10) | Nullable | |
t28 | VARCHAR(10) | Nullable | |
t29 | VARCHAR(10) | Nullable | |
t30 | VARCHAR(10) | Nullable | |
t31 | VARCHAR(10) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: recap_edits
Relasi: subject_attendance_id → subject_attendances.id (hapus: CASCADE), subject_attendance_student_id → subject_attendance_students.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
subject_attendance_id | BIGINT UNSIGNED | FK (subject_attendances.id), Not Null | |
subject_attendance_student_id | BIGINT UNSIGNED | FK (subject_attendance_students.id), Not Null | |
text | VARCHAR(191) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: subject_attendances
Relasi: class_section_id → class_sections.id (hapus: CASCADE), grade_level_id → grade_level.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), timetable_id → timetables.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
timetable_id | BIGINT UNSIGNED | FK (timetables.id), Not Null | |
jumlah_jp | INT | Not Null | |
materi | TEXT | Nullable | |
lampiran | VARCHAR(191) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: subject_attendance_students
Relasi: student_id → users.id (hapus: CASCADE), subject_attendance_id → subject_attendances.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
subject_attendance_id | BIGINT UNSIGNED | FK (subject_attendances.id), Not Null | subject_attendance_id |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
type | TINYINT | Not Null | 0=Absent, 1=Present |
note | TEXT | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Ujian dan nilai
Tabel: exams
Relasi: class_id → classes.id (hapus: CASCADE), grade_level_id → grade_level.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
name | VARCHAR(128) | Not Null | |
description | VARCHAR(1024) | Nullable | |
class_id | BIGINT UNSIGNED | FK (classes.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
start_date | DATE | Nullable | |
end_date | DATE | Nullable | |
publish | TINYINT | Not Null, Default 0 | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: exam_marks
Relasi: class_subject_id → class_subjects.id (hapus: CASCADE), exam_timetable_id → exam_timetables.id (hapus: CASCADE), grade_level_id → grade_level.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
exam_timetable_id | BIGINT UNSIGNED | FK (exam_timetables.id), Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
obtained_marks | DOUBLE(8,2) | Not Null | |
teacher_review | VARCHAR(1024) | Nullable | |
passing_status | TINYINT(1) | Not Null | 1=Pass, 0=Fail |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
grade | TEXT | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: exam_results
Relasi: class_section_id → class_sections.id (hapus: CASCADE), exam_id → exams.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
exam_id | BIGINT UNSIGNED | FK (exams.id), Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
total_marks | INT | Not Null | |
obtained_marks | DOUBLE(8,2) | Not Null | |
percentage | DOUBLE(8,2) | Not Null | |
grade | TEXT | Not Null | |
status | INT | Not Null, Default 1 | 0 -> Failed, 1 -> Pass |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: exam_timetables
Relasi: class_subject_id → class_subjects.id (hapus: CASCADE), exam_id → exams.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
exam_id | BIGINT UNSIGNED | FK (exams.id), Not Null | |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
total_marks | DOUBLE(8,2) | Not Null | |
passing_marks | DOUBLE(8,2) | Not Null | |
date | DATE | Not Null | |
start_time | TIME | Not Null | |
end_time | TIME | Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: grades
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
starting_range | DOUBLE(8,2) | Not Null | |
ending_range | DOUBLE(8,2) | Not Null | |
grade | TEXT | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: online_exams
Relasi: class_section_id → class_sections.id (hapus: CASCADE), class_subject_id → class_subjects.id (hapus: CASCADE), grade_level_id → grade_level.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
grade_level_id | BIGINT UNSIGNED | FK (grade_level.id), Nullable | |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
title | VARCHAR(128) | Not Null | |
exam_key | INT | Not Null | |
duration | INT | Not Null | in minutes |
start_date | DATETIME | Not Null | |
end_date | DATETIME | Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: online_exam_questions
Relasi: class_section_id → class_sections.id (hapus: CASCADE), class_subject_id → class_subjects.id (hapus: CASCADE), last_edited_by → users.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
question | VARCHAR(1024) | Not Null | |
image_url | VARCHAR(1024) | Nullable | |
note | VARCHAR(1024) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
last_edited_by | BIGINT UNSIGNED | FK (users.id), Not Null | teacher_user_id |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable | |
type | ENUM('essay','short_answer','multiple_choice','true_false','numeric') | Not Null, Default multiple_choice | |
version | VARCHAR(50) | Nullable |
Tabel: online_exam_question_choices
Relasi: online_exam_id → online_exams.id (hapus: CASCADE), question_id → online_exam_questions.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
online_exam_id | BIGINT UNSIGNED | FK (online_exams.id), Not Null | |
question_id | BIGINT UNSIGNED | FK (online_exam_questions.id), Not Null | |
marks | INT | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: online_exam_question_options
Relasi: question_id → online_exam_questions.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
question_id | BIGINT UNSIGNED | FK (online_exam_questions.id), Not Null | |
option | VARCHAR(1024) | Not Null | |
image_url | VARCHAR(1024) | Nullable | |
is_answer | TINYINT(1) | Not Null, Default 0 | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable | |
feedback | TEXT | Nullable | |
percentage | INT | Not Null, Default 0 |
Tabel: online_exam_answer_not_multiple_choices
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
answer | TEXT | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
is_answer_correction | TINYINT(1) | Nullable |
Tabel: online_exam_student_answers
Relasi: answer_id → online_exam_answer_not_multiple_choices.id (hapus: CASCADE), online_exam_id → online_exams.id (hapus: CASCADE), option_id → online_exam_question_options.id (hapus: CASCADE), question_id → online_exam_question_choices.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
online_exam_id | BIGINT UNSIGNED | FK (online_exams.id), Not Null | |
question_id | BIGINT UNSIGNED | FK (online_exam_question_choices.id), Not Null | |
answer_id | BIGINT UNSIGNED | FK (online_exam_answer_not_multiple_choices.id), Nullable | |
option_id | BIGINT UNSIGNED | FK (online_exam_question_options.id), Nullable | |
submitted_date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable | |
is_answer_correction | TINYINT(1) | Nullable | |
marks | INT | Nullable |
Tabel: online_exam_student_marks
Relasi: online_exam_id → online_exams.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
online_exam_id | BIGINT UNSIGNED | FK (online_exams.id), Not Null | |
marks | DECIMAL(5,2) | Not Null, Default 0.00 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: student_online_exam_statuses
Relasi: online_exam_id → online_exams.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
online_exam_id | BIGINT UNSIGNED | FK (online_exams.id), Not Null | |
status | TINYINT | Not Null | 1 - in progress 2 - completed |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: bank_soal
Relasi: subject_id → subjects.id (hapus: CASCADE), teacher_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
teacher_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
subject_id | BIGINT UNSIGNED | FK (subjects.id), Not Null | |
name | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable, Default current_timestamp() | |
updated_at | TIMESTAMP | Nullable, Default current_timestamp() | |
deleted_at | DATETIME | Nullable |
Tabel: bank_soal_detail
Relasi: bank_soal_id → bank_soal.id (hapus: CASCADE), subject_id → subjects.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
bank_soal_id | BIGINT UNSIGNED | FK (bank_soal.id), Not Null | |
subject_id | BIGINT UNSIGNED | FK (subjects.id), Nullable | |
created_at | TIMESTAMP | Nullable, Default current_timestamp() | |
updated_at | TIMESTAMP | Nullable, Default current_timestamp() |
Tabel: bank_soal_versions
Relasi: bank_soal_detail_id → bank_soal_detail.id (hapus: CASCADE), updated_by → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
bank_soal_detail_id | BIGINT UNSIGNED | FK (bank_soal_detail.id), Not Null | |
version | VARCHAR(50) | Not Null | |
question | TEXT | Not Null | |
name | VARCHAR(255) | Nullable | |
note | TEXT | Nullable | |
image | VARCHAR(255) | Nullable | |
default_point | INT | Nullable, Default 1 | |
type | VARCHAR(50) | Not Null | |
options | LONGTEXT | Not Null | |
created_at | TIMESTAMP | Nullable, Default current_timestamp() | |
updated_at | TIMESTAMP | Nullable, Default current_timestamp() | |
updated_by | BIGINT UNSIGNED | FK (users.id), Nullable |
Tugas dan komunikasi
Tabel: assignments
Relasi: class_section_id → class_sections.id (hapus: CASCADE), class_subject_id → class_subjects.id (hapus: CASCADE), created_by → users.id (hapus: CASCADE), edited_by → users.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Not Null | |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Not Null | |
name | VARCHAR(128) | Not Null | |
instructions | VARCHAR(1024) | Nullable | |
due_date | DATETIME | Not Null | |
points | INT | Nullable | |
resubmission | TINYINT(1) | Not Null, Default 0 | |
extra_days_for_resubmission | INT | Nullable | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_by | BIGINT UNSIGNED | FK (users.id), Not Null | teacher_user_id |
edited_by | BIGINT UNSIGNED | FK (users.id), Nullable | teacher_user_id |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
start_date | DATETIME | Nullable | |
end_date | DATETIME | Nullable | |
min_points | INT | Not Null | |
max_file | INT | Nullable | |
text | TINYINT(1) | Not Null, Default 1 |
Tabel: assignment_submissions
Relasi: assignment_id → assignments.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
assignment_id | BIGINT UNSIGNED | FK (assignments.id), Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
feedback | TEXT | Nullable | |
points | INT | Nullable | |
status | TINYINT | Not Null, Default 0 | 0 = Pending/In Review , 1 = Accepted , 2 = Rejected , 3 = Resubmitted |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
content | VARCHAR(100) | Nullable | |
file | TINYINT(1) | Not Null, Default 0 | |
label | TINYINT(1) | Nullable |
Tabel: accepted_file
Relasi: assignment_id → assignments.id (hapus: CASCADE), filetype_id → filetype.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
assignment_id | BIGINT UNSIGNED | FK (assignments.id), Nullable | |
filetype_id | BIGINT UNSIGNED | FK (filetype.id), Nullable | |
created_at | TIMESTAMP | Nullable, Default current_timestamp() | |
updated_at | TIMESTAMP | Nullable, Default current_timestamp() |
Tabel: attachments
Relasi: message_id → messages.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
message_id | BIGINT UNSIGNED | FK (messages.id), Not Null | |
file | VARCHAR(191) | Nullable | |
file_type | VARCHAR(191) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: filetype
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(10) | Not Null |
Tabel: files
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
modal_type | VARCHAR(191) | Not Null | |
modal_id | BIGINT UNSIGNED | Not Null | |
file_name | VARCHAR(1024) | Nullable | |
file_thumbnail | VARCHAR(1024) | Nullable | |
type | TEXT | Not Null | 1 = File Upload, 2 = Youtube Link, 3 = Video Upload, 4 = Other Link |
file_url | VARCHAR(1024) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: announcements
Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
title | VARCHAR(128) | Not Null | |
description | VARCHAR(1024) | Nullable | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: announcement_classes
Relasi: announcement_id → announcements.id (hapus: CASCADE), class_section_id → class_sections.id (hapus: CASCADE), class_subject_id → class_subjects.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
announcement_id | BIGINT UNSIGNED | FK (announcements.id), Nullable | |
class_section_id | BIGINT UNSIGNED | FK (class_sections.id), Nullable | |
class_subject_id | BIGINT UNSIGNED | FK (class_subjects.id), Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: notifications
Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
title | VARCHAR(191) | Not Null | |
message | VARCHAR(191) | Nullable | |
image | VARCHAR(191) | Nullable | |
send_to | VARCHAR(191) | Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: chats
Relasi: receiver_id → users.id (hapus: CASCADE), sender_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
sender_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
receiver_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: messages
Relasi: chat_id → chats.id (hapus: CASCADE), sender_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
chat_id | BIGINT UNSIGNED | FK (chats.id), Not Null | |
sender_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
message | TEXT | Nullable | |
read_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Keuangan
Tabel: fees
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(100) | Not Null | |
type | VARCHAR(191) | Not Null | |
amount | DECIMAL(22,2) | Not Null, Default 0.00 | |
start_date | DATE | Nullable | |
due_date | DATE | Not Null | |
end_date | DATE | Nullable | |
penalty_percent | DECIMAL(5,2) | Not Null, Default 0.00 | |
payment_method | VARCHAR(50) | Nullable | |
paid_at | TIMESTAMP | Nullable | |
description | TEXT | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: fees_class
Relasi: class_section_id → class_sections.id (hapus: CASCADE), fees_id → fees.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
class_section_id | BIGINT UNSIGNED | PK (gabungan), FK (class_sections.id), Not Null | |
fees_id | BIGINT UNSIGNED | PK (gabungan), FK (fees.id), Not Null |
Tabel: fees_paids
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
fees_id | BIGINT UNSIGNED | Not Null | |
student_id | BIGINT UNSIGNED | Not Null | user_id |
is_fully_paid | TINYINT(1) | Not Null | 0 - No, 1 - Yes |
is_used_installment | TINYINT(1) | Not Null | 0 - No, 1 - Yes |
amount | DOUBLE(8,2) | Not Null | |
date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | Not Null | |
session_year_id | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: fees_types
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
description | VARCHAR(191) | Nullable | |
school_id | BIGINT UNSIGNED | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: optional_fees
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | Not Null | user_id |
class_id | BIGINT UNSIGNED | Not Null | |
payment_transaction_id | BIGINT UNSIGNED | Nullable | |
fees_class_id | BIGINT UNSIGNED | Nullable | |
mode | ENUM('cash','cheque','online') | Not Null | |
cheque_no | VARCHAR(191) | Nullable | |
amount | DOUBLE(8,2) | Not Null | |
fees_paid_id | BIGINT UNSIGNED | Nullable | |
date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | Not Null | |
status | ENUM('success','pending','failed') | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: special_fees
Relasi: fees_id → fees.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | FK (users.id), Not Null | user_id |
fees_id | BIGINT UNSIGNED | FK (fees.id), Not Null | user_id |
discount | DECIMAL(8,2) | Not Null | |
notes | TEXT | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: expenses
Relasi: category_id → expense_categories.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE), staff_id → staffs.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
category_id | BIGINT UNSIGNED | FK (expense_categories.id), Nullable | |
ref_no | VARCHAR(191) | Nullable | |
staff_id | BIGINT UNSIGNED | FK (staffs.id), Nullable | |
basic_salary | INT | Not Null, Default 0 | |
paid_leaves | DOUBLE(8,2) | Not Null, Default 0.00 | |
month | INT | Nullable | |
year | INT | Nullable | |
title | VARCHAR(512) | Not Null | |
description | VARCHAR(191) | Nullable | |
amount | DOUBLE(64,2) | Not Null | |
date | DATE | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: expense_categories
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
description | VARCHAR(191) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: beginning_balance
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
cut_off_date | DATE | Unique, Not Null | Tanggal cut-off saldo |
cash_balance | DECIMAL(15,2) | Not Null, Default 0.00 | Saldo kas |
bank_balance | DECIMAL(15,2) | Not Null, Default 0.00 | Saldo bank |
receivables | DECIMAL(15,2) | Not Null, Default 0.00 | Piutang |
payables | DECIMAL(15,2) | Not Null, Default 0.00 | Utang |
expenditure | DECIMAL(15,2) | Not Null, Default 0.00 | pengeuaran |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: payment_accounts
Relasi: payment_method_id → payment_methods.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
payment_method_id | BIGINT UNSIGNED | FK (payment_methods.id), Not Null | |
bank_name | VARCHAR(100) | Nullable | Nama bank / e-wallet provider |
account_number | VARCHAR(50) | Not Null | Nomor rekening / nomor e-wallet |
account_holder | VARCHAR(150) | Not Null | Nama pemilik rekening |
branch | VARCHAR(100) | Nullable | Cabang bank (opsional) |
is_primary | TINYINT(1) | Not Null, Default 0 | Rekening utama untuk metode ini |
is_active | TINYINT(1) | Not Null, Default 1 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: payment_configurations
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
payment_method | VARCHAR(191) | Not Null | |
api_key | VARCHAR(191) | Not Null | |
secret_key | VARCHAR(191) | Not Null | |
webhook_secret_key | VARCHAR(191) | Not Null | |
bank_name | VARCHAR(191) | Nullable | |
account_name | VARCHAR(191) | Nullable | |
account_no | VARCHAR(191) | Nullable | |
currency_code | VARCHAR(128) | Nullable | |
status | TINYINT(1) | Not Null, Default 1 | 0 - Disabled, 1 - Enabled |
school_id | BIGINT UNSIGNED | FK (schools.id), Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: payment_history
Relasi: fees_id → fees.id (hapus: RESTRICT), payment_account_id → payment_accounts.id (hapus: SET NULL), payment_method_id → payment_methods.id (hapus: RESTRICT), student_id → students.id (hapus: RESTRICT), user_id → users.id (hapus: RESTRICT).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
student_id | BIGINT UNSIGNED | FK (students.id), Not Null | |
fees_id | BIGINT UNSIGNED | FK (fees.id), Not Null | |
status | ENUM('pending','approved','rejected') | Not Null, Default pending | |
rejection_reason | TEXT | Nullable | |
amount | DECIMAL(21,2) | Not Null | |
admin_fee_amount | DECIMAL(15,2) | Not Null, Default 0.00 | Nominal admin fee yang dikenakan saat pembayaran |
total_amount | DECIMAL(15,2) | Not Null, Default 0.00 | Total yang dibayar: amount + admin_fee_amount |
proof_image | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Not Null, Default current_timestamp() | |
updated_at | TIMESTAMP | Not Null, Default current_timestamp() | |
deleted_at | TIMESTAMP | Nullable | |
time | DATETIME | Nullable | |
payment_method_id | BIGINT UNSIGNED | FK (payment_methods.id), Not Null | |
payment_method_name | VARCHAR(100) | Nullable | |
payment_account_id | BIGINT UNSIGNED | FK (payment_accounts.id), Nullable | Rekening tujuan yang digunakan |
gateway_reference | VARCHAR(255) | Nullable | Invoice ID / Transaction ID dari payment gateway |
Tabel: payment_methods
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
code | VARCHAR(50) | Nullable | Kode unik: OVO, BCA, QRIS, CASH, dll |
category | ENUM('bank_transfer','ewallet','retail','qris','credit_card','manual') | Not Null, Default manual | |
account_number | VARCHAR(191) | Not Null | |
account_holder | VARCHAR(191) | Not Null | |
description | TEXT | Nullable | |
image | VARCHAR(191) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
admin_fee | DECIMAL(10,4) | Not Null, Default 0.0000 | Biaya admin: gunakan nilai < 1 untuk persentase (contoh: 0.015 = 1.5%), >= 1 untuk nominal flat (contoh: 4000 = Rp 4.000) |
is_active | TINYINT(1) | Not Null, Default 1 | |
requires_proof | TINYINT(1) | Not Null, Default 0 | Wajib upload bukti bayar? |
is_online | TINYINT(1) | Not Null, Default 0 | Payment gateway otomatis via Xendit? |
gateway_code | VARCHAR(50) | Nullable | Kode metode di Xendit: DANA, BCA, QRIS, dll |
sort_order | INT | Not Null, Default 0 | |
metadata | LONGTEXT | Nullable, Default NULL CHECK (json_valid(metadata)) | Config tambahan: min_amount, instructions, dll |
Tabel: payment_transactions
Relasi: school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
invoice_id | VARCHAR(255) | Nullable | |
transaction_id | VARCHAR(255) | Unique, Nullable | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
amount | DOUBLE(64,2) | Not Null | |
payment_gateway | VARCHAR(191) | Not Null | |
order_id | VARCHAR(191) | Nullable | order_id / payment_intent_id |
payment_id | VARCHAR(191) | Nullable | |
payment_signature | VARCHAR(191) | Nullable | |
payment_status | ENUM('failed','succeed','pending') | Not Null | |
payment_method | VARCHAR(50) | Nullable | |
fee_ids | LONGTEXT | Nullable, Default NULL CHECK (json_valid(fee_ids)) | |
confirmed_at | TIMESTAMP | Nullable | |
confirmed_by | BIGINT UNSIGNED | Nullable | |
status | VARCHAR(50) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: xendit_invoices
Relasi: parent_id → users.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), student_id → students.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
student_id | BIGINT UNSIGNED | FK (students.id), Not Null | |
parent_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
invoice_id | VARCHAR(191) | Unique, Not Null | |
external_id | VARCHAR(191) | Not Null | |
amount | DECIMAL(15,2) | Not Null | |
status | ENUM('pending','paid','expired','failed') | Not Null, Default pending | |
invoice_url | TEXT | Not Null | |
payer_email | VARCHAR(191) | Nullable | |
description | TEXT | Nullable | |
expiry_date | TIMESTAMP | Not Null | |
paid_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: xendit_invoice_fees
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
xendit_invoice_id | BIGINT UNSIGNED | Unique (xendit_invoice_id+fee_id), Not Null | |
fee_id | BIGINT UNSIGNED | Unique (xendit_invoice_id+fee_id), Not Null | |
amount | DECIMAL(15,2) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: payroll_settings
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
amount | DOUBLE | Nullable | |
percentage | DOUBLE(8,2) | Nullable | |
type | VARCHAR(191) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: staff_payrolls
Relasi: expense_id → expenses.id (hapus: CASCADE), payroll_setting_id → payroll_settings.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
expense_id | BIGINT UNSIGNED | FK (expenses.id), Nullable | |
payroll_setting_id | BIGINT UNSIGNED | FK (payroll_settings.id), Nullable | |
amount | DOUBLE | Nullable | |
percentage | DOUBLE(8,2) | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: staff_salaries
Relasi: payroll_setting_id → payroll_settings.id (hapus: CASCADE), staff_id → staffs.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
staff_id | BIGINT UNSIGNED | FK (staffs.id), Nullable | |
payroll_setting_id | BIGINT UNSIGNED | FK (payroll_settings.id), Nullable | |
amount | DOUBLE | Nullable | |
percentage | DOUBLE(8,2) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Cuti dan pelanggaran
Tabel: leaves
Relasi: leave_master_id → leave_masters.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
reason | VARCHAR(191) | Not Null | |
from_date | DATE | Not Null | |
to_date | DATE | Not Null | |
status | INT | Not Null, Default 0 | 0 => Pending, 1 => Approved, 2 => Rejected |
rejection_reason | TEXT | Nullable | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
leave_master_id | BIGINT UNSIGNED | FK (leave_masters.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: leave_details
Relasi: leave_id → leaves.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
leave_id | BIGINT UNSIGNED | FK (leaves.id), Not Null | |
date | DATE | Not Null | |
type | VARCHAR(191) | Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: leave_masters
Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
leaves | DOUBLE(8,2) | Not Null | Leaves per month |
holiday | VARCHAR(191) | Not Null | |
max_leave_days | INT UNSIGNED | Not Null, Default 30 | Maksimum hari cuti yang diperbolehkan per tahun |
created_by | BIGINT UNSIGNED | Nullable | ID user yang membuat data ini |
session_year_id | BIGINT UNSIGNED | FK (session_years.id), Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: student_violations
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
student_id | BIGINT UNSIGNED | Not Null | |
violation_type_id | BIGINT UNSIGNED | Nullable | |
description | TEXT | Nullable | |
status | VARCHAR(30) | Not Null, Default active | |
occurred_at | DATE | Not Null | |
school_id | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable | |
photo | VARCHAR(255) | Nullable | |
reported_by | BIGINT UNSIGNED | Nullable |
Tabel: violation_types
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
category | VARCHAR(100) | Not Null | |
points | INT UNSIGNED | Not Null, Default 0 | |
school_id | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: violation_sanction_levels
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(100) | Not Null | |
min_points | INT | Not Null | |
max_points | INT | Nullable | |
action_type | VARCHAR(50) | Nullable, Default warning | |
description | TEXT | Nullable | |
school_id | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: warning_letter_settings
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | Not Null | |
name | VARCHAR(191) | Not Null | |
threshold_points | INT | Not Null | |
description | TEXT | Nullable | |
is_active | TINYINT(1) | Not Null, Default 1 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Ekstrakurikuler
Tabel: estrakulikulers
Relasi: coach_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(191) | Not Null | |
description | TEXT | Not Null | |
coach_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
deleted_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: eskul_details
Relasi: estrakulikuler_id → estrakulikulers.id (hapus: CASCADE), student_id → students.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
estrakulikuler_id | BIGINT UNSIGNED | FK (estrakulikulers.id), Not Null | |
student_id | BIGINT UNSIGNED | FK (students.id), Not Null | |
status | VARCHAR(191) | Not Null | |
deleted_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: eskul_absensis
Relasi: eskul_detail_id → eskul_details.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
eskul_detail_id | BIGINT UNSIGNED | FK (eskul_details.id), Not Null | |
date | DATE | Not Null | |
type | TINYINT | Not Null | 0=Absent, 1=Present |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: eskul_timetables
Relasi: estrakulikuler_id → estrakulikulers.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
estrakulikuler_id | BIGINT UNSIGNED | FK (estrakulikulers.id), Not Null | |
day | VARCHAR(191) | Not Null | |
start_time | TIME | Not Null | |
end_time | TIME | Not Null | |
deleted_at | TIMESTAMP | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Aset dan sarana
Tabel: assets
Relasi: category_id → asset_categories.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (school_id+code), Not Null | |
category_id | BIGINT UNSIGNED | FK (asset_categories.id), Not Null | |
name | VARCHAR(200) | Not Null | |
code | VARCHAR(50) | Unique (school_id+code), Nullable | |
brand | VARCHAR(100) | Nullable | |
model_number | VARCHAR(100) | Nullable | |
unit | VARCHAR(50) | Not Null, Default unit | |
description | TEXT | Nullable | |
image | VARCHAR(512) | Nullable | |
is_loanable | TINYINT(1) | Not Null, Default 1 | |
min_stock_alert | INT | Not Null, Default 0 | |
is_active | TINYINT | Not Null, Default 1 | |
created_by | BIGINT UNSIGNED | Nullable | |
updated_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: asset_categories
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (school_id+code), Not Null | |
name | VARCHAR(150) | Not Null | |
code | VARCHAR(50) | Unique (school_id+code), Nullable | |
type | ENUM('ASSET','CONSUMABLE') | Not Null, Default ASSET | |
description | TEXT | Nullable | |
is_active | TINYINT | Not Null, Default 1 | |
created_by | BIGINT UNSIGNED | Nullable | |
updated_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: asset_disposals
Relasi: approved_by → users.id (hapus: SET NULL), asset_item_id → asset_items.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
asset_item_id | BIGINT UNSIGNED | FK (asset_items.id), Not Null | |
disposal_date | DATE | Not Null | |
disposal_type | ENUM('SCRAPPED','SOLD','DONATED') | Not Null, Default SCRAPPED | |
selling_price | DECIMAL(15,2) | Not Null, Default 0.00 | |
reason | TEXT | Not Null | |
bap_file_url | VARCHAR(512) | Nullable | |
approved_by | BIGINT UNSIGNED | FK (users.id), Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: asset_items
Relasi: asset_id → assets.id (hapus: CASCADE), procurement_id → asset_procurements.id (hapus: SET NULL), room_id → rooms.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (school_id+item_code), Not Null | |
asset_id | BIGINT UNSIGNED | FK (assets.id), Not Null | |
procurement_id | BIGINT UNSIGNED | FK (asset_procurements.id), Nullable | |
room_id | BIGINT UNSIGNED | FK (rooms.id), Nullable | |
item_code | VARCHAR(100) | Unique (school_id+item_code), Not Null | |
serial_number | VARCHAR(100) | Nullable | |
price | DECIMAL(15,2) | Not Null, Default 0.00 | |
condition | ENUM('GOOD','MINOR_DAMAGE','HEAVY_DAMAGE','LOST','DISPOSED') | Not Null, Default GOOD | |
status | ENUM('AVAILABLE','BORROWED','IN_MAINTENANCE','DISPOSED') | Not Null, Default AVAILABLE | |
warranty_expiry | DATE | Nullable | |
notes | TEXT | Nullable | |
created_by | BIGINT UNSIGNED | Nullable | |
updated_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: asset_loans
Relasi: approved_by → users.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (school_id+loan_number), Not Null | |
loan_number | VARCHAR(100) | Unique (school_id+loan_number), Not Null | |
user_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
borrower_type | ENUM('STAFF','STUDENT') | Not Null, Default STAFF | |
loan_date | DATETIME | Not Null | |
due_date | DATETIME | Not Null | |
return_date | DATETIME | Nullable | |
status | ENUM('PENDING','APPROVED','REJECTED','BORROWED','RETURNED','OVERDUE') | Not Null, Default PENDING | |
purpose | TEXT | Nullable | |
notes | TEXT | Nullable | |
approved_by | BIGINT UNSIGNED | FK (users.id), Nullable | |
created_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: asset_loan_items
Relasi: asset_item_id → asset_items.id (hapus: CASCADE), loan_id → asset_loans.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
loan_id | BIGINT UNSIGNED | FK (asset_loans.id), Not Null | |
asset_item_id | BIGINT UNSIGNED | FK (asset_items.id), Not Null | |
checkout_condition | ENUM('GOOD','MINOR_DAMAGE') | Not Null, Default GOOD | |
checkin_condition | ENUM('GOOD','MINOR_DAMAGE','HEAVY_DAMAGE','LOST') | Nullable | |
notes | TEXT | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: asset_maintenances
Relasi: asset_item_id → asset_items.id (hapus: SET NULL), reporter_id → users.id (hapus: CASCADE), room_id → rooms.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
asset_item_id | BIGINT UNSIGNED | FK (asset_items.id), Nullable | |
room_id | BIGINT UNSIGNED | FK (rooms.id), Nullable | |
reporter_id | BIGINT UNSIGNED | FK (users.id), Not Null | |
title | VARCHAR(200) | Not Null | |
description | TEXT | Not Null | |
photo_url | VARCHAR(512) | Nullable | |
type | ENUM('TICKET_REPAIR','ROUTINE_SERVICE') | Not Null, Default TICKET_REPAIR | |
priority | ENUM('LOW','MEDIUM','HIGH','URGENT') | Not Null, Default MEDIUM | |
status | ENUM('REPORTED','IN_INSPECTION','IN_REPAIR','RESOLVED','CLOSED','REJECTED') | Not Null, Default REPORTED | |
cost | DECIMAL(15,2) | Not Null, Default 0.00 | |
expense_id | BIGINT UNSIGNED | Nullable | |
technician_name | VARCHAR(150) | Nullable | |
completion_date | DATE | Nullable | |
action_taken | TEXT | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: asset_procurements
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
session_year_id | BIGINT UNSIGNED | Nullable | |
procurement_number | VARCHAR(100) | Nullable | |
source | VARCHAR(50) | Not Null, Default PURCHASE | |
funding_source | VARCHAR(100) | Nullable | |
vendor_name | VARCHAR(150) | Nullable | |
invoice_number | VARCHAR(100) | Nullable | |
receipt_date | DATE | Not Null | |
total_amount | DECIMAL(15,2) | Not Null, Default 0.00 | |
expense_id | BIGINT UNSIGNED | Nullable | |
receipt_file | VARCHAR(512) | Nullable | |
notes | TEXT | Nullable | |
created_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: asset_stock_logs
Relasi: asset_id → assets.id (hapus: CASCADE), procurement_id → asset_procurements.id (hapus: SET NULL), room_id → rooms.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
asset_id | BIGINT UNSIGNED | FK (assets.id), Not Null | |
procurement_id | BIGINT UNSIGNED | FK (asset_procurements.id), Nullable | |
room_id | BIGINT UNSIGNED | FK (rooms.id), Nullable | |
type | ENUM('IN','OUT','ADJUSTMENT') | Not Null, Default IN | |
quantity | INT | Not Null | |
balance_after | INT | Not Null, Default 0 | |
notes | TEXT | Nullable | |
created_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Dokumen departemen
Tabel: folder_bendahara
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_humas
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_kesiswaan
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_kpk
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_kpk_elin
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_kpk_metro
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_kpk_rpl
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_kpk_tkj
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_kurikulum
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_pdsm
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_perpus
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_sarpas
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_tatib
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: folder_tu
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_bendahara
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_humas
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_kesiswaan
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_kpk
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_kpk_elin
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_kpk_metro
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_kpk_rpl
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_kpk_tkj
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_kurikulum
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_pdsm
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_perpus
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_sarpas
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_tatib
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: tag_dokumen_tu
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: upload_file_bendahara
Relasi: id_folder → folder_bendahara.id (hapus: CASCADE), id_tag → tag_dokumen_bendahara.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_bendahara.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_bendahara.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_humas
Relasi: id_folder → folder_humas.id (hapus: CASCADE), id_tag → tag_dokumen_humas.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_humas.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_humas.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_kesiswaan
Relasi: id_folder → folder_kesiswaan.id (hapus: CASCADE), id_tag → tag_dokumen_kesiswaan.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_kesiswaan.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_kesiswaan.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_kpk
Relasi: id_folder → folder_kpk.id (hapus: CASCADE), id_tag → tag_dokumen_kpk.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_kpk.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_kpk.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_kpk_elin
Relasi: id_folder → folder_kpk_elin.id (hapus: CASCADE), id_tag → tag_dokumen_kpk_elin.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_kpk_elin.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_kpk_elin.id), Not Null | |
tacher_edit | TINYINT | Not Null, Default 0 | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: upload_file_kpk_metro
Relasi: id_folder → folder_kpk_metro.id (hapus: CASCADE), id_tag → tag_dokumen_kpk_metro.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_kpk_metro.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_kpk_metro.id), Not Null | |
tacher_edit | TINYINT | Not Null, Default 0 | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: upload_file_kpk_rpl
Relasi: id_folder → folder_kpk_rpl.id (hapus: CASCADE), id_tag → tag_dokumen_kpk_rpl.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_kpk_rpl.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_kpk_rpl.id), Not Null | |
tacher_edit | TINYINT | Not Null, Default 0 | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: upload_file_kpk_tkj
Relasi: id_folder → folder_kpk_tkj.id (hapus: CASCADE), id_tag → tag_dokumen_kpk_tkj.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_kpk_tkj.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_kpk_tkj.id), Not Null | |
tacher_edit | TINYINT | Not Null, Default 0 | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: upload_file_kurikulum
Relasi: id_folder → folder_kurikulum.id (hapus: CASCADE), id_tag → tag_dokumen_kurikulum.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_kurikulum.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_kurikulum.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_pdsm
Relasi: id_folder → folder_pdsm.id (hapus: CASCADE), id_tag → tag_dokumen_pdsm.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_pdsm.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_pdsm.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_perpus
Relasi: id_folder → folder_perpus.id (hapus: CASCADE), id_tag → tag_dokumen_perpus.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_perpus.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_perpus.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_sarpas
Relasi: id_folder → folder_sarpas.id (hapus: CASCADE), id_tag → tag_dokumen_sarpas.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_sarpas.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_sarpas.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_tatib
Relasi: id_folder → folder_tatib.id (hapus: CASCADE), id_tag → tag_dokumen_tatib.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_tatib.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_tatib.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Tabel: upload_file_tu
Relasi: id_folder → folder_tu.id (hapus: CASCADE), id_tag → tag_dokumen_tu.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
nama | VARCHAR(255) | Not Null | |
deskripsi | TEXT | Nullable | |
tanggal | DATE | Not Null | |
file | VARCHAR(255) | Not Null | |
id_tag | BIGINT UNSIGNED | FK (tag_dokumen_tu.id), Nullable | |
id_folder | BIGINT UNSIGNED | FK (folder_tu.id), Not Null | |
pengunggah | VARCHAR(255) | Not Null | |
modifikasi | VARCHAR(255) | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
tacher_edit | TINYINT | Not Null, Default 0 |
Sistem Laravel
Tabel: migrations
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | INT UNSIGNED | PK, Auto Increment, Not Null | |
migration | VARCHAR(191) | Not Null | |
batch | INT | Not Null |
Tabel: failed_jobs
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
uuid | VARCHAR(191) | Not Null | |
connection | TEXT | Not Null | |
queue | TEXT | Not Null | |
payload | LONGTEXT | Not Null | |
exception | LONGTEXT | Not Null | |
failed_at | TIMESTAMP | Not Null, Default current_timestamp() |
Tabel: form_fields
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
name | VARCHAR(128) | Not Null | |
type | VARCHAR(128) | Not Null | text,number,textarea,dropdown,checkbox,radio,fileupload |
is_required | TINYINT(1) | Not Null, Default 0 | |
default_values | TEXT | Nullable | values of radio,checkbox,dropdown,etc |
other | TEXT | Nullable | extra HTML attributes |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
rank | INT | Not Null, Default 0 | |
display_on_id | INT | Not Null, Default 0 | 0 => No, 1 => Yes |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: kpks
Relasi: school_id → schools.id (hapus: CASCADE), stream_id → streams.id (hapus: SET NULL).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Unique (school_id+name), Not Null | |
stream_id | BIGINT UNSIGNED | FK (streams.id), Nullable | |
name | VARCHAR(150) | Unique (school_id+name), Not Null | |
mode_source | ENUM('looping_jurusan','crud') | Not Null, Default crud | |
is_active | TINYINT | Not Null, Default 1 | |
created_by | BIGINT UNSIGNED | Nullable | |
updated_by | BIGINT UNSIGNED | Nullable | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: department_documents
Relasi: folder_id → department_folders.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), tag_id → department_tags.id (hapus: SET NULL).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
department | VARCHAR(50) | Not Null | |
folder_id | BIGINT UNSIGNED | FK (department_folders.id), Not Null | |
tag_id | BIGINT UNSIGNED | FK (department_tags.id), Nullable | |
name | VARCHAR(191) | Not Null | |
description | TEXT | Nullable | |
date | DATE | Not Null | |
file | VARCHAR(191) | Not Null | |
uploader | VARCHAR(191) | Not Null | |
last_modifier | VARCHAR(191) | Nullable | |
teacher_edit | TINYINT(1) | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: department_folders
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
department | VARCHAR(50) | Not Null | e.g. bendahara, kesiswaan, kpk, etc. |
name | VARCHAR(191) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: department_tags
Relasi: school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
department | VARCHAR(50) | Not Null | |
name | VARCHAR(191) | Not Null | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable |
Tabel: document_files
Relasi: folder_id → document_folders.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), uploader_id → users.id (hapus: SET NULL).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
owner_type | ENUM('kpk','module') | Not Null | pemiliknya: kpk/module |
owner_id | BIGINT UNSIGNED | Not Null | id kpks / modules |
folder_id | BIGINT UNSIGNED | FK (document_folders.id), Nullable | |
uuid | CHAR(36) | Unique, Not Null | nama unik (untuk storage) |
name | VARCHAR(191) | Not Null | nama tampil/original |
description | TEXT | Nullable | deskripsi file |
path | VARCHAR(1024) | Not Null | path file di storage |
mime | VARCHAR(120) | Nullable | |
size | BIGINT UNSIGNED | Not Null, Default 0 | byte |
uploader_id | BIGINT UNSIGNED | FK (users.id), Nullable | |
visible_to_teacher | TINYINT(1) | Not Null, Default 0 | tampil di guru? |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |
Tabel: document_folders
Relasi: parent_id → document_folders.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).
| Nama Kolom | Tipe Data | Atribut | Keterangan |
|---|---|---|---|
id | BIGINT UNSIGNED | PK, Auto Increment, Not Null | |
school_id | BIGINT UNSIGNED | FK (schools.id), Not Null | |
owner_type | ENUM('kpk','module') | Not Null | pemiliknya: kpk / module |
owner_id | BIGINT UNSIGNED | Not Null | id dari kpks / modules |
parent_id | BIGINT UNSIGNED | FK (document_folders.id), Nullable | folder induk (boleh null) |
name | VARCHAR(191) | Not Null | nama folder |
sort | INT UNSIGNED | Not Null, Default 0 | |
created_at | TIMESTAMP | Nullable | |
updated_at | TIMESTAMP | Nullable | |
deleted_at | TIMESTAMP | Nullable |