eSchool Dev Docs

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nipVARCHAR(20)Unique, Nullable
first_nameVARCHAR(128)Not Null
last_nameVARCHAR(128)Nullable
mobileVARCHAR(191)Nullable
phoneVARCHAR(20)Nullable
emailVARCHAR(191)Not Null
passwordVARCHAR(191)Not Null
genderVARCHAR(16)Nullable
imageVARCHAR(512)Nullable
dobDATENullable
current_addressVARCHAR(191)Nullable
permanent_addressVARCHAR(191)Nullable
occupationVARCHAR(128)Nullable
statusTINYINTNot Null, Default 1
reset_requestTINYINTNot Null, Default 0
fcm_idVARCHAR(1024)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Nullable
languageVARCHAR(191)Not Null, Default en
remember_tokenVARCHAR(100)Nullable
email_verified_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
class_idBIGINT UNSIGNEDFK (classes.id), Nullable
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Nullable
billing_disabledTINYINT(1)Not Null, Default 0
billing_disabled_atTIMESTAMPNullable
billing_disabled_reasonTEXTNullable
original_class_section_idBIGINT UNSIGNEDFK (class_sections.id), Nullable
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
application_typeVARCHAR(191)Nullable, Default offline
admission_noVARCHAR(512)Not Null
nisnVARCHAR(20)Nullable
nisVARCHAR(20)Nullable
roll_numberINTNullable
admission_dateDATENot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
application_statusINTNullable, Default 11- accepted, 0- rejected
guardian_idBIGINT UNSIGNEDFK (users.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: staffs

Relasi: user_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
qualificationVARCHAR(512)Nullable
salaryDOUBLENot Null, Default 0
joining_dateDATENullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: guardian_details

Relasi: user_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
nama_waliVARCHAR(191)Not Null
tahun_lahir_waliVARCHAR(191)Not Null
jenjang_pendidikan_waliVARCHAR(191)Not Null
pekerjaan_waliVARCHAR(191)Not Null
penghasilan_waliVARCHAR(191)Not Null
NIK_waliVARCHAR(191)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
form_field_idBIGINT UNSIGNEDFK (form_fields.id), Not Null
dataTEXTNullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: staff_support_schools

Relasi: school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: roles

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Unique (name+guard_name+school_id), Not Null
guard_nameVARCHAR(191)Unique (name+guard_name+school_id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (name+guard_name+school_id), Nullable
custom_roleTINYINT(1)Not Null, Default 1
editableTINYINT(1)Not Null, Default 1
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: permissions

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Unique (name+guard_name), Not Null
guard_nameVARCHAR(191)Unique (name+guard_name), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: role_has_permissions

Relasi: permission_id → permissions.id (hapus: CASCADE), role_id → roles.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
permission_idBIGINT UNSIGNEDPK (gabungan), FK (permissions.id), Not Null
role_idBIGINT UNSIGNEDPK (gabungan), FK (roles.id), Not Null

Tabel: model_has_roles

Relasi: role_id → roles.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
role_idBIGINT UNSIGNEDPK (gabungan), FK (roles.id), Not Null
model_typeVARCHAR(191)PK (gabungan), Not Null
model_idBIGINT UNSIGNEDPK (gabungan), Not Null

Tabel: model_has_permissions

Relasi: permission_id → permissions.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
permission_idBIGINT UNSIGNEDPK (gabungan), FK (permissions.id), Not Null
model_typeVARCHAR(191)PK (gabungan), Not Null
model_idBIGINT UNSIGNEDPK (gabungan), Not Null

Tabel: personal_access_tokens

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
tokenable_typeVARCHAR(191)Not Null
tokenable_idBIGINT UNSIGNEDNot Null
nameVARCHAR(191)Not Null
tokenVARCHAR(64)Not Null
abilitiesTEXTNullable
last_used_atTIMESTAMPNullable
expires_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: password_resets

Tabel ini tidak punya primary key.

Nama KolomTipe DataAtributKeterangan
emailVARCHAR(191)Not Null
tokenVARCHAR(191)Not Null
created_atTIMESTAMPNullable

Tabel: device_tokens

Relasi: user_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Unique (user_id+fcm_id), Nullable
fcm_idVARCHAR(191)Unique (user_id+fcm_id), Not Null
platformVARCHAR(10)Not Null
last_seen_atTIMESTAMPNullable
is_activeTINYINT(1)Not Null, Default 1
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: user_status_for_next_cycles

Relasi: school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
statusINTNot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Sekolah, paket, dan langganan

Tabel: schools

Relasi: admin_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
addressVARCHAR(191)Not Null
support_phoneVARCHAR(191)Not Null
support_emailVARCHAR(191)Not Null
taglineVARCHAR(191)Not Null
logoVARCHAR(191)Not Null
admin_idBIGINT UNSIGNEDFK (users.id), Nullableuser_id
statusTINYINTNot Null, Default 00 => Deactivate, 1 => Active
trial_start_dateTIMESTAMPNullableWhen trial period started (when school was activated)
trial_end_dateTIMESTAMPNullableWhen trial period ends (trial_start_date + 14 days)
is_trialTINYINT(1)Not Null, Default 1Whether school is in trial mode
edu_level_idBIGINT UNSIGNEDNullable
timezoneVARCHAR(191)Not Null, Default Asia/JakartaTimezone untuk setiap school/tenant
domainVARCHAR(191)Nullable
database_nameVARCHAR(191)Nullable
codeVARCHAR(191)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable
xendit_api_key_testTEXTNullable
xendit_api_key_liveTEXTNullable
xendit_callback_tokenVARCHAR(191)Nullable
xendit_enabledTINYINT(1)Not Null, Default 0
payment_modeENUM('manual','xendit','both')Not Null, Default manual

Tabel: school_settings

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
dataTEXTNot Null
typeVARCHAR(191)Nullabledatatype like string , file etc
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: system_settings

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
dataTEXTNot Null
typeVARCHAR(191)Nullabledatatype like string , file etc

Tabel: edu_level

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Unique, Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: packages

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Nullable
descriptionVARCHAR(191)Nullable
taglineVARCHAR(191)Nullable
student_chargeDOUBLE(8,2)Not Null
staff_chargeDOUBLE(8,2)Not Null
daysINTNot Null, Default 1
typeINTNot Null, Default 10 => Prepaid, 1 => Postpaid
no_of_studentsINTNot Null, Default 0
no_of_staffsINTNot Null, Default 0
chargesDOUBLE(8,2)Not Null
statusTINYINTNot Null, Default 00 => Unpublished, 1 => Published
is_trialINTNot Null, Default 0
student_limitINTNot Null, Default 0Maximum students allowed. -1 = unlimited, 0 = use system default
staff_limitINTNot Null, Default 0Maximum staff allowed. -1 = unlimited, 0 = use system default
class_limitINTNot Null, Default 0Maximum classes allowed. -1 = unlimited, 0 = use system default
subject_limitINTNot Null, Default 0Maximum subjects allowed. -1 = unlimited, 0 = use system default
announcement_limitINTNot Null, Default 0Maximum announcements per month. -1 = unlimited, 0 = use system default
assignment_limitINTNot Null, Default 0Maximum assignments per month. -1 = unlimited, 0 = use system default
exam_limitINTNot Null, Default 0Maximum exams per month. -1 = unlimited, 0 = use system default
holiday_limitINTNot Null, Default 0Maximum holidays per year. -1 = unlimited, 0 = use system default
features_jsonTEXTNullableJSON array of allowed features for this package
trial_daysINTNot Null, Default 14
highlightTINYINTNot Null, Default 00 => No, 1 => Yes
rankINTNot Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: package_features

Relasi: feature_id → features.id (hapus: CASCADE), package_id → packages.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
package_idBIGINT UNSIGNEDFK (packages.id), Not Null
feature_idBIGINT UNSIGNEDFK (features.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: features

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
is_defaultTINYINTNot Null, Default 00 => No, 1 => Yes
statusINTNot Null, Default 1
required_vpsINTNot Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: feature_sections

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
titleVARCHAR(191)Not Null
headingVARCHAR(191)Nullable
rankINTNot Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: feature_section_lists

Relasi: feature_section_id → feature_sections.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
feature_section_idBIGINT UNSIGNEDFK (feature_sections.id), Not Null
featureVARCHAR(191)Nullable
descriptionTEXTNullable
imageVARCHAR(191)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: addons

Relasi: feature_id → features.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
priceDOUBLE(8,4)Not NullDaily price
feature_idBIGINT UNSIGNEDFK (features.id), Not Null
statusTINYINTNot Null, Default 00 => Inactive, 1 => Active
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
subscription_idBIGINT UNSIGNEDFK (subscriptions.id), Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
feature_idBIGINT UNSIGNEDFK (features.id), Not Null
priceDOUBLE(64,4)Not Null
start_dateDATENot Null
end_dateDATENot Null
statusTINYINTNot Null, Default 10 => Discontinue next billing, 1 => Continue
payment_transaction_idBIGINT UNSIGNEDFK (payment_transactions.id), Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: subscriptions

Relasi: package_id → packages.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDNot Null
package_idBIGINT UNSIGNEDFK (packages.id), Not Null
nameVARCHAR(191)Not Null
student_chargeDOUBLE(8,4)Not Null
staff_chargeDOUBLE(8,4)Not Null
start_dateDATENot Null
end_dateDATENot Null
package_typeINTNot Null, Default 10 => Prepaid, 1 => Postpaid
no_of_studentsINTNot Null, Default 0
no_of_staffsINTNot Null, Default 0
chargesDOUBLE(64,4)Not Null, Default 0.0000
billing_cycleINTNot Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
subscription_idBIGINT UNSIGNEDFK (subscriptions.id), Not Null
descriptionVARCHAR(191)Nullable
amountDOUBLE(64,4)Not Null
total_studentINTNot Null
total_staffINTNot Null
payment_transaction_idBIGINT UNSIGNEDFK (payment_transactions.id), Nullable
due_dateDATENot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: subscription_features

Relasi: feature_id → features.id (hapus: CASCADE), subscription_id → subscriptions.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
subscription_idBIGINT UNSIGNEDFK (subscriptions.id), Not Null
feature_idBIGINT UNSIGNEDFK (features.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: trial_reminder_logs

Relasi: subscription_id → subscriptions.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
subscription_idBIGINT UNSIGNEDFK (subscriptions.id), Unique (subscription_id+days_left), Not Null
days_leftINT UNSIGNEDUnique (subscription_id+days_left), Not Null
sent_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: school_inquiries

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_nameVARCHAR(191)Not Null
school_emailVARCHAR(191)Unique, Not Null
school_phoneVARCHAR(191)Nullable
school_addressVARCHAR(191)Nullable
school_taglineVARCHAR(191)Nullable
dateDATENullable
statusENUM('pending','approved','rejected')Not Null, Default pending
payment_proofVARCHAR(191)Nullable
payment_dateDATENullable
payment_statusENUM('pending','verified','rejected')Not Null, Default pending
notesTEXTNullable
database_statusENUM('not_created','creating','created','failed')Not Null, Default not_created
database_created_atTIMESTAMPNullable
database_errorTEXTNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: contact_inquiries

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
emailVARCHAR(191)Not Null
subjectVARCHAR(191)Not Null
messageTEXTNot Null
typeVARCHAR(191)Nullable
statusENUM('new','replied','closed')Not Null, Default new
replied_atTIMESTAMPNullable
replied_byBIGINT UNSIGNEDNullable
admin_replyTEXTNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: database_backups

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
last_backup_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: modules

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (school_id+code), Not Null
codeVARCHAR(50)Unique (school_id+code), Not Nullkode unik: humas, kurikulum, dll
nameVARCHAR(100)Not Nullnama tampil
is_activeTINYINTNot Null, Default 1
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: languages

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Not Null
codeVARCHAR(64)Not Null
fileVARCHAR(512)Not Null
statusTINYINTNot Null, Default 01=>active
is_rtlTINYINTNot Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: faqs

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
titleVARCHAR(191)Not Null
descriptionTEXTNot Null
school_idBIGINT UNSIGNEDFK (schools.id), Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: sliders

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
imageVARCHAR(1024)Not Null
linkVARCHAR(191)Nullable
typeINTNot Null, Default 11 => App, 2 => web, 3 => Both
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: galleries

Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
titleVARCHAR(191)Not Null
descriptionVARCHAR(191)Nullable
thumbnailVARCHAR(191)Nullable
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: guidances

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(100)Nullable
linkTEXTNullable

Tabel: receipt_settings

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDUnique, Not Null
receipt_sizeVARCHAR(2)Not Null, Default m
receipt_print_modeENUM('none','confirm','auto')Not Null, Default confirm
receipt_logo_pathVARCHAR(191)Nullable
receipt_header_htmlTEXTNullable
receipt_footer_htmlTEXTNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Akademik dan kelas

Tabel: session_years

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Not Null
defaultTINYINTNot Null, Default 0
start_dateDATENot Null
end_dateDATENot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: semesters

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
start_monthTINYINTNot Null
start_dayTINYINTNullable, Default 1
end_monthTINYINTNot Null
end_dayTINYINTNullable, Default 30
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: grade_level

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Not Null
include_semestersTINYINTNot Null, Default 00 - no 1 - yes
medium_idBIGINT UNSIGNEDFK (mediums.id), Not Null
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
shift_idBIGINT UNSIGNEDFK (shifts.id), Nullable
stream_idBIGINT UNSIGNEDFK (streams.id), Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: class_groups

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Nullable
descriptionTEXTNullable
imageVARCHAR(191)Nullable
class_idsVARCHAR(191)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_idBIGINT UNSIGNEDFK (classes.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
section_idBIGINT UNSIGNEDFK (sections.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null
medium_idBIGINT UNSIGNEDFK (mediums.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Unique (class_id+section_id+medium_id+session_year_id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable
pklTINYINT(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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
original_keyCHAR(36)Not Null
student_idBIGINT UNSIGNEDFK (students.id), Nullable
user_idBIGINT UNSIGNEDFK (users.id), Nullable
class_idBIGINT UNSIGNEDFK (classes.id), Nullable
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Nullable
session_year_idBIGINT UNSIGNEDNullable
school_idBIGINT UNSIGNEDNullable
admission_noVARCHAR(512)Nullable
roll_numberINT UNSIGNEDNullable
admission_dateDATENullable
student_nameVARCHAR(191)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: sections

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: streams

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: mediums

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
deleted_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: shifts

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
start_timeTIMENot Null
end_timeTIMENot Null
statusINTNot Null, Default 1
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: rooms

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (school_id+code), Not Null
nameVARCHAR(150)Not Null
codeVARCHAR(50)Unique (school_id+code), Nullable
typeENUM('CLASSROOM','LAB','OFFICE','LIBRARY','HALL','STORAGE','WORKSHOP','OTHER')Not Null, Default CLASSROOM
capacityINTNot Null, Default 0
descriptionTEXTNullable
is_activeTINYINTNot Null, Default 1
created_byBIGINT UNSIGNEDNullable
updated_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: subjects

Relasi: medium_id → mediums.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Unique, Not Null
codeVARCHAR(64)Nullable
bg_colorVARCHAR(32)Not Null
imageVARCHAR(512)Not Null
medium_idBIGINT UNSIGNEDFK (mediums.id), Not Null
typeVARCHAR(64)Not NullTheory / Practical
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_idBIGINT UNSIGNEDFK (classes.id), Not Null
subject_idBIGINT UNSIGNEDFK (subjects.id), Not Null
typeVARCHAR(32)Not NullCompulsory / Elective
elective_subject_group_idBIGINT UNSIGNEDFK (elective_subject_groups.id), Nullableif type=Elective
semester_idBIGINT UNSIGNEDFK (semesters.id), Nullable
virtual_semester_idINTNot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
deleted_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
teacher_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
subject_idBIGINT UNSIGNEDFK (subjects.id), Not Null
teacher_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: elective_subject_groups

Relasi: class_id → classes.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), semester_id → semesters.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
total_subjectsINTNot Null
total_selectable_subjectsINTNot Null
class_idBIGINT UNSIGNEDFK (classes.id), Not Null
semester_idBIGINT UNSIGNEDFK (semesters.id), Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Unique, Not Null
descriptionVARCHAR(1024)Nullable
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: lesson_topics

Relasi: lesson_id → lessons.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
lesson_idBIGINT UNSIGNEDFK (lessons.id), Unique (name+lesson_id), Not Null
nameVARCHAR(128)Unique (name+lesson_id), Not Null
descriptionVARCHAR(1024)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
subject_teacher_idBIGINT UNSIGNEDFK (subject_teachers.id), Nullable
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
subject_idBIGINT UNSIGNEDFK (subjects.id), Nullable
start_timeTIMENot Null
end_timeTIMENot Null
noteVARCHAR(1024)Nullable
dayENUM('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday')Not Null
typeENUM('Lecture','Break')Not Null
semester_idBIGINT UNSIGNEDFK (semesters.id), Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
original_class_section_idBIGINT UNSIGNEDFK (class_sections.id), Nullable
from_grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
to_grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
resultTINYINTNot Null, Default 11=>Pass,0=>fail
statusTINYINTNot Null, Default 11=>continue,0=>leave
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: academic_calendars

Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
dateDATENot Null
titleVARCHAR(512)Not Null
descriptionVARCHAR(1024)Nullable
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: holidays

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
start_dateDATENot Null
end_dateDATENot Null
titleVARCHAR(128)Not Null
descriptionVARCHAR(1024)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: categories

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(512)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
statusTINYINTNot Null, Default 1
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: certificate_templates

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
page_layoutVARCHAR(191)Not NullA4 Portrait, A4 Landscape, Custom
heightDOUBLE(8,2)Nullable
widthDOUBLE(8,2)Nullable
user_image_shapeVARCHAR(191)Not NullRound, Square
image_sizeDOUBLE(8,2)Nullable
background_imageVARCHAR(191)Nullable
descriptionTEXTNullable
fieldsVARCHAR(191)Nullable
styleLONGTEXTNullable
typeVARCHAR(191)NullableStudent, Staff
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
typeTINYINTNot Null0=Absent, 1=Present
dateDATENot Null
remarkVARCHAR(512)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: attendance_days

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDUnique (school_id+day_key), Not Null
day_keyVARCHAR(10)Unique (school_id+day_key), Not Null
day_nameVARCHAR(20)Not Null
is_activeTINYINT(1)Not Null, Default 1
max_jpTINYINT UNSIGNEDNot Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: attendance_points

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
starting_rangeDOUBLENot Null
ending_rangeDOUBLENot Null
rulesVARCHAR(191)Not Null
school_idINTNot Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
point_kehadiranDOUBLE(8,2)Not Null
point_tatibDOUBLE(8,2)Not Null
tatibVARCHAR(191)Not Null
kesiswaanVARCHAR(191)Not Null
nip_tatibVARCHAR(191)Not Null
nip_kesiswaanVARCHAR(191)Not Null
ttd_kesiswaanVARCHAR(191)Not Null
ttd_petugasVARCHAR(191)Not Null
logo_sekolahVARCHAR(191)Not Null
kesiswaan_user_idBIGINT UNSIGNEDFK (users.id), Nullable
tatib_user_idBIGINT UNSIGNEDFK (users.id), Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: auto_absen_admins

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
month_yearVARCHAR(7)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (students.id), Not Null
thblnVARCHAR(10)Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
original_class_section_idBIGINT UNSIGNEDFK (class_sections.id), Nullable
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
t1VARCHAR(10)Nullable
t2VARCHAR(10)Nullable
t3VARCHAR(10)Nullable
t4VARCHAR(10)Nullable
t5VARCHAR(10)Nullable
t6VARCHAR(10)Nullable
t7VARCHAR(10)Nullable
t8VARCHAR(10)Nullable
t9VARCHAR(10)Nullable
t10VARCHAR(10)Nullable
t11VARCHAR(10)Nullable
t12VARCHAR(10)Nullable
t13VARCHAR(10)Nullable
t14VARCHAR(10)Nullable
t15VARCHAR(10)Nullable
t16VARCHAR(10)Nullable
t17VARCHAR(10)Nullable
t18VARCHAR(10)Nullable
t19VARCHAR(10)Nullable
t20VARCHAR(10)Nullable
t21VARCHAR(10)Nullable
t22VARCHAR(10)Nullable
t23VARCHAR(10)Nullable
t24VARCHAR(10)Nullable
t25VARCHAR(10)Nullable
t26VARCHAR(10)Nullable
t27VARCHAR(10)Nullable
t28VARCHAR(10)Nullable
t29VARCHAR(10)Nullable
t30VARCHAR(10)Nullable
t31VARCHAR(10)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: recap_edits

Relasi: subject_attendance_id → subject_attendances.id (hapus: CASCADE), subject_attendance_student_id → subject_attendance_students.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
subject_attendance_idBIGINT UNSIGNEDFK (subject_attendances.id), Not Null
subject_attendance_student_idBIGINT UNSIGNEDFK (subject_attendance_students.id), Not Null
textVARCHAR(191)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
dateDATENot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
timetable_idBIGINT UNSIGNEDFK (timetables.id), Not Null
jumlah_jpINTNot Null
materiTEXTNullable
lampiranVARCHAR(191)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: subject_attendance_students

Relasi: student_id → users.id (hapus: CASCADE), subject_attendance_id → subject_attendances.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
subject_attendance_idBIGINT UNSIGNEDFK (subject_attendances.id), Not Nullsubject_attendance_id
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
typeTINYINTNot Null0=Absent, 1=Present
noteTEXTNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
nameVARCHAR(128)Not Null
descriptionVARCHAR(1024)Nullable
class_idBIGINT UNSIGNEDFK (classes.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
start_dateDATENullable
end_dateDATENullable
publishTINYINTNot Null, Default 0
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
exam_timetable_idBIGINT UNSIGNEDFK (exam_timetables.id), Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
obtained_marksDOUBLE(8,2)Not Null
teacher_reviewVARCHAR(1024)Nullable
passing_statusTINYINT(1)Not Null1=Pass, 0=Fail
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
gradeTEXTNullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
exam_idBIGINT UNSIGNEDFK (exams.id), Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
total_marksINTNot Null
obtained_marksDOUBLE(8,2)Not Null
percentageDOUBLE(8,2)Not Null
gradeTEXTNot Null
statusINTNot Null, Default 10 -> Failed, 1 -> Pass
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
exam_idBIGINT UNSIGNEDFK (exams.id), Not Null
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
total_marksDOUBLE(8,2)Not Null
passing_marksDOUBLE(8,2)Not Null
dateDATENot Null
start_timeTIMENot Null
end_timeTIMENot Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: grades

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
starting_rangeDOUBLE(8,2)Not Null
ending_rangeDOUBLE(8,2)Not Null
gradeTEXTNot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
grade_level_idBIGINT UNSIGNEDFK (grade_level.id), Nullable
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
titleVARCHAR(128)Not Null
exam_keyINTNot Null
durationINTNot Nullin minutes
start_dateDATETIMENot Null
end_dateDATETIMENot Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
questionVARCHAR(1024)Not Null
image_urlVARCHAR(1024)Nullable
noteVARCHAR(1024)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
last_edited_byBIGINT UNSIGNEDFK (users.id), Not Nullteacher_user_id
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable
typeENUM('essay','short_answer','multiple_choice','true_false','numeric')Not Null, Default multiple_choice
versionVARCHAR(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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
online_exam_idBIGINT UNSIGNEDFK (online_exams.id), Not Null
question_idBIGINT UNSIGNEDFK (online_exam_questions.id), Not Null
marksINTNullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: online_exam_question_options

Relasi: question_id → online_exam_questions.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
question_idBIGINT UNSIGNEDFK (online_exam_questions.id), Not Null
optionVARCHAR(1024)Not Null
image_urlVARCHAR(1024)Nullable
is_answerTINYINT(1)Not Null, Default 0
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable
feedbackTEXTNullable
percentageINTNot Null, Default 0

Tabel: online_exam_answer_not_multiple_choices

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
answerTEXTNot Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
is_answer_correctionTINYINT(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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
online_exam_idBIGINT UNSIGNEDFK (online_exams.id), Not Null
question_idBIGINT UNSIGNEDFK (online_exam_question_choices.id), Not Null
answer_idBIGINT UNSIGNEDFK (online_exam_answer_not_multiple_choices.id), Nullable
option_idBIGINT UNSIGNEDFK (online_exam_question_options.id), Nullable
submitted_dateDATENot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable
is_answer_correctionTINYINT(1)Nullable
marksINTNullable

Tabel: online_exam_student_marks

Relasi: online_exam_id → online_exams.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Null
online_exam_idBIGINT UNSIGNEDFK (online_exams.id), Not Null
marksDECIMAL(5,2)Not Null, Default 0.00
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
online_exam_idBIGINT UNSIGNEDFK (online_exams.id), Not Null
statusTINYINTNot Null1 - in progress 2 - completed
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: bank_soal

Relasi: subject_id → subjects.id (hapus: CASCADE), teacher_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
teacher_idBIGINT UNSIGNEDFK (users.id), Not Null
subject_idBIGINT UNSIGNEDFK (subjects.id), Not Null
nameVARCHAR(255)Not Null
created_atTIMESTAMPNullable, Default current_timestamp()
updated_atTIMESTAMPNullable, Default current_timestamp()
deleted_atDATETIMENullable

Tabel: bank_soal_detail

Relasi: bank_soal_id → bank_soal.id (hapus: CASCADE), subject_id → subjects.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
bank_soal_idBIGINT UNSIGNEDFK (bank_soal.id), Not Null
subject_idBIGINT UNSIGNEDFK (subjects.id), Nullable
created_atTIMESTAMPNullable, Default current_timestamp()
updated_atTIMESTAMPNullable, 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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
bank_soal_detail_idBIGINT UNSIGNEDFK (bank_soal_detail.id), Not Null
versionVARCHAR(50)Not Null
questionTEXTNot Null
nameVARCHAR(255)Nullable
noteTEXTNullable
imageVARCHAR(255)Nullable
default_pointINTNullable, Default 1
typeVARCHAR(50)Not Null
optionsLONGTEXTNot Null
created_atTIMESTAMPNullable, Default current_timestamp()
updated_atTIMESTAMPNullable, Default current_timestamp()
updated_byBIGINT UNSIGNEDFK (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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Not Null
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Not Null
nameVARCHAR(128)Not Null
instructionsVARCHAR(1024)Nullable
due_dateDATETIMENot Null
pointsINTNullable
resubmissionTINYINT(1)Not Null, Default 0
extra_days_for_resubmissionINTNullable
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_byBIGINT UNSIGNEDFK (users.id), Not Nullteacher_user_id
edited_byBIGINT UNSIGNEDFK (users.id), Nullableteacher_user_id
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
start_dateDATETIMENullable
end_dateDATETIMENullable
min_pointsINTNot Null
max_fileINTNullable
textTINYINT(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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
assignment_idBIGINT UNSIGNEDFK (assignments.id), Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
feedbackTEXTNullable
pointsINTNullable
statusTINYINTNot Null, Default 00 = Pending/In Review , 1 = Accepted , 2 = Rejected , 3 = Resubmitted
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
contentVARCHAR(100)Nullable
fileTINYINT(1)Not Null, Default 0
labelTINYINT(1)Nullable

Tabel: accepted_file

Relasi: assignment_id → assignments.id (hapus: CASCADE), filetype_id → filetype.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
assignment_idBIGINT UNSIGNEDFK (assignments.id), Nullable
filetype_idBIGINT UNSIGNEDFK (filetype.id), Nullable
created_atTIMESTAMPNullable, Default current_timestamp()
updated_atTIMESTAMPNullable, Default current_timestamp()

Tabel: attachments

Relasi: message_id → messages.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
message_idBIGINT UNSIGNEDFK (messages.id), Not Null
fileVARCHAR(191)Nullable
file_typeVARCHAR(191)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: filetype

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(10)Not Null

Tabel: files

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
modal_typeVARCHAR(191)Not Null
modal_idBIGINT UNSIGNEDNot Null
file_nameVARCHAR(1024)Nullable
file_thumbnailVARCHAR(1024)Nullable
typeTEXTNot Null1 = File Upload, 2 = Youtube Link, 3 = Video Upload, 4 = Other Link
file_urlVARCHAR(1024)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: announcements

Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
titleVARCHAR(128)Not Null
descriptionVARCHAR(1024)Nullable
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
announcement_idBIGINT UNSIGNEDFK (announcements.id), Nullable
class_section_idBIGINT UNSIGNEDFK (class_sections.id), Nullable
class_subject_idBIGINT UNSIGNEDFK (class_subjects.id), Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: notifications

Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
titleVARCHAR(191)Not Null
messageVARCHAR(191)Nullable
imageVARCHAR(191)Nullable
send_toVARCHAR(191)Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: chats

Relasi: receiver_id → users.id (hapus: CASCADE), sender_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
sender_idBIGINT UNSIGNEDFK (users.id), Not Null
receiver_idBIGINT UNSIGNEDFK (users.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: messages

Relasi: chat_id → chats.id (hapus: CASCADE), sender_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
chat_idBIGINT UNSIGNEDFK (chats.id), Not Null
sender_idBIGINT UNSIGNEDFK (users.id), Not Null
messageTEXTNullable
read_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Keuangan

Tabel: fees

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(100)Not Null
typeVARCHAR(191)Not Null
amountDECIMAL(22,2)Not Null, Default 0.00
start_dateDATENullable
due_dateDATENot Null
end_dateDATENullable
penalty_percentDECIMAL(5,2)Not Null, Default 0.00
payment_methodVARCHAR(50)Nullable
paid_atTIMESTAMPNullable
descriptionTEXTNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: fees_class

Relasi: class_section_id → class_sections.id (hapus: CASCADE), fees_id → fees.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
class_section_idBIGINT UNSIGNEDPK (gabungan), FK (class_sections.id), Not Null
fees_idBIGINT UNSIGNEDPK (gabungan), FK (fees.id), Not Null

Tabel: fees_paids

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
fees_idBIGINT UNSIGNEDNot Null
student_idBIGINT UNSIGNEDNot Nulluser_id
is_fully_paidTINYINT(1)Not Null0 - No, 1 - Yes
is_used_installmentTINYINT(1)Not Null0 - No, 1 - Yes
amountDOUBLE(8,2)Not Null
dateDATENot Null
school_idBIGINT UNSIGNEDNot Null
session_year_idBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: fees_types

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
descriptionVARCHAR(191)Nullable
school_idBIGINT UNSIGNEDNot Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: optional_fees

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDNot Nulluser_id
class_idBIGINT UNSIGNEDNot Null
payment_transaction_idBIGINT UNSIGNEDNullable
fees_class_idBIGINT UNSIGNEDNullable
modeENUM('cash','cheque','online')Not Null
cheque_noVARCHAR(191)Nullable
amountDOUBLE(8,2)Not Null
fees_paid_idBIGINT UNSIGNEDNullable
dateDATENot Null
school_idBIGINT UNSIGNEDNot Null
statusENUM('success','pending','failed')Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: special_fees

Relasi: fees_id → fees.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), student_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDFK (users.id), Not Nulluser_id
fees_idBIGINT UNSIGNEDFK (fees.id), Not Nulluser_id
discountDECIMAL(8,2)Not Null
notesTEXTNot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
category_idBIGINT UNSIGNEDFK (expense_categories.id), Nullable
ref_noVARCHAR(191)Nullable
staff_idBIGINT UNSIGNEDFK (staffs.id), Nullable
basic_salaryINTNot Null, Default 0
paid_leavesDOUBLE(8,2)Not Null, Default 0.00
monthINTNullable
yearINTNullable
titleVARCHAR(512)Not Null
descriptionVARCHAR(191)Nullable
amountDOUBLE(64,2)Not Null
dateDATENot Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: expense_categories

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
descriptionVARCHAR(191)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: beginning_balance

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
cut_off_dateDATEUnique, Not NullTanggal cut-off saldo
cash_balanceDECIMAL(15,2)Not Null, Default 0.00Saldo kas
bank_balanceDECIMAL(15,2)Not Null, Default 0.00Saldo bank
receivablesDECIMAL(15,2)Not Null, Default 0.00Piutang
payablesDECIMAL(15,2)Not Null, Default 0.00Utang
expenditureDECIMAL(15,2)Not Null, Default 0.00pengeuaran
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: payment_accounts

Relasi: payment_method_id → payment_methods.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
payment_method_idBIGINT UNSIGNEDFK (payment_methods.id), Not Null
bank_nameVARCHAR(100)NullableNama bank / e-wallet provider
account_numberVARCHAR(50)Not NullNomor rekening / nomor e-wallet
account_holderVARCHAR(150)Not NullNama pemilik rekening
branchVARCHAR(100)NullableCabang bank (opsional)
is_primaryTINYINT(1)Not Null, Default 0Rekening utama untuk metode ini
is_activeTINYINT(1)Not Null, Default 1
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: payment_configurations

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
payment_methodVARCHAR(191)Not Null
api_keyVARCHAR(191)Not Null
secret_keyVARCHAR(191)Not Null
webhook_secret_keyVARCHAR(191)Not Null
bank_nameVARCHAR(191)Nullable
account_nameVARCHAR(191)Nullable
account_noVARCHAR(191)Nullable
currency_codeVARCHAR(128)Nullable
statusTINYINT(1)Not Null, Default 10 - Disabled, 1 - Enabled
school_idBIGINT UNSIGNEDFK (schools.id), Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
student_idBIGINT UNSIGNEDFK (students.id), Not Null
fees_idBIGINT UNSIGNEDFK (fees.id), Not Null
statusENUM('pending','approved','rejected')Not Null, Default pending
rejection_reasonTEXTNullable
amountDECIMAL(21,2)Not Null
admin_fee_amountDECIMAL(15,2)Not Null, Default 0.00Nominal admin fee yang dikenakan saat pembayaran
total_amountDECIMAL(15,2)Not Null, Default 0.00Total yang dibayar: amount + admin_fee_amount
proof_imageVARCHAR(255)Nullable
created_atTIMESTAMPNot Null, Default current_timestamp()
updated_atTIMESTAMPNot Null, Default current_timestamp()
deleted_atTIMESTAMPNullable
timeDATETIMENullable
payment_method_idBIGINT UNSIGNEDFK (payment_methods.id), Not Null
payment_method_nameVARCHAR(100)Nullable
payment_account_idBIGINT UNSIGNEDFK (payment_accounts.id), NullableRekening tujuan yang digunakan
gateway_referenceVARCHAR(255)NullableInvoice ID / Transaction ID dari payment gateway

Tabel: payment_methods

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
codeVARCHAR(50)NullableKode unik: OVO, BCA, QRIS, CASH, dll
categoryENUM('bank_transfer','ewallet','retail','qris','credit_card','manual')Not Null, Default manual
account_numberVARCHAR(191)Not Null
account_holderVARCHAR(191)Not Null
descriptionTEXTNullable
imageVARCHAR(191)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
admin_feeDECIMAL(10,4)Not Null, Default 0.0000Biaya admin: gunakan nilai < 1 untuk persentase (contoh: 0.015 = 1.5%), >= 1 untuk nominal flat (contoh: 4000 = Rp 4.000)
is_activeTINYINT(1)Not Null, Default 1
requires_proofTINYINT(1)Not Null, Default 0Wajib upload bukti bayar?
is_onlineTINYINT(1)Not Null, Default 0Payment gateway otomatis via Xendit?
gateway_codeVARCHAR(50)NullableKode metode di Xendit: DANA, BCA, QRIS, dll
sort_orderINTNot Null, Default 0
metadataLONGTEXTNullable, 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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
invoice_idVARCHAR(255)Nullable
transaction_idVARCHAR(255)Unique, Nullable
user_idBIGINT UNSIGNEDFK (users.id), Not Null
amountDOUBLE(64,2)Not Null
payment_gatewayVARCHAR(191)Not Null
order_idVARCHAR(191)Nullableorder_id / payment_intent_id
payment_idVARCHAR(191)Nullable
payment_signatureVARCHAR(191)Nullable
payment_statusENUM('failed','succeed','pending')Not Null
payment_methodVARCHAR(50)Nullable
fee_idsLONGTEXTNullable, Default NULL CHECK (json_valid(fee_ids))
confirmed_atTIMESTAMPNullable
confirmed_byBIGINT UNSIGNEDNullable
statusVARCHAR(50)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: xendit_invoices

Relasi: parent_id → users.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE), student_id → students.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
student_idBIGINT UNSIGNEDFK (students.id), Not Null
parent_idBIGINT UNSIGNEDFK (users.id), Not Null
invoice_idVARCHAR(191)Unique, Not Null
external_idVARCHAR(191)Not Null
amountDECIMAL(15,2)Not Null
statusENUM('pending','paid','expired','failed')Not Null, Default pending
invoice_urlTEXTNot Null
payer_emailVARCHAR(191)Nullable
descriptionTEXTNullable
expiry_dateTIMESTAMPNot Null
paid_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: xendit_invoice_fees

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
xendit_invoice_idBIGINT UNSIGNEDUnique (xendit_invoice_id+fee_id), Not Null
fee_idBIGINT UNSIGNEDUnique (xendit_invoice_id+fee_id), Not Null
amountDECIMAL(15,2)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: payroll_settings

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
amountDOUBLENullable
percentageDOUBLE(8,2)Nullable
typeVARCHAR(191)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
expense_idBIGINT UNSIGNEDFK (expenses.id), Nullable
payroll_setting_idBIGINT UNSIGNEDFK (payroll_settings.id), Nullable
amountDOUBLENullable
percentageDOUBLE(8,2)Nullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: staff_salaries

Relasi: payroll_setting_id → payroll_settings.id (hapus: CASCADE), staff_id → staffs.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
staff_idBIGINT UNSIGNEDFK (staffs.id), Nullable
payroll_setting_idBIGINT UNSIGNEDFK (payroll_settings.id), Nullable
amountDOUBLENullable
percentageDOUBLE(8,2)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
reasonVARCHAR(191)Not Null
from_dateDATENot Null
to_dateDATENot Null
statusINTNot Null, Default 00 => Pending, 1 => Approved, 2 => Rejected
rejection_reasonTEXTNullable
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
leave_master_idBIGINT UNSIGNEDFK (leave_masters.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: leave_details

Relasi: leave_id → leaves.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
leave_idBIGINT UNSIGNEDFK (leaves.id), Not Null
dateDATENot Null
typeVARCHAR(191)Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: leave_masters

Relasi: school_id → schools.id (hapus: CASCADE), session_year_id → session_years.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
leavesDOUBLE(8,2)Not NullLeaves per month
holidayVARCHAR(191)Not Null
max_leave_daysINT UNSIGNEDNot Null, Default 30Maksimum hari cuti yang diperbolehkan per tahun
created_byBIGINT UNSIGNEDNullableID user yang membuat data ini
session_year_idBIGINT UNSIGNEDFK (session_years.id), Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: student_violations

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
student_idBIGINT UNSIGNEDNot Null
violation_type_idBIGINT UNSIGNEDNullable
descriptionTEXTNullable
statusVARCHAR(30)Not Null, Default active
occurred_atDATENot Null
school_idBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable
photoVARCHAR(255)Nullable
reported_byBIGINT UNSIGNEDNullable

Tabel: violation_types

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
categoryVARCHAR(100)Not Null
pointsINT UNSIGNEDNot Null, Default 0
school_idBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: violation_sanction_levels

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(100)Not Null
min_pointsINTNot Null
max_pointsINTNullable
action_typeVARCHAR(50)Nullable, Default warning
descriptionTEXTNullable
school_idBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: warning_letter_settings

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDNot Null
nameVARCHAR(191)Not Null
threshold_pointsINTNot Null
descriptionTEXTNullable
is_activeTINYINT(1)Not Null, Default 1
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Ekstrakurikuler

Tabel: estrakulikulers

Relasi: coach_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(191)Not Null
descriptionTEXTNot Null
coach_idBIGINT UNSIGNEDFK (users.id), Not Null
deleted_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: eskul_details

Relasi: estrakulikuler_id → estrakulikulers.id (hapus: CASCADE), student_id → students.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
estrakulikuler_idBIGINT UNSIGNEDFK (estrakulikulers.id), Not Null
student_idBIGINT UNSIGNEDFK (students.id), Not Null
statusVARCHAR(191)Not Null
deleted_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: eskul_absensis

Relasi: eskul_detail_id → eskul_details.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
eskul_detail_idBIGINT UNSIGNEDFK (eskul_details.id), Not Null
dateDATENot Null
typeTINYINTNot Null0=Absent, 1=Present
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: eskul_timetables

Relasi: estrakulikuler_id → estrakulikulers.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
estrakulikuler_idBIGINT UNSIGNEDFK (estrakulikulers.id), Not Null
dayVARCHAR(191)Not Null
start_timeTIMENot Null
end_timeTIMENot Null
deleted_atTIMESTAMPNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Aset dan sarana

Tabel: assets

Relasi: category_id → asset_categories.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (school_id+code), Not Null
category_idBIGINT UNSIGNEDFK (asset_categories.id), Not Null
nameVARCHAR(200)Not Null
codeVARCHAR(50)Unique (school_id+code), Nullable
brandVARCHAR(100)Nullable
model_numberVARCHAR(100)Nullable
unitVARCHAR(50)Not Null, Default unit
descriptionTEXTNullable
imageVARCHAR(512)Nullable
is_loanableTINYINT(1)Not Null, Default 1
min_stock_alertINTNot Null, Default 0
is_activeTINYINTNot Null, Default 1
created_byBIGINT UNSIGNEDNullable
updated_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: asset_categories

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (school_id+code), Not Null
nameVARCHAR(150)Not Null
codeVARCHAR(50)Unique (school_id+code), Nullable
typeENUM('ASSET','CONSUMABLE')Not Null, Default ASSET
descriptionTEXTNullable
is_activeTINYINTNot Null, Default 1
created_byBIGINT UNSIGNEDNullable
updated_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
asset_item_idBIGINT UNSIGNEDFK (asset_items.id), Not Null
disposal_dateDATENot Null
disposal_typeENUM('SCRAPPED','SOLD','DONATED')Not Null, Default SCRAPPED
selling_priceDECIMAL(15,2)Not Null, Default 0.00
reasonTEXTNot Null
bap_file_urlVARCHAR(512)Nullable
approved_byBIGINT UNSIGNEDFK (users.id), Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (school_id+item_code), Not Null
asset_idBIGINT UNSIGNEDFK (assets.id), Not Null
procurement_idBIGINT UNSIGNEDFK (asset_procurements.id), Nullable
room_idBIGINT UNSIGNEDFK (rooms.id), Nullable
item_codeVARCHAR(100)Unique (school_id+item_code), Not Null
serial_numberVARCHAR(100)Nullable
priceDECIMAL(15,2)Not Null, Default 0.00
conditionENUM('GOOD','MINOR_DAMAGE','HEAVY_DAMAGE','LOST','DISPOSED')Not Null, Default GOOD
statusENUM('AVAILABLE','BORROWED','IN_MAINTENANCE','DISPOSED')Not Null, Default AVAILABLE
warranty_expiryDATENullable
notesTEXTNullable
created_byBIGINT UNSIGNEDNullable
updated_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: asset_loans

Relasi: approved_by → users.id (hapus: SET NULL), school_id → schools.id (hapus: CASCADE), user_id → users.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (school_id+loan_number), Not Null
loan_numberVARCHAR(100)Unique (school_id+loan_number), Not Null
user_idBIGINT UNSIGNEDFK (users.id), Not Null
borrower_typeENUM('STAFF','STUDENT')Not Null, Default STAFF
loan_dateDATETIMENot Null
due_dateDATETIMENot Null
return_dateDATETIMENullable
statusENUM('PENDING','APPROVED','REJECTED','BORROWED','RETURNED','OVERDUE')Not Null, Default PENDING
purposeTEXTNullable
notesTEXTNullable
approved_byBIGINT UNSIGNEDFK (users.id), Nullable
created_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: asset_loan_items

Relasi: asset_item_id → asset_items.id (hapus: CASCADE), loan_id → asset_loans.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
loan_idBIGINT UNSIGNEDFK (asset_loans.id), Not Null
asset_item_idBIGINT UNSIGNEDFK (asset_items.id), Not Null
checkout_conditionENUM('GOOD','MINOR_DAMAGE')Not Null, Default GOOD
checkin_conditionENUM('GOOD','MINOR_DAMAGE','HEAVY_DAMAGE','LOST')Nullable
notesTEXTNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
asset_item_idBIGINT UNSIGNEDFK (asset_items.id), Nullable
room_idBIGINT UNSIGNEDFK (rooms.id), Nullable
reporter_idBIGINT UNSIGNEDFK (users.id), Not Null
titleVARCHAR(200)Not Null
descriptionTEXTNot Null
photo_urlVARCHAR(512)Nullable
typeENUM('TICKET_REPAIR','ROUTINE_SERVICE')Not Null, Default TICKET_REPAIR
priorityENUM('LOW','MEDIUM','HIGH','URGENT')Not Null, Default MEDIUM
statusENUM('REPORTED','IN_INSPECTION','IN_REPAIR','RESOLVED','CLOSED','REJECTED')Not Null, Default REPORTED
costDECIMAL(15,2)Not Null, Default 0.00
expense_idBIGINT UNSIGNEDNullable
technician_nameVARCHAR(150)Nullable
completion_dateDATENullable
action_takenTEXTNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: asset_procurements

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
session_year_idBIGINT UNSIGNEDNullable
procurement_numberVARCHAR(100)Nullable
sourceVARCHAR(50)Not Null, Default PURCHASE
funding_sourceVARCHAR(100)Nullable
vendor_nameVARCHAR(150)Nullable
invoice_numberVARCHAR(100)Nullable
receipt_dateDATENot Null
total_amountDECIMAL(15,2)Not Null, Default 0.00
expense_idBIGINT UNSIGNEDNullable
receipt_fileVARCHAR(512)Nullable
notesTEXTNullable
created_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
asset_idBIGINT UNSIGNEDFK (assets.id), Not Null
procurement_idBIGINT UNSIGNEDFK (asset_procurements.id), Nullable
room_idBIGINT UNSIGNEDFK (rooms.id), Nullable
typeENUM('IN','OUT','ADJUSTMENT')Not Null, Default IN
quantityINTNot Null
balance_afterINTNot Null, Default 0
notesTEXTNullable
created_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Dokumen departemen

Tabel: folder_bendahara

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_humas

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_kesiswaan

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_kpk

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_kpk_elin

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_kpk_metro

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_kpk_rpl

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_kpk_tkj

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_kurikulum

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_pdsm

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_perpus

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_sarpas

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_tatib

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: folder_tu

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_bendahara

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_humas

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_kesiswaan

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_kpk

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_kpk_elin

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_kpk_metro

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_kpk_rpl

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_kpk_tkj

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_kurikulum

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_pdsm

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_perpus

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_sarpas

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_tatib

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: tag_dokumen_tu

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: upload_file_bendahara

Relasi: id_folder → folder_bendahara.id (hapus: CASCADE), id_tag → tag_dokumen_bendahara.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_bendahara.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_bendahara.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_humas

Relasi: id_folder → folder_humas.id (hapus: CASCADE), id_tag → tag_dokumen_humas.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_humas.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_humas.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_kesiswaan

Relasi: id_folder → folder_kesiswaan.id (hapus: CASCADE), id_tag → tag_dokumen_kesiswaan.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_kesiswaan.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_kesiswaan.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_kpk

Relasi: id_folder → folder_kpk.id (hapus: CASCADE), id_tag → tag_dokumen_kpk.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_kpk.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_kpk.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot 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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_kpk_elin.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_kpk_elin.id), Not Null
tacher_editTINYINTNot Null, Default 0
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: upload_file_kpk_metro

Relasi: id_folder → folder_kpk_metro.id (hapus: CASCADE), id_tag → tag_dokumen_kpk_metro.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_kpk_metro.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_kpk_metro.id), Not Null
tacher_editTINYINTNot Null, Default 0
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: upload_file_kpk_rpl

Relasi: id_folder → folder_kpk_rpl.id (hapus: CASCADE), id_tag → tag_dokumen_kpk_rpl.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_kpk_rpl.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_kpk_rpl.id), Not Null
tacher_editTINYINTNot Null, Default 0
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: upload_file_kpk_tkj

Relasi: id_folder → folder_kpk_tkj.id (hapus: CASCADE), id_tag → tag_dokumen_kpk_tkj.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_kpk_tkj.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_kpk_tkj.id), Not Null
tacher_editTINYINTNot Null, Default 0
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: upload_file_kurikulum

Relasi: id_folder → folder_kurikulum.id (hapus: CASCADE), id_tag → tag_dokumen_kurikulum.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_kurikulum.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_kurikulum.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_pdsm

Relasi: id_folder → folder_pdsm.id (hapus: CASCADE), id_tag → tag_dokumen_pdsm.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_pdsm.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_pdsm.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_perpus

Relasi: id_folder → folder_perpus.id (hapus: CASCADE), id_tag → tag_dokumen_perpus.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_perpus.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_perpus.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_sarpas

Relasi: id_folder → folder_sarpas.id (hapus: CASCADE), id_tag → tag_dokumen_sarpas.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_sarpas.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_sarpas.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_tatib

Relasi: id_folder → folder_tatib.id (hapus: CASCADE), id_tag → tag_dokumen_tatib.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_tatib.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_tatib.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Tabel: upload_file_tu

Relasi: id_folder → folder_tu.id (hapus: CASCADE), id_tag → tag_dokumen_tu.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
namaVARCHAR(255)Not Null
deskripsiTEXTNullable
tanggalDATENot Null
fileVARCHAR(255)Not Null
id_tagBIGINT UNSIGNEDFK (tag_dokumen_tu.id), Nullable
id_folderBIGINT UNSIGNEDFK (folder_tu.id), Not Null
pengunggahVARCHAR(255)Not Null
modifikasiVARCHAR(255)Nullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
tacher_editTINYINTNot Null, Default 0

Sistem Laravel

Tabel: migrations

Nama KolomTipe DataAtributKeterangan
idINT UNSIGNEDPK, Auto Increment, Not Null
migrationVARCHAR(191)Not Null
batchINTNot Null

Tabel: failed_jobs

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
uuidVARCHAR(191)Not Null
connectionTEXTNot Null
queueTEXTNot Null
payloadLONGTEXTNot Null
exceptionLONGTEXTNot Null
failed_atTIMESTAMPNot Null, Default current_timestamp()

Tabel: form_fields

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
nameVARCHAR(128)Not Null
typeVARCHAR(128)Not Nulltext,number,textarea,dropdown,checkbox,radio,fileupload
is_requiredTINYINT(1)Not Null, Default 0
default_valuesTEXTNullablevalues of radio,checkbox,dropdown,etc
otherTEXTNullableextra HTML attributes
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
rankINTNot Null, Default 0
display_on_idINTNot Null, Default 00 => No, 1 => Yes
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: kpks

Relasi: school_id → schools.id (hapus: CASCADE), stream_id → streams.id (hapus: SET NULL).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Unique (school_id+name), Not Null
stream_idBIGINT UNSIGNEDFK (streams.id), Nullable
nameVARCHAR(150)Unique (school_id+name), Not Null
mode_sourceENUM('looping_jurusan','crud')Not Null, Default crud
is_activeTINYINTNot Null, Default 1
created_byBIGINT UNSIGNEDNullable
updated_byBIGINT UNSIGNEDNullable
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
departmentVARCHAR(50)Not Null
folder_idBIGINT UNSIGNEDFK (department_folders.id), Not Null
tag_idBIGINT UNSIGNEDFK (department_tags.id), Nullable
nameVARCHAR(191)Not Null
descriptionTEXTNullable
dateDATENot Null
fileVARCHAR(191)Not Null
uploaderVARCHAR(191)Not Null
last_modifierVARCHAR(191)Nullable
teacher_editTINYINT(1)Not Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: department_folders

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
departmentVARCHAR(50)Not Nulle.g. bendahara, kesiswaan, kpk, etc.
nameVARCHAR(191)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

Tabel: department_tags

Relasi: school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
departmentVARCHAR(50)Not Null
nameVARCHAR(191)Not Null
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable

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 KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
owner_typeENUM('kpk','module')Not Nullpemiliknya: kpk/module
owner_idBIGINT UNSIGNEDNot Nullid kpks / modules
folder_idBIGINT UNSIGNEDFK (document_folders.id), Nullable
uuidCHAR(36)Unique, Not Nullnama unik (untuk storage)
nameVARCHAR(191)Not Nullnama tampil/original
descriptionTEXTNullabledeskripsi file
pathVARCHAR(1024)Not Nullpath file di storage
mimeVARCHAR(120)Nullable
sizeBIGINT UNSIGNEDNot Null, Default 0byte
uploader_idBIGINT UNSIGNEDFK (users.id), Nullable
visible_to_teacherTINYINT(1)Not Null, Default 0tampil di guru?
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

Tabel: document_folders

Relasi: parent_id → document_folders.id (hapus: CASCADE), school_id → schools.id (hapus: CASCADE).

Nama KolomTipe DataAtributKeterangan
idBIGINT UNSIGNEDPK, Auto Increment, Not Null
school_idBIGINT UNSIGNEDFK (schools.id), Not Null
owner_typeENUM('kpk','module')Not Nullpemiliknya: kpk / module
owner_idBIGINT UNSIGNEDNot Nullid dari kpks / modules
parent_idBIGINT UNSIGNEDFK (document_folders.id), Nullablefolder induk (boleh null)
nameVARCHAR(191)Not Nullnama folder
sortINT UNSIGNEDNot Null, Default 0
created_atTIMESTAMPNullable
updated_atTIMESTAMPNullable
deleted_atTIMESTAMPNullable

On this page

Daftar tabel per kelompokPengguna dan aksesTabel: usersTabel: studentsTabel: staffsTabel: guardian_detailsTabel: extra_student_datasTabel: staff_support_schoolsTabel: rolesTabel: permissionsTabel: role_has_permissionsTabel: model_has_rolesTabel: model_has_permissionsTabel: personal_access_tokensTabel: password_resetsTabel: device_tokensTabel: user_status_for_next_cyclesSekolah, paket, dan langgananTabel: schoolsTabel: school_settingsTabel: system_settingsTabel: edu_levelTabel: packagesTabel: package_featuresTabel: featuresTabel: feature_sectionsTabel: feature_section_listsTabel: addonsTabel: addon_subscriptionsTabel: subscriptionsTabel: subscription_billsTabel: subscription_featuresTabel: trial_reminder_logsTabel: school_inquiriesTabel: contact_inquiriesTabel: database_backupsTabel: modulesTabel: languagesTabel: faqsTabel: slidersTabel: galleriesTabel: guidancesTabel: receipt_settingsAkademik dan kelasTabel: session_yearsTabel: semestersTabel: grade_levelTabel: classesTabel: class_groupsTabel: class_sectionsTabel: original_classesTabel: sectionsTabel: streamsTabel: mediumsTabel: shiftsTabel: roomsTabel: subjectsTabel: class_subjectsTabel: class_teachersTabel: subject_teachersTabel: student_subjectsTabel: elective_subject_groupsTabel: lessonsTabel: lesson_topicsTabel: timetablesTabel: promote_studentsTabel: academic_calendarsTabel: holidaysTabel: categoriesTabel: certificate_templatesAbsensiTabel: attendancesTabel: attendance_daysTabel: attendance_pointsTabel: absensi_settingsTabel: auto_absen_adminsTabel: recap_absensiTabel: recap_editsTabel: subject_attendancesTabel: subject_attendance_studentsUjian dan nilaiTabel: examsTabel: exam_marksTabel: exam_resultsTabel: exam_timetablesTabel: gradesTabel: online_examsTabel: online_exam_questionsTabel: online_exam_question_choicesTabel: online_exam_question_optionsTabel: online_exam_answer_not_multiple_choicesTabel: online_exam_student_answersTabel: online_exam_student_marksTabel: student_online_exam_statusesTabel: bank_soalTabel: bank_soal_detailTabel: bank_soal_versionsTugas dan komunikasiTabel: assignmentsTabel: assignment_submissionsTabel: accepted_fileTabel: attachmentsTabel: filetypeTabel: filesTabel: announcementsTabel: announcement_classesTabel: notificationsTabel: chatsTabel: messagesKeuanganTabel: feesTabel: fees_classTabel: fees_paidsTabel: fees_typesTabel: optional_feesTabel: special_feesTabel: expensesTabel: expense_categoriesTabel: beginning_balanceTabel: payment_accountsTabel: payment_configurationsTabel: payment_historyTabel: payment_methodsTabel: payment_transactionsTabel: xendit_invoicesTabel: xendit_invoice_feesTabel: payroll_settingsTabel: staff_payrollsTabel: staff_salariesCuti dan pelanggaranTabel: leavesTabel: leave_detailsTabel: leave_mastersTabel: student_violationsTabel: violation_typesTabel: violation_sanction_levelsTabel: warning_letter_settingsEkstrakurikulerTabel: estrakulikulersTabel: eskul_detailsTabel: eskul_absensisTabel: eskul_timetablesAset dan saranaTabel: assetsTabel: asset_categoriesTabel: asset_disposalsTabel: asset_itemsTabel: asset_loansTabel: asset_loan_itemsTabel: asset_maintenancesTabel: asset_procurementsTabel: asset_stock_logsDokumen departemenTabel: folder_bendaharaTabel: folder_humasTabel: folder_kesiswaanTabel: folder_kpkTabel: folder_kpk_elinTabel: folder_kpk_metroTabel: folder_kpk_rplTabel: folder_kpk_tkjTabel: folder_kurikulumTabel: folder_pdsmTabel: folder_perpusTabel: folder_sarpasTabel: folder_tatibTabel: folder_tuTabel: tag_dokumen_bendaharaTabel: tag_dokumen_humasTabel: tag_dokumen_kesiswaanTabel: tag_dokumen_kpkTabel: tag_dokumen_kpk_elinTabel: tag_dokumen_kpk_metroTabel: tag_dokumen_kpk_rplTabel: tag_dokumen_kpk_tkjTabel: tag_dokumen_kurikulumTabel: tag_dokumen_pdsmTabel: tag_dokumen_perpusTabel: tag_dokumen_sarpasTabel: tag_dokumen_tatibTabel: tag_dokumen_tuTabel: upload_file_bendaharaTabel: upload_file_humasTabel: upload_file_kesiswaanTabel: upload_file_kpkTabel: upload_file_kpk_elinTabel: upload_file_kpk_metroTabel: upload_file_kpk_rplTabel: upload_file_kpk_tkjTabel: upload_file_kurikulumTabel: upload_file_pdsmTabel: upload_file_perpusTabel: upload_file_sarpasTabel: upload_file_tatibTabel: upload_file_tuSistem LaravelTabel: migrationsTabel: failed_jobsTabel: form_fieldsTabel: kpksTabel: department_documentsTabel: department_foldersTabel: department_tagsTabel: document_filesTabel: document_folders