-- EXOLINK SMP/MTs v2.15.8 — MariaDB 11.4 canonical clean installer
-- Run ONLY in the dedicated EXOLINK SMP database. Existing EXOLINK tables are reset.
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `ai_student_analyses`;
DROP TABLE IF EXISTS `report_deprecations`;
DROP TABLE IF EXISTS `regulatory_report_templates`;
DROP TABLE IF EXISTS `bk_workflow_transition_catalog`;
DROP TABLE IF EXISTS `published_reports`;
DROP TABLE IF EXISTS `role_data_access`;
DROP TABLE IF EXISTS `data_classification_registry`;
DROP TABLE IF EXISTS `bsan_monitoring`;
DROP TABLE IF EXISTS `bsan_actions`;
DROP TABLE IF EXISTS `bsan_findings`;
DROP TABLE IF EXISTS `bsan_evidence_type_catalog`;
DROP TABLE IF EXISTS `bsan_domain_catalog`;
DROP TABLE IF EXISTS `student_followup_monitoring_logs`;
DROP TABLE IF EXISTS `bk_followup_monitoring`;
DROP TABLE IF EXISTS `bk_workflow_registry`;
DROP TABLE IF EXISTS `bk_rpl_template_registry`;
DROP TABLE IF EXISTS `bk_followup_action_catalog`;
DROP TABLE IF EXISTS `bk_evaluation_action_catalog`;
DROP TABLE IF EXISTS `bk_component_catalog`;
DROP TABLE IF EXISTS `bk_domain_catalog`;
DROP TABLE IF EXISTS `report_guidance_traces`;
DROP TABLE IF EXISTS `guidance_document_templates`;
DROP TABLE IF EXISTS `regulatory_requirement_traces`;
DROP TABLE IF EXISTS `regulatory_source_artifacts`;
DROP TABLE IF EXISTS `bk_program_followups`;
DROP TABLE IF EXISTS `bk_program_evaluations`;
DROP TABLE IF EXISTS `bk_service_executions`;
DROP TABLE IF EXISTS `bk_rplbk`;
DROP TABLE IF EXISTS `bk_operational_plans`;
DROP TABLE IF EXISTS `bk_programs`;
DROP TABLE IF EXISTS `bk_review_records`;
DROP TABLE IF EXISTS `bk_service_components`;
DROP TABLE IF EXISTS `bk_review_question_catalog`;
DROP TABLE IF EXISTS `service_decision_records`;
DROP TABLE IF EXISTS `service_escalation_rules`;
DROP TABLE IF EXISTS `service_outcome_indicators`;
DROP TABLE IF EXISTS `need_service_mappings`;
DROP TABLE IF EXISTS `evidence_theme_need_mappings`;
DROP TABLE IF EXISTS `bk_need_catalog`;
DROP TABLE IF EXISTS `service_guideline_traces`;
DROP TABLE IF EXISTS `service_definitions`;
DROP TABLE IF EXISTS `evidence_service_mappings`;
DROP TABLE IF EXISTS `evidence_themes`;
DROP TABLE IF EXISTS `evidence_source_profiles`;
DROP TABLE IF EXISTS `vocational_reviews`;
DROP TABLE IF EXISTS `pkl_records`;
DROP TABLE IF EXISTS `vocational_user_scopes`;
DROP TABLE IF EXISTS `student_vocational_profiles`;
DROP TABLE IF EXISTS `vocational_programs`;
DROP TABLE IF EXISTS `audit_logs`;
DROP TABLE IF EXISTS `app_config`;
DROP TABLE IF EXISTS `baseline_requirements`;
DROP TABLE IF EXISTS `development_phase_baselines`;
DROP TABLE IF EXISTS `track_regulatory_sources`;
DROP TABLE IF EXISTS `regulatory_sources`;
DROP TABLE IF EXISTS `data_requests`;
DROP TABLE IF EXISTS `retention_policies`;
DROP TABLE IF EXISTS `ocr_verified_payloads`;
DROP TABLE IF EXISTS `ocr_jobs`;
DROP TABLE IF EXISTS `import_rows`;
DROP TABLE IF EXISTS `imported_files`;
DROP TABLE IF EXISTS `report_role_access`;
DROP TABLE IF EXISTS `report_definitions`;
DROP TABLE IF EXISTS `wellbeing_snapshots`;
DROP TABLE IF EXISTS `plan_actions`;
DROP TABLE IF EXISTS `student_plans`;
DROP TABLE IF EXISTS `school_subject_catalog`;
DROP TABLE IF EXISTS `planning_question_options`;
DROP TABLE IF EXISTS `planning_question_definitions`;
DROP TABLE IF EXISTS `planning_workflows`;
DROP TABLE IF EXISTS `alerts`;
DROP TABLE IF EXISTS `sociometry_choices`;
DROP TABLE IF EXISTS `sociometry_sessions`;
DROP TABLE IF EXISTS `monitoring_feature_controls`;
DROP TABLE IF EXISTS `monitoring_signals`;
DROP TABLE IF EXISTS `monitoring_rules`;
DROP TABLE IF EXISTS `incidents`;
DROP TABLE IF EXISTS `academic_summaries`;
DROP TABLE IF EXISTS `attendance_summaries`;
DROP TABLE IF EXISTS `followups`;
DROP TABLE IF EXISTS `service_records`;
DROP TABLE IF EXISTS `service_catalog`;
DROP TABLE IF EXISTS `referrals`;
DROP TABLE IF EXISTS `referral_categories`;
DROP TABLE IF EXISTS `pulse_checks`;
DROP TABLE IF EXISTS `pulse_definition_options`;
DROP TABLE IF EXISTS `pulse_definitions`;
DROP TABLE IF EXISTS `assessment_response_quality`;
DROP TABLE IF EXISTS `assessment_scores`;
DROP TABLE IF EXISTS `assessment_answers`;
DROP TABLE IF EXISTS `assessment_sessions`;
DROP TABLE IF EXISTS `assessment_routes`;
DROP TABLE IF EXISTS `assessment_item_options`;
DROP TABLE IF EXISTS `assessment_items`;
DROP TABLE IF EXISTS `assessment_modules`;
DROP TABLE IF EXISTS `assessment_bank_versions`;
DROP TABLE IF EXISTS `assessment_banks`;
DROP TABLE IF EXISTS `skkpd_indicators`;
DROP TABLE IF EXISTS `skkpd_aspects`;
DROP TABLE IF EXISTS `student_guardians`;
DROP TABLE IF EXISTS `guardians`;
DROP TABLE IF EXISTS `enrollments`;
DROP TABLE IF EXISTS `students`;
DROP TABLE IF EXISTS `classes`;
DROP TABLE IF EXISTS `user_role_assignments`;
DROP TABLE IF EXISTS `user_school_memberships`;
DROP TABLE IF EXISTS `user_roles`;
DROP TABLE IF EXISTS `users`;
DROP TABLE IF EXISTS `role_navigation`;
DROP TABLE IF EXISTS `navigation_items`;
DROP TABLE IF EXISTS `role_permissions`;
DROP TABLE IF EXISTS `permissions`;
DROP TABLE IF EXISTS `roles`;
DROP TABLE IF EXISTS `academic_years`;
DROP TABLE IF EXISTS `runtime_parameters`;
DROP TABLE IF EXISTS `school_level_profiles`;
DROP TABLE IF EXISTS `schools`;
CREATE TABLE IF NOT EXISTS schools (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  npsn VARCHAR(20) NULL,
  name VARCHAR(190) NOT NULL,
  school_level_code VARCHAR(20) NOT NULL DEFAULT 'SMP_MTS' CHECK (school_level_code='SMP_MTS'),
  institution_form ENUM('school','madrasah') NOT NULL DEFAULT 'school',
  city VARCHAR(120) NULL,
  province VARCHAR(120) NULL,
  address VARCHAR(255) NULL,
  timezone VARCHAR(64) NOT NULL DEFAULT 'Asia/Jakarta',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_school_npsn(npsn)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS school_level_profiles (
  code VARCHAR(20) PRIMARY KEY CHECK (code='SMP_MTS'),
  label VARCHAR(80) NOT NULL,
  allowed_levels_json JSON NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS runtime_parameters (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  parameter_group VARCHAR(50) NOT NULL,
  parameter_key VARCHAR(80) NOT NULL,
  parameter_value VARCHAR(190) NOT NULL,
  value_type ENUM('int','float','bool','string') NOT NULL DEFAULT 'string',
  active TINYINT(1) NOT NULL DEFAULT 1,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY(profile_code,parameter_group,parameter_key),
  CONSTRAINT fk_runtime_param_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS academic_years (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  label VARCHAR(30) NOT NULL,
  start_date DATE NOT NULL,
  end_date DATE NOT NULL,
  is_active TINYINT(1) NOT NULL DEFAULT 0,
  UNIQUE KEY uq_year(school_id,label),
  CONSTRAINT fk_year_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS roles (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(50) NOT NULL,
  label VARCHAR(120) NOT NULL,
  scope VARCHAR(30) NOT NULL,
  is_active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_role_profile(profile_code,code),
  CONSTRAINT fk_role_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS permissions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  code VARCHAR(80) NOT NULL UNIQUE,
  label VARCHAR(160) NOT NULL,
  privacy_ceiling ENUM('A','B','C','D') NOT NULL DEFAULT 'A'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS role_permissions (
  role_id BIGINT UNSIGNED NOT NULL,
  permission_id BIGINT UNSIGNED NOT NULL,
  PRIMARY KEY(role_id,permission_id),
  CONSTRAINT fk_rp_role FOREIGN KEY(role_id) REFERENCES roles(id) ON DELETE CASCADE,
  CONSTRAINT fk_rp_perm FOREIGN KEY(permission_id) REFERENCES permissions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS navigation_items (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(50) NOT NULL,
  page_slug VARCHAR(60) NOT NULL,
  label VARCHAR(120) NOT NULL,
  icon VARCHAR(40) NOT NULL DEFAULT 'home',
  sort_order INT NOT NULL DEFAULT 100,
  is_active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_nav_profile(profile_code,code),
  CONSTRAINT fk_nav_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS role_navigation (
  role_id BIGINT UNSIGNED NOT NULL,
  navigation_item_id BIGINT UNSIGNED NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  PRIMARY KEY(role_id,navigation_item_id),
  CONSTRAINT fk_rn_role FOREIGN KEY(role_id) REFERENCES roles(id) ON DELETE CASCADE,
  CONSTRAINT fk_rn_nav FOREIGN KEY(navigation_item_id) REFERENCES navigation_items(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS users (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NULL,
  name VARCHAR(190) NOT NULL,
  email VARCHAR(190) NULL,
  username VARCHAR(100) NULL,
  password_hash VARCHAR(255) NOT NULL,
  is_active TINYINT(1) NOT NULL DEFAULT 1,
  last_login_at DATETIME NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_user_email(email),
  UNIQUE KEY uq_user_username(username),
  CONSTRAINT fk_user_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS user_roles (
  user_id BIGINT UNSIGNED NOT NULL,
  role_id BIGINT UNSIGNED NOT NULL,
  is_primary TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY(user_id,role_id),
  CONSTRAINT fk_ur_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
  CONSTRAINT fk_ur_role FOREIGN KEY(role_id) REFERENCES roles(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS user_school_memberships (
  user_id BIGINT UNSIGNED NOT NULL,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  is_primary TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY(user_id,school_id,profile_code),
  CONSTRAINT fk_usm_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
  CONSTRAINT fk_usm_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_usm_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS user_role_assignments (
  user_id BIGINT UNSIGNED NOT NULL,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  role_id BIGINT UNSIGNED NOT NULL,
  is_primary TINYINT(1) NOT NULL DEFAULT 0,
  PRIMARY KEY(user_id,school_id,profile_code,role_id),
  CONSTRAINT fk_ura_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
  CONSTRAINT fk_ura_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_ura_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_ura_role FOREIGN KEY(role_id) REFERENCES roles(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS classes (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  academic_year_id BIGINT UNSIGNED NOT NULL,
  level VARCHAR(12) NOT NULL,
  name VARCHAR(80) NOT NULL,
  homeroom_user_id BIGINT UNSIGNED NULL,
  UNIQUE KEY uq_class(school_id,academic_year_id,level,name),
  CONSTRAINT fk_class_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_class_year FOREIGN KEY(academic_year_id) REFERENCES academic_years(id) ON DELETE CASCADE,
  CONSTRAINT fk_class_homeroom FOREIGN KEY(homeroom_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS students (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  user_id BIGINT UNSIGNED NULL,
  nisn VARCHAR(30) NOT NULL,
  name VARCHAR(190) NOT NULL,
  gender VARCHAR(20) NULL,
  birth_date DATE NULL,
  is_active TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_student_nisn(school_id,nisn),
  CONSTRAINT fk_student_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_student_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS enrollments (
  student_id BIGINT UNSIGNED NOT NULL,
  academic_year_id BIGINT UNSIGNED NOT NULL,
  class_id BIGINT UNSIGNED NOT NULL,
  counselor_user_id BIGINT UNSIGNED NULL,
  status ENUM('active','inactive','graduated','transferred') NOT NULL DEFAULT 'active',
  PRIMARY KEY(student_id,academic_year_id),
  CONSTRAINT fk_en_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_en_year FOREIGN KEY(academic_year_id) REFERENCES academic_years(id) ON DELETE CASCADE,
  CONSTRAINT fk_en_class FOREIGN KEY(class_id) REFERENCES classes(id) ON DELETE CASCADE,
  CONSTRAINT fk_en_counselor FOREIGN KEY(counselor_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS guardians (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  user_id BIGINT UNSIGNED NULL,
  name VARCHAR(190) NOT NULL,
  relation_label VARCHAR(80) NULL,
  email VARCHAR(190) NULL,
  CONSTRAINT fk_guard_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_guard_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS student_guardians (
  student_id BIGINT UNSIGNED NOT NULL,
  guardian_id BIGINT UNSIGNED NOT NULL,
  is_primary TINYINT(1) NOT NULL DEFAULT 0,
  can_view_summary TINYINT(1) NOT NULL DEFAULT 1,
  PRIMARY KEY(student_id,guardian_id),
  CONSTRAINT fk_sg_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_sg_guardian FOREIGN KEY(guardian_id) REFERENCES guardians(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS skkpd_aspects (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(10) NOT NULL,
  canonical_name VARCHAR(190) NOT NULL,
  student_label VARCHAR(190) NOT NULL,
  bk_domain VARCHAR(80) NOT NULL,
  description TEXT NULL,
  sort_order INT NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_skkpd(profile_code,code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS skkpd_indicators (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  aspect_id BIGINT UNSIGNED NOT NULL,
  stage_code VARCHAR(20) NULL,
  indicator_code VARCHAR(30) NOT NULL,
  description TEXT NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_indicator(aspect_id,indicator_code),
  CONSTRAINT fk_ind_aspect FOREIGN KEY(aspect_id) REFERENCES skkpd_aspects(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_banks (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  bank_code VARCHAR(80) NOT NULL UNIQUE,
  name VARCHAR(190) NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  intended_use TEXT NOT NULL,
  prohibited_use TEXT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_bank_versions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  bank_id BIGINT UNSIGNED NOT NULL,
  bank_version VARCHAR(50) NOT NULL,
  route_version VARCHAR(50) NOT NULL,
  scoring_version VARCHAR(50) NOT NULL,
  evidence_status ENUM('prevalidation','pilot','validated','retired') NOT NULL DEFAULT 'prevalidation',
  content_hash CHAR(64) NULL,
  is_active TINYINT(1) NOT NULL DEFAULT 0,
  effective_from DATETIME NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_bank_version(bank_id,bank_version),
  CONSTRAINT fk_bv_bank FOREIGN KEY(bank_id) REFERENCES assessment_banks(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_modules (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  bank_version_id BIGINT UNSIGNED NOT NULL,
  module_code VARCHAR(50) NOT NULL,
  name VARCHAR(190) NOT NULL,
  description TEXT NULL,
  mandatory_by_default TINYINT(1) NOT NULL DEFAULT 0,
  expected_minutes SMALLINT UNSIGNED NULL,
  sort_order INT NOT NULL DEFAULT 100,
  UNIQUE KEY uq_module(bank_version_id,module_code),
  CONSTRAINT fk_module_version FOREIGN KEY(bank_version_id) REFERENCES assessment_bank_versions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_items (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  bank_version_id BIGINT UNSIGNED NOT NULL,
  module_id BIGINT UNSIGNED NOT NULL,
  item_code VARCHAR(80) NOT NULL,
  school_level_code VARCHAR(20) NOT NULL CHECK (school_level_code='SMP_MTS'),
  phase_levels VARCHAR(40) NOT NULL,
  aspect_code VARCHAR(10) NOT NULL,
  facet_code VARCHAR(40) NULL,
  bk_domain VARCHAR(80) NOT NULL,
  stage_code VARCHAR(20) NULL,
  response_type VARCHAR(30) NOT NULL,
  prompt TEXT NOT NULL,
  student_label VARCHAR(190) NULL,
  scoring_mode VARCHAR(30) NOT NULL DEFAULT 'explicit_option',
  privacy_class ENUM('A','B','C','D') NOT NULL DEFAULT 'B',
  intended_use TEXT NOT NULL,
  prohibited_use TEXT NOT NULL,
  evidence_status ENUM('prevalidation','pilot','validated','retired') NOT NULL DEFAULT 'prevalidation',
  order_no INT NOT NULL,
  is_active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_item_version(bank_version_id,item_code),
  CONSTRAINT fk_item_version FOREIGN KEY(bank_version_id) REFERENCES assessment_bank_versions(id) ON DELETE CASCADE,
  CONSTRAINT fk_item_module FOREIGN KEY(module_id) REFERENCES assessment_modules(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_item_options (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  item_id BIGINT UNSIGNED NOT NULL,
  option_key VARCHAR(20) NOT NULL,
  option_text TEXT NOT NULL,
  raw_score DECIMAL(8,3) NULL,
  effect_json JSON NULL,
  sort_order INT NOT NULL DEFAULT 100,
  UNIQUE KEY uq_item_option(item_id,option_key),
  CONSTRAINT fk_option_item FOREIGN KEY(item_id) REFERENCES assessment_items(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_routes (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  bank_version_id BIGINT UNSIGNED NOT NULL,
  route_code VARCHAR(80) NOT NULL,
  phase_level VARCHAR(12) NULL,
  trigger_type VARCHAR(40) NOT NULL,
  trigger_config_json JSON NULL,
  module_code VARCHAR(50) NOT NULL,
  priority INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_route(bank_version_id,route_code),
  CONSTRAINT fk_route_version FOREIGN KEY(bank_version_id) REFERENCES assessment_bank_versions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_sessions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  bank_version_id BIGINT UNSIGNED NOT NULL,
  bank_version VARCHAR(50) NOT NULL,
  route_version VARCHAR(50) NOT NULL,
  scoring_version VARCHAR(50) NOT NULL,
  module_code VARCHAR(50) NOT NULL DEFAULT 'BASELINE',
  phase_level VARCHAR(12) NULL,
  period_label VARCHAR(80) NULL,
  status ENUM('draft','in_progress','complete','closed') NOT NULL DEFAULT 'in_progress',
  started_at DATETIME NOT NULL,
  completed_at DATETIME NULL,
  created_by BIGINT UNSIGNED NULL,
  KEY idx_session_student(student_id,status,started_at),
  CONSTRAINT fk_session_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_session_version FOREIGN KEY(bank_version_id) REFERENCES assessment_bank_versions(id),
  CONSTRAINT fk_session_creator FOREIGN KEY(created_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_answers (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  session_id BIGINT UNSIGNED NOT NULL,
  item_id BIGINT UNSIGNED NOT NULL,
  item_code_snapshot VARCHAR(80) NOT NULL,
  selected_key VARCHAR(20) NOT NULL,
  raw_score DECIMAL(8,3) NULL,
  effect_json JSON NULL,
  answered_at DATETIME NOT NULL,
  UNIQUE KEY uq_answer(session_id,item_id),
  CONSTRAINT fk_answer_session FOREIGN KEY(session_id) REFERENCES assessment_sessions(id) ON DELETE CASCADE,
  CONSTRAINT fk_answer_item FOREIGN KEY(item_id) REFERENCES assessment_items(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_scores (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  session_id BIGINT UNSIGNED NOT NULL,
  aspect_code VARCHAR(10) NOT NULL,
  stage_code VARCHAR(20) NULL,
  score_value DECIMAL(10,3) NULL,
  evidence_count SMALLINT UNSIGNED NOT NULL DEFAULT 0,
  interpretation TEXT NULL,
  UNIQUE KEY uq_score(session_id,aspect_code,stage_code),
  CONSTRAINT fk_score_session FOREIGN KEY(session_id) REFERENCES assessment_sessions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS assessment_response_quality (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  session_id BIGINT UNSIGNED NOT NULL,
  status_code ENUM('adequate','review','needs_confirmation') NOT NULL,
  quality_score TINYINT UNSIGNED NOT NULL,
  duration_seconds INT UNSIGNED NULL,
  flags_json JSON NOT NULL,
  details_json JSON NOT NULL,
  checked_at DATETIME NOT NULL,
  UNIQUE KEY uq_response_quality_session(session_id),
  KEY idx_response_quality_status(status_code,checked_at),
  CONSTRAINT fk_response_quality_session FOREIGN KEY(session_id) REFERENCES assessment_sessions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS pulse_definitions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(50) NOT NULL,
  label VARCHAR(120) NOT NULL,
  response_min TINYINT NULL,
  response_max TINYINT NULL,
  privacy_class ENUM('A','B','C','D') NOT NULL DEFAULT 'B',
  help_trigger TINYINT(1) NOT NULL DEFAULT 0,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_pulse_profile(profile_code,code),
  CONSTRAINT fk_pulse_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS pulse_definition_options (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  pulse_definition_id BIGINT UNSIGNED NOT NULL,
  option_key VARCHAR(30) NOT NULL,
  option_label VARCHAR(190) NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  UNIQUE KEY uq_pulse_option(pulse_definition_id,option_key),
  CONSTRAINT fk_pulse_option_def FOREIGN KEY(pulse_definition_id) REFERENCES pulse_definitions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS pulse_checks (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  check_date DATE NOT NULL,
  response_json JSON NOT NULL,
  help_requested TINYINT(1) NOT NULL DEFAULT 0,
  note VARCHAR(500) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_pulse(student_id,check_date),
  CONSTRAINT fk_pulse_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS referral_categories (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(50) NOT NULL,
  label VARCHAR(120) NOT NULL,
  default_privacy ENUM('A','B','C','D') NOT NULL DEFAULT 'C',
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_refcat_profile(profile_code,code),
  CONSTRAINT fk_refcat_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS referrals (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  student_id BIGINT UNSIGNED NOT NULL,
  referred_by BIGINT UNSIGNED NOT NULL,
  source_role VARCHAR(50) NOT NULL,
  category_code VARCHAR(50) NOT NULL,
  concern_level ENUM('routine','review','urgent') NOT NULL DEFAULT 'review',
  summary VARCHAR(500) NOT NULL,
  privacy_level ENUM('A','B','C','D') NOT NULL DEFAULT 'C',
  status ENUM('submitted','triaged','in_service','closed') NOT NULL DEFAULT 'submitted',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  reviewed_by BIGINT UNSIGNED NULL,
  reviewed_at DATETIME NULL,
  CONSTRAINT fk_ref_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_ref_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_ref_user FOREIGN KEY(referred_by) REFERENCES users(id),
  CONSTRAINT fk_ref_reviewer FOREIGN KEY(reviewed_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS service_catalog (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(60) NOT NULL,
  label VARCHAR(160) NOT NULL,
  bk_domain VARCHAR(80) NULL,
  service_component VARCHAR(40) NULL,
  regulatory_basis_code VARCHAR(80) NULL,
  default_privacy ENUM('A','B','C','D') NOT NULL DEFAULT 'C',
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_service_profile(profile_code,code),
  CONSTRAINT fk_service_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS service_records (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  service_code VARCHAR(60) NOT NULL,
  owner_user_id BIGINT UNSIGNED NOT NULL,
  service_date DATE NOT NULL,
  topic VARCHAR(250) NULL,
  outcome_summary VARCHAR(500) NULL,
  confidential_note TEXT NULL,
  privacy_level ENUM('A','B','C','D') NOT NULL DEFAULT 'C',
  status ENUM('planned','active','done','cancelled') NOT NULL DEFAULT 'active',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_service_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_service_owner FOREIGN KEY(owner_user_id) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS followups (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  owner_user_id BIGINT UNSIGNED NOT NULL,
  service_record_id BIGINT UNSIGNED NULL,
  action_type VARCHAR(120) NOT NULL,
  action_summary VARCHAR(500) NOT NULL,
  due_date DATE NULL,
  status ENUM('planned','active','done','cancelled','reopened') NOT NULL DEFAULT 'planned',
  privacy_level ENUM('A','B','C','D') NOT NULL DEFAULT 'C',
  close_reason VARCHAR(500) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_follow_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_follow_owner FOREIGN KEY(owner_user_id) REFERENCES users(id),
  CONSTRAINT fk_follow_service FOREIGN KEY(service_record_id) REFERENCES service_records(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS attendance_summaries (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  period_start DATE NOT NULL,
  period_end DATE NOT NULL,
  present_days INT UNSIGNED NULL,
  excused_days INT UNSIGNED NULL,
  sick_days INT UNSIGNED NULL,
  absent_days INT UNSIGNED NULL,
  late_count INT UNSIGNED NULL,
  attendance_pct DECIMAL(6,2) NULL,
  source VARCHAR(80) NULL,
  UNIQUE KEY uq_attendance(student_id,period_start,period_end),
  CONSTRAINT fk_att_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS academic_summaries (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  period_label VARCHAR(80) NOT NULL,
  grade_avg DECIMAL(6,2) NULL,
  task_completion_pct DECIMAL(6,2) NULL,
  source VARCHAR(80) NULL,
  UNIQUE KEY uq_academic(student_id,period_label),
  CONSTRAINT fk_acad_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS incidents (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  student_id BIGINT UNSIGNED NULL,
  event_date DATETIME NOT NULL,
  category_code VARCHAR(60) NOT NULL,
  summary VARCHAR(500) NOT NULL,
  privacy_level ENUM('A','B','C','D') NOT NULL DEFAULT 'C',
  status VARCHAR(30) NOT NULL DEFAULT 'open',
  created_by BIGINT UNSIGNED NULL,
  CONSTRAINT fk_inc_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_inc_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_inc_user FOREIGN KEY(created_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS monitoring_rules (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  school_id BIGINT UNSIGNED NULL,
  rule_code VARCHAR(80) NOT NULL,
  rule_version VARCHAR(40) NOT NULL,
  label VARCHAR(160) NOT NULL,
  metric_key VARCHAR(80) NOT NULL,
  operator_code VARCHAR(20) NOT NULL,
  threshold_value DECIMAL(10,3) NULL,
  priority_code ENUM('monitor','review','priority') NOT NULL DEFAULT 'review',
  bk_domain VARCHAR(80) NULL,
  reason_template VARCHAR(500) NOT NULL,
  rule_kind ENUM('threshold','explicit_event','invariant','data_quality') NOT NULL DEFAULT 'threshold',
  validation_status ENUM('legal_locked','developmental','requires_validation','empirically_validated') NOT NULL DEFAULT 'requires_validation',
  source_ref VARCHAR(190) NULL,
  simulation_only TINYINT(1) NOT NULL DEFAULT 0,
  limitation_text VARCHAR(800) NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_rule(profile_code,school_id,rule_code,rule_version),
  CONSTRAINT fk_rule_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_rule_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS monitoring_signals (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  signal_date DATETIME NOT NULL,
  domain VARCHAR(80) NULL,
  signal_code VARCHAR(80) NOT NULL,
  source_type VARCHAR(60) NOT NULL,
  source_id BIGINT UNSIGNED NULL,
  priority_code ENUM('monitor','review','priority') NOT NULL DEFAULT 'review',
  rule_code VARCHAR(80) NULL,
  rule_version VARCHAR(40) NULL,
  reason_text VARCHAR(800) NOT NULL,
  evidence_json JSON NOT NULL,
  status ENUM('open','reviewed','closed') NOT NULL DEFAULT 'open',
  reviewer_user_id BIGINT UNSIGNED NULL,
  reviewed_at DATETIME NULL,
  review_note VARCHAR(500) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  closed_at DATETIME NULL,
  KEY idx_signal_open(student_id,status,priority_code,signal_date),
  KEY idx_signal_source(source_type,source_id),
  CONSTRAINT fk_signal_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_signal_reviewer FOREIGN KEY(reviewer_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS monitoring_feature_controls (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('school','madrasah') NOT NULL,
  feature_code VARCHAR(80) NOT NULL,
  enabled TINYINT(1) NOT NULL DEFAULT 0,
  source_ref VARCHAR(190) NULL,
  validation_status ENUM('legal_locked','guidance_supported','requires_validation','empirically_validated') NOT NULL DEFAULT 'requires_validation',
  limitation_text VARCHAR(800) NULL,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY(profile_code,institution_context,feature_code),
  CONSTRAINT fk_mfc_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS sociometry_sessions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  class_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('school','madrasah') NOT NULL,
  criterion_label VARCHAR(190) NOT NULL,
  criterion_text VARCHAR(800) NOT NULL,
  criterion_source_ref VARCHAR(255) NOT NULL,
  criterion_version VARCHAR(80) NOT NULL,
  max_choices SMALLINT UNSIGNED NULL,
  status ENUM('draft','open','closed','archived') NOT NULL DEFAULT 'draft',
  created_by BIGINT UNSIGNED NOT NULL,
  opened_at DATETIME NULL,
  closed_at DATETIME NULL,
  synthetic_only TINYINT(1) NOT NULL DEFAULT 0,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_soc_session_scope(school_id,class_id,status),
  CONSTRAINT fk_soc_session_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_soc_session_class FOREIGN KEY(class_id) REFERENCES classes(id) ON DELETE CASCADE,
  CONSTRAINT fk_soc_session_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_soc_session_user FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS sociometry_choices (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  session_id BIGINT UNSIGNED NOT NULL,
  chooser_student_id BIGINT UNSIGNED NOT NULL,
  chosen_student_id BIGINT UNSIGNED NOT NULL,
  choice_order SMALLINT UNSIGNED NULL,
  synthetic_only TINYINT(1) NOT NULL DEFAULT 0,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_soc_choice(session_id,chooser_student_id,chosen_student_id),
  KEY idx_soc_choice_chosen(session_id,chosen_student_id),
  CONSTRAINT fk_soc_choice_session FOREIGN KEY(session_id) REFERENCES sociometry_sessions(id) ON DELETE CASCADE,
  CONSTRAINT fk_soc_choice_chooser FOREIGN KEY(chooser_student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_soc_choice_chosen FOREIGN KEY(chosen_student_id) REFERENCES students(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS alerts (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  signal_id BIGINT UNSIGNED NULL,
  priority ENUM('monitor','review','priority') NOT NULL DEFAULT 'review',
  reason_code VARCHAR(80) NOT NULL,
  reason_summary VARCHAR(800) NOT NULL,
  explain_json JSON NOT NULL,
  status ENUM('open','acknowledged','closed') NOT NULL DEFAULT 'open',
  assigned_to BIGINT UNSIGNED NULL,
  resolved_at DATETIME NULL,
  CONSTRAINT fk_alert_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_alert_signal FOREIGN KEY(signal_id) REFERENCES monitoring_signals(id) ON DELETE SET NULL,
  CONSTRAINT fk_alert_owner FOREIGN KEY(assigned_to) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS planning_workflows (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  phase_level VARCHAR(12) NOT NULL,
  plan_type VARCHAR(40) NOT NULL,
  label VARCHAR(190) NOT NULL,
  guidance VARCHAR(500) NOT NULL,
  student_guidance VARCHAR(500) NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_planning_workflow(profile_code,phase_level,plan_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS planning_question_definitions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  phase_level VARCHAR(12) NOT NULL,
  plan_type VARCHAR(40) NOT NULL,
  question_key VARCHAR(80) NOT NULL,
  prompt VARCHAR(500) NOT NULL,
  help_text VARCHAR(500) NULL,
  input_type ENUM('single','multi','subject_multi','text') NOT NULL DEFAULT 'single',
  response_bucket ENUM('goal','choices','barriers','context') NOT NULL DEFAULT 'context',
  required TINYINT(1) NOT NULL DEFAULT 1,
  max_select INT NOT NULL DEFAULT 1,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_planning_question(profile_code,phase_level,plan_type,question_key),
  CONSTRAINT fk_planning_question_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS planning_question_options (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  question_id BIGINT UNSIGNED NOT NULL,
  option_key VARCHAR(80) NOT NULL,
  option_label VARCHAR(240) NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_planning_question_option(question_id,option_key),
  CONSTRAINT fk_planning_question_option FOREIGN KEY(question_id) REFERENCES planning_question_definitions(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS school_subject_catalog (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  subject_code VARCHAR(80) NOT NULL,
  subject_label VARCHAR(190) NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_school_subject(school_id,subject_code),
  CONSTRAINT fk_school_subject_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS student_plans (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  academic_year_id BIGINT UNSIGNED NOT NULL,
  plan_type VARCHAR(50) NOT NULL,
  phase_level VARCHAR(12) NOT NULL,
  status ENUM('draft','needs_review','confirmed','follow_up','closed') NOT NULL DEFAULT 'draft',
  student_goal VARCHAR(500) NULL,
  choice_json JSON NULL,
  evidence_json JSON NULL,
  barrier_json JSON NULL,
  alternatives_json JSON NULL,
  human_review_required TINYINT(1) NOT NULL DEFAULT 1,
  reviewed_by BIGINT UNSIGNED NULL,
  reviewed_at DATETIME NULL,
  review_note VARCHAR(500) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uq_plan(student_id,academic_year_id,plan_type),
  CONSTRAINT fk_plan_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_plan_year FOREIGN KEY(academic_year_id) REFERENCES academic_years(id) ON DELETE CASCADE,
  CONSTRAINT fk_plan_reviewer FOREIGN KEY(reviewed_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS plan_actions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_plan_id BIGINT UNSIGNED NOT NULL,
  action_text VARCHAR(500) NOT NULL,
  due_date DATE NULL,
  owner_type ENUM('student','parent','counselor','school') NOT NULL DEFAULT 'student',
  status ENUM('planned','active','done','cancelled') NOT NULL DEFAULT 'planned',
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_action_plan FOREIGN KEY(student_plan_id) REFERENCES student_plans(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS wellbeing_snapshots (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  period_label VARCHAR(80) NOT NULL,
  metric_json JSON NOT NULL,
  source_note VARCHAR(500) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_wb(school_id,period_label),
  CONSTRAINT fk_wb_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS report_definitions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(60) NOT NULL,
  title VARCHAR(190) NOT NULL,
  audience_label VARCHAR(190) NOT NULL,
  privacy_class ENUM('A','B','C','D') NOT NULL DEFAULT 'B',
  template_version VARCHAR(40) NOT NULL DEFAULT '1.0',
  active TINYINT(1) NOT NULL DEFAULT 1,
  structure_json JSON NULL,
  source_ref VARCHAR(255) NULL,
  immutable_after_publish TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_report_profile(profile_code,code),
  CONSTRAINT fk_report_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS report_role_access (
  report_id BIGINT UNSIGNED NOT NULL,
  role_id BIGINT UNSIGNED NOT NULL,
  access_scope VARCHAR(40) NOT NULL DEFAULT 'aggregate',
  PRIMARY KEY(report_id,role_id),
  CONSTRAINT fk_rra_report FOREIGN KEY(report_id) REFERENCES report_definitions(id) ON DELETE CASCADE,
  CONSTRAINT fk_rra_role FOREIGN KEY(role_id) REFERENCES roles(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS imported_files (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  uploaded_by BIGINT UNSIGNED NOT NULL,
  import_type VARCHAR(40) NOT NULL,
  original_name VARCHAR(255) NOT NULL,
  storage_name VARCHAR(255) NOT NULL,
  mime_type VARCHAR(120) NULL,
  status ENUM('preview','confirmed','rejected','failed') NOT NULL DEFAULT 'preview',
  row_count INT UNSIGNED NOT NULL DEFAULT 0,
  valid_count INT UNSIGNED NOT NULL DEFAULT 0,
  error_count INT UNSIGNED NOT NULL DEFAULT 0,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  confirmed_at DATETIME NULL,
  CONSTRAINT fk_if_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_if_user FOREIGN KEY(uploaded_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS import_rows (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  imported_file_id BIGINT UNSIGNED NOT NULL,
  row_no INT UNSIGNED NOT NULL,
  raw_json JSON NOT NULL,
  normalized_json JSON NULL,
  validation_status ENUM('valid','invalid','imported','skipped') NOT NULL,
  validation_message VARCHAR(500) NULL,
  UNIQUE KEY uq_import_row(imported_file_id,row_no),
  CONSTRAINT fk_ir_file FOREIGN KEY(imported_file_id) REFERENCES imported_files(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS ocr_jobs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  uploaded_by BIGINT UNSIGNED NOT NULL,
  original_name VARCHAR(255) NOT NULL,
  storage_name VARCHAR(255) NOT NULL,
  mime_type VARCHAR(120) NULL,
  status ENUM('uploaded','processing','needs_review','validated','imported','failed') NOT NULL DEFAULT 'uploaded',
  extracted_text MEDIUMTEXT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  reviewed_by BIGINT UNSIGNED NULL,
  reviewed_at DATETIME NULL,
  CONSTRAINT fk_ocr_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_ocr_user FOREIGN KEY(uploaded_by) REFERENCES users(id),
  CONSTRAINT fk_ocr_reviewer FOREIGN KEY(reviewed_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS ocr_verified_payloads (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  ocr_job_id BIGINT UNSIGNED NOT NULL,
  verified_by BIGINT UNSIGNED NOT NULL,
  import_type VARCHAR(40) NOT NULL,
  verified_json JSON NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_ocr_payload(ocr_job_id),
  CONSTRAINT fk_ovp_job FOREIGN KEY(ocr_job_id) REFERENCES ocr_jobs(id) ON DELETE CASCADE,
  CONSTRAINT fk_ovp_user FOREIGN KEY(verified_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS retention_policies (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NULL,
  data_class ENUM('A','B','C','D') NOT NULL,
  retention_months INT UNSIGNED NULL,
  policy_note VARCHAR(500) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_retention(school_id,data_class),
  CONSTRAINT fk_ret_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS data_requests (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  student_id BIGINT UNSIGNED NULL,
  requester_user_id BIGINT UNSIGNED NOT NULL,
  request_type ENUM('access','correction','deletion_review','restriction','other') NOT NULL,
  status ENUM('submitted','reviewing','approved','rejected','completed') NOT NULL DEFAULT 'submitted',
  request_summary VARCHAR(500) NOT NULL,
  resolution_summary VARCHAR(500) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  resolved_at DATETIME NULL,
  CONSTRAINT fk_dr_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_dr_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE SET NULL,
  CONSTRAINT fk_dr_user FOREIGN KEY(requester_user_id) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS regulatory_sources (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  source_code VARCHAR(80) NOT NULL UNIQUE,
  title VARCHAR(500) NOT NULL,
  authority VARCHAR(190) NOT NULL,
  source_type ENUM('regulation','official_guidance','professional_guidance','local_policy') NOT NULL,
  source_status VARCHAR(50) NOT NULL,
  official_url VARCHAR(1000) NULL,
  verified_on DATE NOT NULL,
  notes TEXT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS track_regulatory_sources (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  source_id BIGINT UNSIGNED NOT NULL,
  institution_context ENUM('all','school','madrasah') NOT NULL DEFAULT 'all',
  applicability_note VARCHAR(800) NOT NULL,
  design_consequence VARCHAR(1200) NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  PRIMARY KEY(profile_code,source_id,institution_context),
  CONSTRAINT fk_trs_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_trs_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS development_phase_baselines (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  phase_level VARCHAR(12) NOT NULL,
  phase_code VARCHAR(80) NOT NULL,
  title VARCHAR(190) NOT NULL,
  objective VARCHAR(1200) NOT NULL,
  evidence_focus_json JSON NOT NULL,
  service_focus_json JSON NOT NULL,
  outcome_focus_json JSON NOT NULL,
  source_codes_json JSON NOT NULL,
  baseline_version VARCHAR(40) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_phase_baseline(profile_code,phase_level,phase_code),
  CONSTRAINT fk_phase_baseline_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS baseline_requirements (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  requirement_code VARCHAR(80) NOT NULL,
  phase_levels VARCHAR(80) NOT NULL,
  institution_context ENUM('all','school','madrasah') NOT NULL DEFAULT 'all',
  source_id BIGINT UNSIGNED NULL,
  category VARCHAR(60) NOT NULL,
  requirement_text TEXT NOT NULL,
  app_translation TEXT NOT NULL,
  primary_roles_json JSON NOT NULL,
  evidence_json JSON NOT NULL,
  actions_json JSON NOT NULL,
  outcomes_json JSON NOT NULL,
  test_case_code VARCHAR(80) NOT NULL,
  implementation_status ENUM('mapped','implemented','partial','blocked') NOT NULL DEFAULT 'mapped',
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_baseline_req(profile_code,requirement_code),
  CONSTRAINT fk_baseline_req_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_baseline_req_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS app_config (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NULL,
  config_key VARCHAR(120) NOT NULL,
  config_value TEXT NOT NULL,
  value_type VARCHAR(30) NOT NULL DEFAULT 'string',
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uq_config(school_id,config_key),
  CONSTRAINT fk_cfg_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS audit_logs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NULL,
  user_id BIGINT UNSIGNED NULL,
  action_code VARCHAR(80) NOT NULL,
  entity_type VARCHAR(80) NULL,
  entity_id VARCHAR(80) NULL,
  detail_json JSON NULL,
  ip_hash CHAR(64) NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_audit_school_date(school_id,created_at),
  CONSTRAINT fk_audit_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_audit_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS vocational_programs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  code VARCHAR(40) NOT NULL,
  name VARCHAR(190) NOT NULL,
  concentration_name VARCHAR(190) NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_voc_program(school_id,code),
  CONSTRAINT fk_voc_program_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS student_vocational_profiles (
  student_id BIGINT UNSIGNED PRIMARY KEY,
  vocational_program_id BIGINT UNSIGNED NOT NULL,
  certification_status VARCHAR(160) NULL,
  transition_direction VARCHAR(190) NULL,
  bkk_consent TINYINT(1) NOT NULL DEFAULT 0,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_svp_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_svp_program FOREIGN KEY(vocational_program_id) REFERENCES vocational_programs(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS vocational_user_scopes (
  user_id BIGINT UNSIGNED NOT NULL,
  program_id BIGINT UNSIGNED NOT NULL,
  scope_type ENUM('program') NOT NULL DEFAULT 'program',
  PRIMARY KEY(user_id,program_id,scope_type),
  CONSTRAINT fk_vus_user FOREIGN KEY(user_id) REFERENCES users(id) ON DELETE CASCADE,
  CONSTRAINT fk_vus_program FOREIGN KEY(program_id) REFERENCES vocational_programs(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS pkl_records (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  coordinator_user_id BIGINT UNSIGNED NULL,
  company_name VARCHAR(190) NULL,
  status ENUM('not_yet','preparing','active','completed','cancelled') NOT NULL DEFAULT 'not_yet',
  start_date DATE NULL,
  end_date DATE NULL,
  safety_status VARCHAR(190) NULL,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY idx_pkl_scope(coordinator_user_id,status),
  KEY idx_pkl_student(student_id,id),
  CONSTRAINT fk_pkl_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_pkl_coordinator FOREIGN KEY(coordinator_user_id) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS vocational_reviews (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  review_type ENUM('vocational','pkl','transition') NOT NULL,
  status ENUM('reviewed','follow_up','closed') NOT NULL DEFAULT 'reviewed',
  note VARCHAR(500) NULL,
  reviewed_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_voc_review(student_id,review_type,status,created_at),
  CONSTRAINT fk_vr_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_vr_user FOREIGN KEY(reviewed_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS evidence_source_profiles (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  source_type VARCHAR(60) NOT NULL,
  label VARCHAR(160) NOT NULL,
  informant_class VARCHAR(60) NOT NULL,
  method_class VARCHAR(60) NOT NULL,
  context_class VARCHAR(60) NOT NULL,
  usage_note VARCHAR(500) NULL,
  is_quality_only TINYINT(1) NOT NULL DEFAULT 0,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_evidence_source_profile(profile_code,source_type),
  CONSTRAINT fk_evidence_source_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS evidence_themes (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  theme_code VARCHAR(80) NOT NULL,
  label VARCHAR(190) NOT NULL,
  bk_domain VARCHAR(80) NOT NULL,
  description VARCHAR(800) NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_evidence_theme(profile_code,theme_code),
  CONSTRAINT fk_evidence_theme_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS evidence_service_mappings (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  theme_code VARCHAR(80) NOT NULL,
  service_code VARCHAR(60) NOT NULL,
  rationale VARCHAR(800) NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_evidence_service(profile_code,theme_code,service_code),
  CONSTRAINT fk_evidence_service_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS service_definitions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  service_code VARCHAR(60) NOT NULL,
  purpose TEXT NOT NULL,
  indication_summary TEXT NOT NULL,
  limitation_summary TEXT NOT NULL,
  executor_scope VARCHAR(255) NOT NULL,
  participant_scope VARCHAR(255) NULL,
  service_mode VARCHAR(40) NOT NULL DEFAULT 'direct',
  guideline_tier ENUM('official_current','archival_professional','track_specific') NOT NULL DEFAULT 'official_current',
  case_selectable TINYINT(1) NOT NULL DEFAULT 1,
  requires_human_confirmation TINYINT(1) NOT NULL DEFAULT 1,
  followup_required TINYINT(1) NOT NULL DEFAULT 1,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_service_definition(profile_code,service_code),
  CONSTRAINT fk_service_definition_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS service_guideline_traces (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  service_code VARCHAR(60) NOT NULL,
  source_id BIGINT UNSIGNED NOT NULL,
  locator VARCHAR(180) NOT NULL,
  trace_claim TEXT NOT NULL,
  source_tier ENUM('regulation','official_guidance','archival_professional') NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  KEY idx_service_trace(profile_code,service_code,sort_order),
  CONSTRAINT fk_service_trace_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_service_trace_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_need_catalog (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  need_code VARCHAR(80) NOT NULL,
  label VARCHAR(190) NOT NULL,
  bk_domain VARCHAR(80) NOT NULL,
  description TEXT NOT NULL,
  clarification_prompt TEXT NOT NULL,
  decision_boundary TEXT NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  sort_order INT NOT NULL DEFAULT 100,
  UNIQUE KEY uq_bk_need(profile_code,need_code),
  CONSTRAINT fk_bk_need_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS evidence_theme_need_mappings (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  theme_code VARCHAR(80) NOT NULL,
  need_code VARCHAR(80) NOT NULL,
  rationale TEXT NOT NULL,
  requires_confirmation TINYINT(1) NOT NULL DEFAULT 1,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_theme_need(profile_code,theme_code,need_code),
  CONSTRAINT fk_theme_need_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS need_service_mappings (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  need_code VARCHAR(80) NOT NULL,
  service_code VARCHAR(60) NOT NULL,
  mapping_role ENUM('primary','conditional','supporting','archival_optional') NOT NULL DEFAULT 'conditional',
  rationale TEXT NOT NULL,
  precondition_text TEXT NOT NULL,
  boundary_text TEXT NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_need_service(profile_code,need_code,service_code),
  CONSTRAINT fk_need_service_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS service_outcome_indicators (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  service_code VARCHAR(60) NOT NULL,
  indicator_code VARCHAR(80) NOT NULL,
  label VARCHAR(220) NOT NULL,
  indicator_type ENUM('process','student_report','observable','coordination','referral','planning') NOT NULL DEFAULT 'process',
  description TEXT NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_service_outcome(profile_code,service_code,indicator_code),
  CONSTRAINT fk_service_outcome_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS service_escalation_rules (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  trigger_code VARCHAR(80) NOT NULL,
  title VARCHAR(200) NOT NULL,
  condition_text TEXT NOT NULL,
  required_human_action TEXT NOT NULL,
  suggested_service_code VARCHAR(60) NULL,
  source_id BIGINT UNSIGNED NOT NULL,
  locator VARCHAR(180) NOT NULL,
  auto_execute TINYINT(1) NOT NULL DEFAULT 0,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_service_escalation(profile_code,trigger_code),
  CONSTRAINT fk_service_escalation_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_service_escalation_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS service_decision_records (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  service_record_id BIGINT UNSIGNED NOT NULL,
  owner_user_id BIGINT UNSIGNED NOT NULL,
  theme_code VARCHAR(80) NULL,
  need_code VARCHAR(80) NULL,
  need_service_mapping_id BIGINT UNSIGNED NULL,
  decision_rationale TEXT NOT NULL,
  target_agreed VARCHAR(500) NULL,
  parties_involved VARCHAR(500) NULL,
  result_status VARCHAR(40) NULL,
  followup_decision VARCHAR(40) NULL,
  evidence_snapshot_json LONGTEXT NULL,
  guideline_snapshot_json LONGTEXT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_service_decision_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_service_decision_service FOREIGN KEY(service_record_id) REFERENCES service_records(id) ON DELETE CASCADE,
  CONSTRAINT fk_service_decision_owner FOREIGN KEY(owner_user_id) REFERENCES users(id),
  CONSTRAINT fk_service_decision_mapping FOREIGN KEY(need_service_mapping_id) REFERENCES need_service_mappings(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_review_question_catalog (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  question_code VARCHAR(80) NOT NULL,
  label VARCHAR(300) NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_bk_review_question(profile_code,question_code),
  CONSTRAINT fk_bk_review_question_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_service_components (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  component_code VARCHAR(60) NOT NULL,
  label VARCHAR(190) NOT NULL,
  when_considered TEXT NOT NULL,
  example_forms TEXT NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_bk_service_component(profile_code,component_code),
  CONSTRAINT fk_bk_service_component_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_review_records (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  student_id BIGINT UNSIGNED NOT NULL,
  owner_user_id BIGINT UNSIGNED NOT NULL,
  review_status ENUM('need_more_info','need_clear','coordinate','refer','monitor_only') NOT NULL DEFAULT 'need_more_info',
  clarification_note TEXT NULL,
  target_note VARCHAR(500) NULL,
  safety_checked TINYINT(1) NOT NULL DEFAULT 0,
  selected_questions_json LONGTEXT NULL,
  evidence_snapshot_json LONGTEXT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_bk_review_student(student_id,created_at),
  CONSTRAINT fk_bk_review_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_bk_review_owner FOREIGN KEY(owner_user_id) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_programs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  academic_year_label VARCHAR(30) NOT NULL,
  period_type ENUM('annual','semester') NOT NULL DEFAULT 'semester',
  semester_label VARCHAR(20) NOT NULL,
  title VARCHAR(250) NOT NULL,
  rationale TEXT NULL,
  vision TEXT NULL,
  mission TEXT NULL,
  needs_description MEDIUMTEXT NULL,
  goals TEXT NULL,
  program_components_note TEXT NULL,
  service_fields_note TEXT NULL,
  theme_development_note TEXT NULL,
  evaluation_plan TEXT NULL,
  reporting_plan TEXT NULL,
  followup_plan TEXT NULL,
  resources_note TEXT NULL,
  budget_note TEXT NULL,
  regulatory_snapshot_json LONGTEXT NULL,
  requirement_snapshot_json LONGTEXT NULL,
  status ENUM('draft','active','completed') NOT NULL DEFAULT 'draft',
  owner_user_id BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY idx_bk_program_school(school_id,profile_code,status),
  CONSTRAINT fk_bk_program_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_bk_program_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_bk_program_owner FOREIGN KEY(owner_user_id) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_operational_plans (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  program_id BIGINT UNSIGNED NOT NULL,
  bk_field VARCHAR(50) NOT NULL,
  service_component VARCHAR(60) NOT NULL,
  strategy VARCHAR(120) NOT NULL,
  target_scope VARCHAR(300) NOT NULL,
  executor_name VARCHAR(200) NOT NULL,
  scheduled_date DATE NULL,
  start_time TIME NULL,
  duration_minutes INT NULL,
  location VARCHAR(150) NULL,
  theme VARCHAR(300) NOT NULL,
  objective TEXT NOT NULL,
  material TEXT NULL,
  method VARCHAR(500) NULL,
  media VARCHAR(500) NULL,
  evaluation_plan TEXT NULL,
  status ENUM('draft','scheduled','completed','cancelled') NOT NULL DEFAULT 'draft',
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY idx_bk_operational_program(program_id,scheduled_date),
  CONSTRAINT fk_bk_operational_program FOREIGN KEY(program_id) REFERENCES bk_programs(id) ON DELETE CASCADE,
  CONSTRAINT fk_bk_operational_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_rplbk (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  operational_plan_id BIGINT UNSIGNED NOT NULL,
  template_code VARCHAR(80) NULL,
  template_version VARCHAR(40) NULL,
  title VARCHAR(300) NOT NULL,
  objective TEXT NOT NULL,
  material TEXT NULL,
  method VARCHAR(500) NULL,
  media VARCHAR(500) NULL,
  opening_steps TEXT NULL,
  core_steps MEDIUMTEXT NOT NULL,
  closing_steps TEXT NULL,
  process_evaluation TEXT NOT NULL,
  result_evaluation TEXT NOT NULL,
  followup_plan TEXT NULL,
  status ENUM('draft','approved','used','revised') NOT NULL DEFAULT 'draft',
  created_by BIGINT UNSIGNED NOT NULL,
  approved_by BIGINT UNSIGNED NULL,
  approved_at DATETIME NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY idx_bk_rplbk_operational(operational_plan_id,status),
  CONSTRAINT fk_bk_rplbk_operational FOREIGN KEY(operational_plan_id) REFERENCES bk_operational_plans(id) ON DELETE CASCADE,
  CONSTRAINT fk_bk_rplbk_creator FOREIGN KEY(created_by) REFERENCES users(id),
  CONSTRAINT fk_bk_rplbk_approver FOREIGN KEY(approved_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_service_executions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  rplbk_id BIGINT UNSIGNED NOT NULL,
  execution_date DATE NOT NULL,
  attendance_count INT NOT NULL DEFAULT 0,
  participant_summary VARCHAR(500) NULL,
  process_note TEXT NULL,
  status ENUM('planned','completed','cancelled') NOT NULL DEFAULT 'completed',
  recorded_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_bk_execution_rplbk(rplbk_id,execution_date),
  CONSTRAINT fk_bk_execution_rplbk FOREIGN KEY(rplbk_id) REFERENCES bk_rplbk(id) ON DELETE CASCADE,
  CONSTRAINT fk_bk_execution_recorder FOREIGN KEY(recorded_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_program_evaluations (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  execution_id BIGINT UNSIGNED NOT NULL,
  process_result TEXT NOT NULL,
  outcome_result TEXT NOT NULL,
  obstacles TEXT NULL,
  solution_taken TEXT NULL,
  decision_code ENUM('complete','monitor','continue','revise','responsive','coordinate','refer') NOT NULL DEFAULT 'monitor',
  note TEXT NULL,
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_bk_eval_execution(execution_id,created_at),
  CONSTRAINT fk_bk_eval_execution FOREIGN KEY(execution_id) REFERENCES bk_service_executions(id) ON DELETE CASCADE,
  CONSTRAINT fk_bk_eval_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_program_followups (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  evaluation_id BIGINT UNSIGNED NOT NULL,
  action_code ENUM('complete','monitor','continue','revise','responsive','coordinate','refer') NOT NULL DEFAULT 'monitor',
  due_date DATE NULL,
  note TEXT NOT NULL,
  status ENUM('planned','active','done','cancelled') NOT NULL DEFAULT 'planned',
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY idx_bk_program_followup(evaluation_id,due_date,status),
  CONSTRAINT fk_bk_program_followup_eval FOREIGN KEY(evaluation_id) REFERENCES bk_program_evaluations(id) ON DELETE CASCADE,
  CONSTRAINT fk_bk_program_followup_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS regulatory_source_artifacts (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  source_id BIGINT UNSIGNED NOT NULL,
  artifact_code VARCHAR(100) NOT NULL,
  file_name VARCHAR(255) NOT NULL,
  sha256 CHAR(64) NOT NULL,
  file_bytes BIGINT UNSIGNED NOT NULL,
  page_count INT UNSIGNED NOT NULL,
  provenance_type ENUM('official_download','public_mirror','user_provided_controlled_copy','controlled_copy') NOT NULL DEFAULT 'controlled_copy',
  provenance_url VARCHAR(1000) NULL,
  identity_status ENUM('verified','review_required') NOT NULL DEFAULT 'review_required',
  legal_currency_status VARCHAR(80) NOT NULL DEFAULT 'not_applicable',
  retrieved_on DATE NULL,
  verified_on DATE NOT NULL,
  is_primary TINYINT(1) NOT NULL DEFAULT 1,
  notes TEXT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  UNIQUE KEY uq_reg_artifact(source_id,artifact_code),
  KEY idx_reg_artifact_hash(sha256),
  CONSTRAINT fk_reg_art_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS regulatory_requirement_traces (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  requirement_code VARCHAR(100) NOT NULL UNIQUE,
  profile_code VARCHAR(20) NULL CHECK (profile_code IS NULL OR profile_code='SMP_MTS'),
  institution_context ENUM('all','school','madrasah') NOT NULL DEFAULT 'all',
  source_id BIGINT UNSIGNED NOT NULL,
  artifact_id BIGINT UNSIGNED NULL,
  locator_label VARCHAR(255) NOT NULL,
  pdf_page_start INT UNSIGNED NULL,
  pdf_page_end INT UNSIGNED NULL,
  binding_class ENUM('mandatory','official_guidance','professional_guidance','example_template','operational_control') NOT NULL,
  requirement_text TEXT NOT NULL,
  runtime_object VARCHAR(190) NOT NULL,
  role_action VARCHAR(500) NULL,
  output_evidence VARCHAR(500) NULL,
  test_case_code VARCHAR(120) NULL,
  verification_status ENUM('mapped','implemented','verified','blocked_external') NOT NULL DEFAULT 'mapped',
  active TINYINT(1) NOT NULL DEFAULT 1,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_rrt_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_rrt_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE CASCADE,
  CONSTRAINT fk_rrt_artifact FOREIGN KEY(artifact_id) REFERENCES regulatory_source_artifacts(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS guidance_document_templates (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('all','school','madrasah') NOT NULL DEFAULT 'school',
  source_id BIGINT UNSIGNED NOT NULL,
  artifact_id BIGINT UNSIGNED NULL,
  appendix_no INT UNSIGNED NOT NULL,
  template_code VARCHAR(100) NOT NULL,
  title VARCHAR(500) NOT NULL,
  pdf_page_start INT UNSIGNED NOT NULL,
  pdf_page_end INT UNSIGNED NOT NULL,
  template_nature ENUM('non_binding_example','official_guidance','mandatory_form','product_output') NOT NULL DEFAULT 'non_binding_example',
  usage_scope VARCHAR(500) NULL,
  source_excerpt_hash CHAR(64) NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_guidance_template(profile_code,institution_context,source_id,appendix_no),
  CONSTRAINT fk_gdt_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_gdt_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE CASCADE,
  CONSTRAINT fk_gdt_artifact FOREIGN KEY(artifact_id) REFERENCES regulatory_source_artifacts(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS report_guidance_traces (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('all','school','madrasah') NOT NULL DEFAULT 'all',
  report_code VARCHAR(60) NOT NULL,
  source_id BIGINT UNSIGNED NOT NULL,
  artifact_id BIGINT UNSIGNED NULL,
  locator_label VARCHAR(255) NOT NULL,
  pdf_page_start INT UNSIGNED NULL,
  pdf_page_end INT UNSIGNED NULL,
  requirement_class ENUM('mandatory','official_guidance','professional_guidance','example_template','product_output') NOT NULL,
  structure_json JSON NULL,
  note VARCHAR(1000) NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_report_trace(profile_code,institution_context,report_code,source_id,locator_label),
  CONSTRAINT fk_rgt_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_rgt_source FOREIGN KEY(source_id) REFERENCES regulatory_sources(id) ON DELETE CASCADE,
  CONSTRAINT fk_rgt_artifact FOREIGN KEY(artifact_id) REFERENCES regulatory_source_artifacts(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_domain_catalog (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(40) NOT NULL,
  label VARCHAR(80) NOT NULL,
  source_ref VARCHAR(190) NOT NULL,
  master_version VARCHAR(40) NOT NULL DEFAULT '2026.09',
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  PRIMARY KEY(profile_code,code),
  CONSTRAINT fk_bk_domain_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_component_catalog (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  code VARCHAR(60) NOT NULL,
  label VARCHAR(120) NOT NULL,
  source_ref VARCHAR(190) NOT NULL,
  master_version VARCHAR(40) NOT NULL DEFAULT '2026.09',
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  PRIMARY KEY(profile_code,code),
  CONSTRAINT fk_bk_component_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_evaluation_action_catalog (
  code VARCHAR(40) PRIMARY KEY,
  label VARCHAR(120) NOT NULL,
  description_text VARCHAR(500) NULL,
  source_ref VARCHAR(190) NOT NULL,
  master_version VARCHAR(40) NOT NULL DEFAULT '2026.09',
  active TINYINT(1) NOT NULL DEFAULT 1,
  sort_order INT NOT NULL DEFAULT 100
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_followup_action_catalog (
  code VARCHAR(40) PRIMARY KEY,
  label VARCHAR(120) NOT NULL,
  description_text VARCHAR(500) NULL,
  source_ref VARCHAR(190) NOT NULL,
  master_version VARCHAR(40) NOT NULL DEFAULT '2026.09',
  requires_due_date TINYINT(1) NOT NULL DEFAULT 0,
  active TINYINT(1) NOT NULL DEFAULT 1,
  sort_order INT NOT NULL DEFAULT 100
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_rpl_template_registry (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('all','school','madrasah') NOT NULL DEFAULT 'all',
  template_code VARCHAR(80) NOT NULL,
  service_component VARCHAR(60) NOT NULL,
  title_pattern VARCHAR(300) NOT NULL,
  structure_json JSON NOT NULL,
  source_ref VARCHAR(255) NOT NULL,
  template_nature ENUM('product_standard','official_guidance','mandatory_form') NOT NULL DEFAULT 'product_standard',
  template_version VARCHAR(40) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  UNIQUE KEY uq_rpl_template(profile_code,institution_context,template_code,template_version),
  CONSTRAINT fk_rpl_template_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_workflow_registry (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  academic_year_label VARCHAR(30) NOT NULL,
  semester_label VARCHAR(20) NOT NULL,
  object_type ENUM('program','operational','rplbk','execution','evaluation','followup','monitoring') NOT NULL,
  object_id BIGINT UNSIGNED NOT NULL,
  parent_type VARCHAR(40) NULL,
  parent_id BIGINT UNSIGNED NULL,
  state_code VARCHAR(50) NOT NULL,
  source_version VARCHAR(40) NOT NULL DEFAULT '2.9.0-RC',
  synthetic_only TINYINT(1) NOT NULL DEFAULT 0,
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uq_bk_workflow_object(school_id,profile_code,object_type,object_id),
  KEY idx_bk_workflow_tenant(school_id,profile_code,academic_year_label,semester_label,state_code),
  KEY idx_bk_workflow_parent(parent_type,parent_id),
  CONSTRAINT fk_bkw_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_bkw_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_bkw_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_followup_monitoring (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  followup_id BIGINT UNSIGNED NOT NULL,
  scheduled_date DATE NULL,
  monitoring_date DATE NOT NULL,
  evidence_review_json JSON NULL,
  findings TEXT NOT NULL,
  outcome_code ENUM('improved','stable','needs_more_support','escalate','closed') NOT NULL,
  decision_code ENUM('close','continue','escalate') NOT NULL,
  next_step TEXT NULL,
  status ENUM('completed','closed') NOT NULL DEFAULT 'completed',
  synthetic_only TINYINT(1) NOT NULL DEFAULT 0,
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_bk_followup_monitor_school(school_id,profile_code,monitoring_date),
  KEY idx_bk_followup_monitor_parent(followup_id,created_at),
  CONSTRAINT fk_bkfm_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_bkfm_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_bkfm_followup FOREIGN KEY(followup_id) REFERENCES bk_program_followups(id) ON DELETE CASCADE,
  CONSTRAINT fk_bkfm_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS student_followup_monitoring_logs (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  student_id BIGINT UNSIGNED NOT NULL,
  followup_id BIGINT UNSIGNED NOT NULL,
  monitoring_date DATE NOT NULL,
  evidence_summary TEXT NULL,
  findings TEXT NOT NULL,
  outcome_code ENUM('improved','stable','needs_more_support','escalate','closed') NOT NULL,
  decision_code ENUM('close','continue','escalate') NOT NULL,
  next_action TEXT NULL,
  synthetic_only TINYINT(1) NOT NULL DEFAULT 0,
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_sfm_scope(school_id,student_id,monitoring_date),
  KEY idx_sfm_followup(followup_id,created_at),
  CONSTRAINT fk_sfm_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_sfm_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_sfm_followup FOREIGN KEY(followup_id) REFERENCES followups(id) ON DELETE CASCADE,
  CONSTRAINT fk_sfm_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bsan_domain_catalog (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('school','madrasah') NOT NULL,
  code VARCHAR(60) NOT NULL,
  label VARCHAR(190) NOT NULL,
  source_ref VARCHAR(255) NOT NULL,
  binding_class ENUM('binding','official_program','product_framework_pending_crosswalk') NOT NULL,
  master_version VARCHAR(40) NOT NULL DEFAULT '2026.09',
  active TINYINT(1) NOT NULL DEFAULT 1,
  sort_order INT NOT NULL DEFAULT 100,
  PRIMARY KEY(profile_code,institution_context,code),
  CONSTRAINT fk_bsan_domain_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bsan_evidence_type_catalog (
  code VARCHAR(60) PRIMARY KEY,
  label VARCHAR(160) NOT NULL,
  data_class ENUM('operational','student_restricted','sensitive_bk','confidential') NOT NULL DEFAULT 'operational',
  description_text VARCHAR(600) NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  sort_order INT NOT NULL DEFAULT 100
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bsan_findings (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('school','madrasah') NOT NULL,
  domain_code VARCHAR(60) NOT NULL,
  evidence_type_code VARCHAR(60) NOT NULL,
  period_label VARCHAR(80) NOT NULL,
  title VARCHAR(250) NOT NULL,
  evidence_summary TEXT NOT NULL,
  location_note VARCHAR(250) NULL,
  verification_status ENUM('unverified','verified','not_supported','closed') NOT NULL DEFAULT 'unverified',
  privacy_class ENUM('operational','student_restricted','sensitive_bk','confidential') NOT NULL DEFAULT 'operational',
  synthetic_only TINYINT(1) NOT NULL DEFAULT 0,
  created_by BIGINT UNSIGNED NOT NULL,
  verified_by BIGINT UNSIGNED NULL,
  verified_at DATETIME NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY idx_bsan_finding_scope(school_id,profile_code,institution_context,verification_status),
  KEY idx_bsan_finding_domain(domain_code,period_label),
  CONSTRAINT fk_bsan_finding_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_bsan_finding_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_bsan_finding_evidence FOREIGN KEY(evidence_type_code) REFERENCES bsan_evidence_type_catalog(code),
  CONSTRAINT fk_bsan_finding_creator FOREIGN KEY(created_by) REFERENCES users(id),
  CONSTRAINT fk_bsan_finding_verifier FOREIGN KEY(verified_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bsan_actions (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  finding_id BIGINT UNSIGNED NOT NULL,
  action_text TEXT NOT NULL,
  owner_label VARCHAR(190) NOT NULL,
  due_date DATE NULL,
  status ENUM('planned','active','done','cancelled') NOT NULL DEFAULT 'planned',
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  KEY idx_bsan_action_scope(school_id,profile_code,status,due_date),
  CONSTRAINT fk_bsan_action_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_bsan_action_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_bsan_action_finding FOREIGN KEY(finding_id) REFERENCES bsan_findings(id) ON DELETE CASCADE,
  CONSTRAINT fk_bsan_action_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bsan_monitoring (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  action_id BIGINT UNSIGNED NOT NULL,
  monitoring_date DATE NOT NULL,
  result_text TEXT NOT NULL,
  outcome_code ENUM('resolved','improved','unchanged','needs_escalation') NOT NULL,
  next_step TEXT NULL,
  created_by BIGINT UNSIGNED NOT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY idx_bsan_monitor_scope(school_id,profile_code,monitoring_date),
  CONSTRAINT fk_bsan_monitor_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_bsan_monitor_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_bsan_monitor_action FOREIGN KEY(action_id) REFERENCES bsan_actions(id) ON DELETE CASCADE,
  CONSTRAINT fk_bsan_monitor_creator FOREIGN KEY(created_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS data_classification_registry (
  data_code VARCHAR(80) PRIMARY KEY,
  label VARCHAR(160) NOT NULL,
  class_level TINYINT UNSIGNED NOT NULL,
  class_code ENUM('public','operational','student_restricted','sensitive_bk','confidential') NOT NULL,
  description_text VARCHAR(600) NOT NULL,
  source_ref VARCHAR(255) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS role_data_access (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  role_code VARCHAR(50) NOT NULL,
  data_code VARCHAR(80) NOT NULL,
  access_mode ENUM('none','aggregate','scoped','full') NOT NULL DEFAULT 'none',
  source_ref VARCHAR(255) NOT NULL,
  PRIMARY KEY(profile_code,role_code,data_code),
  CONSTRAINT fk_rda_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code) ON DELETE CASCADE,
  CONSTRAINT fk_rda_data FOREIGN KEY(data_code) REFERENCES data_classification_registry(data_code) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
ALTER TABLE report_definitions
  ADD COLUMN IF NOT EXISTS structure_json JSON NULL,
  ADD COLUMN IF NOT EXISTS source_ref VARCHAR(255) NULL,
  ADD COLUMN IF NOT EXISTS immutable_after_publish TINYINT(1) NOT NULL DEFAULT 1;
CREATE TABLE IF NOT EXISTS published_reports (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  report_code VARCHAR(60) NOT NULL,
  academic_year_label VARCHAR(30) NOT NULL,
  semester_label VARCHAR(20) NOT NULL,
  template_version VARCHAR(40) NOT NULL,
  regulatory_version VARCHAR(120) NOT NULL,
  data_snapshot_json LONGTEXT NOT NULL,
  snapshot_sha256 CHAR(64) NOT NULL,
  generated_by BIGINT UNSIGNED NOT NULL,
  approved_by BIGINT UNSIGNED NULL,
  generated_at DATETIME NOT NULL,
  approved_at DATETIME NULL,
  publication_status ENUM('draft','published') NOT NULL DEFAULT 'published',
  UNIQUE KEY uq_published_report_snapshot(school_id,report_code,academic_year_label,semester_label,snapshot_sha256),
  KEY idx_published_report_scope(school_id,profile_code,report_code,generated_at),
  CONSTRAINT fk_pr_school FOREIGN KEY(school_id) REFERENCES schools(id) ON DELETE CASCADE,
  CONSTRAINT fk_pr_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code),
  CONSTRAINT fk_pr_generator FOREIGN KEY(generated_by) REFERENCES users(id),
  CONSTRAINT fk_pr_approver FOREIGN KEY(approved_by) REFERENCES users(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS bk_workflow_transition_catalog (
  object_type VARCHAR(40) NOT NULL,
  from_state VARCHAR(50) NOT NULL,
  to_state VARCHAR(50) NOT NULL,
  label VARCHAR(160) NOT NULL,
  source_ref VARCHAR(255) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  PRIMARY KEY(object_type,from_state,to_state)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
ALTER TABLE bk_rplbk
  ADD COLUMN IF NOT EXISTS template_code VARCHAR(80) NULL AFTER operational_plan_id,
  ADD COLUMN IF NOT EXISTS template_version VARCHAR(40) NULL AFTER template_code;
CREATE TABLE IF NOT EXISTS regulatory_report_templates (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  institution_context ENUM('school','madrasah') NOT NULL,
  code VARCHAR(80) NOT NULL,
  title VARCHAR(255) NOT NULL,
  short_title VARCHAR(120) NULL,
  authority_class VARCHAR(64) NOT NULL,
  authority_label VARCHAR(190) NOT NULL,
  frequency_label VARCHAR(190) NOT NULL,
  recipient_label TEXT NOT NULL,
  privacy_class VARCHAR(8) NOT NULL DEFAULT 'B',
  roles_json JSON NOT NULL,
  source_code VARCHAR(80) NOT NULL,
  source_locator VARCHAR(255) NOT NULL,
  format_status VARCHAR(80) NOT NULL,
  format_source_code VARCHAR(80) NULL,
  format_source_locator VARCHAR(255) NULL,
  default_template_code VARCHAR(100) NULL,
  template_structure_json JSON NULL,
  template_version VARCHAR(32) NOT NULL,
  sort_order INT NOT NULL DEFAULT 100,
  active TINYINT(1) NOT NULL DEFAULT 1,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uq_reg_report_template(profile_code,institution_context,code,template_version),
  KEY idx_reg_report_active(profile_code,institution_context,active,sort_order),
  CONSTRAINT fk_reg_report_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS report_deprecations (
  profile_code VARCHAR(20) NOT NULL CHECK (profile_code='SMP_MTS'),
  legacy_code VARCHAR(80) NOT NULL,
  disposition VARCHAR(50) NOT NULL,
  replacement_code VARCHAR(160) NULL,
  reason TEXT NOT NULL,
  deprecated_at DATE NOT NULL,
  PRIMARY KEY(profile_code,legacy_code),
  CONSTRAINT fk_report_deprecation_profile FOREIGN KEY(profile_code) REFERENCES school_level_profiles(code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS ai_student_analyses (
  id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  school_id BIGINT UNSIGNED NOT NULL,
  student_id BIGINT UNSIGNED NOT NULL,
  requested_by BIGINT UNSIGNED NOT NULL,
  status ENUM('completed','rejected','failed') NOT NULL DEFAULT 'completed',
  model VARCHAR(80) NOT NULL,
  prompt_version VARCHAR(80) NOT NULL,
  context_sha256 CHAR(64) NOT NULL,
  evidence_snapshot_json JSON NOT NULL,
  result_json JSON NOT NULL,
  response_id VARCHAR(120) NULL,
  input_tokens INT UNSIGNED NOT NULL DEFAULT 0,
  output_tokens INT UNSIGNED NOT NULL DEFAULT 0,
  total_tokens INT UNSIGNED NOT NULL DEFAULT 0,
  created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY idx_ai_student_latest(school_id,student_id,status,created_at),
  KEY idx_ai_context(student_id,context_sha256),
  CONSTRAINT fk_ai_student_school FOREIGN KEY(school_id) REFERENCES schools(id),
  CONSTRAINT fk_ai_student_student FOREIGN KEY(student_id) REFERENCES students(id) ON DELETE CASCADE,
  CONSTRAINT fk_ai_student_requester FOREIGN KEY(requested_by) REFERENCES users(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO school_level_profiles(code,label,allowed_levels_json,active) VALUES('SMP_MTS','SMP/MTs','["VII","VIII","IX"]',1) ON DUPLICATE KEY UPDATE label=VALUES(label),allowed_levels_json=VALUES(allowed_levels_json),active=1;
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('aggregate.read','Aggregate Read','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('assessment.respond','Assessment Respond','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('counseling.confidential.read','Counseling Confidential Read','D') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('import.manage','Import Manage','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.assessment','Page Assessment','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.dashboard','Page Dashboard','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.help','Page Help','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.import','Page Import','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.interventions','Page Interventions','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.monitoring','Page Monitoring','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.ocr','Page Ocr','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.planning','Page Planning','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.pulse','Page Pulse','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.referrals','Page Referrals','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.reports','Page Reports','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.settings','Page Settings','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.students','Page Students','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.vocational','Page Vocational','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.wellbeing','Page Wellbeing','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('planning.edit','Planning Edit','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('planning.review','Planning Review','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('referral.create','Referral Create','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('referral.triage','Referral Triage','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('report.export.identifiable','Report Export Identifiable','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('service.manage','Service Manage','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('student.identifiable.read','Student Identifiable Read','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('vocational.review','Vocational Review','C') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO roles(profile_code,code,label,scope,is_active) VALUES('SMP_MTS','student','Siswa','self',1) ON DUPLICATE KEY UPDATE label=VALUES(label),scope=VALUES(scope),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.assessment' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.pulse' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.planning' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.reports' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.help' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='assessment.respond' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='planning.edit' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT INTO roles(profile_code,code,label,scope,is_active) VALUES('SMP_MTS','parent','Orang Tua / Wali','linked_student',1) ON DUPLICATE KEY UPDATE label=VALUES(label),scope=VALUES(scope),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.planning' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.reports' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.help' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT INTO roles(profile_code,code,label,scope,is_active) VALUES('SMP_MTS','counselor','Guru BK / Konselor','school',1) ON DUPLICATE KEY UPDATE label=VALUES(label),scope=VALUES(scope),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.students' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.assessment' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.referrals' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.interventions' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.planning' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.wellbeing' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.reports' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.help' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='student.identifiable.read' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='counseling.confidential.read' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='referral.create' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='referral.triage' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='aggregate.read' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='planning.review' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='service.manage' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='planning.edit' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='report.export.identifiable' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT INTO roles(profile_code,code,label,scope,is_active) VALUES('SMP_MTS','homeroom','Wali Kelas','class',1) ON DUPLICATE KEY UPDATE label=VALUES(label),scope=VALUES(scope),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.students' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.referrals' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.planning' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.help' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='student.identifiable.read' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='referral.create' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT INTO roles(profile_code,code,label,scope,is_active) VALUES('SMP_MTS','principal','Kepala Sekolah','aggregate',1) ON DUPLICATE KEY UPDATE label=VALUES(label),scope=VALUES(scope),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.wellbeing' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.reports' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.help' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='aggregate.read' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT INTO roles(profile_code,code,label,scope,is_active) VALUES('SMP_MTS','administrator','Administrator Sekolah','school',1) ON DUPLICATE KEY UPDATE label=VALUES(label),scope=VALUES(scope),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.students' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.assessment' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.import' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.ocr' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.reports' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.settings' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.help' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='student.identifiable.read' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='import.manage' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='report.export.identifiable' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT INTO roles(profile_code,code,label,scope,is_active) VALUES('SMP_MTS','superadmin','Super Admin EXOLINK','platform',1) ON DUPLICATE KEY UPDATE label=VALUES(label),scope=VALUES(scope),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.reports' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.settings' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.help' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT IGNORE INTO role_permissions(role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='aggregate.read' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','dashboard','dashboard','Beranda','home',10,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,10 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,10 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,10 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,10 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,10 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,10 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,10 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='dashboard' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','students','students','Siswa','users',20,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,20 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='students' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,20 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='students' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,20 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='students' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','assessment','assessment','Asesmen & Kebutuhan','clipboard',30,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,30 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='assessment' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,30 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='assessment' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,30 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='assessment' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','pulse','pulse','Kabar Saya','heart',40,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,40 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='pulse' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','referrals','referrals','Rujukan ke BK','flag',50,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,50 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='referrals' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,50 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='referrals' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','monitoring','monitoring','Monitoring','pulse',60,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,60 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,60 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,60 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,60 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,60 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='monitoring' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','interventions','interventions','Layanan & Tindak Lanjut','briefcase',70,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,70 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='interventions' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','planning','planning','Rencana Belajar & Masa Depan','target',80,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,80 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='planning' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,80 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='planning' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,80 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='planning' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,80 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='planning' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','wellbeing','wellbeing','Sekolah Aman & Nyaman','shield',90,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,90 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='wellbeing' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,90 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='wellbeing' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','data_import','data_import','Import Data','upload',100,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,100 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='data_import' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','ocr','ocr','Baca Dokumen (OCR)','clipboard',110,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,110 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='ocr' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','reports','reports','Laporan','chart',120,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,120 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='reports' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,120 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='reports' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,120 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='reports' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,120 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='reports' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,120 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='reports' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,120 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='reports' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','settings','settings','Administrasi','settings',130,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,130 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='settings' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,130 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='settings' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active) VALUES('SMP_MTS','help','help','Bantuan','help',140,1) ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,140 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='help' WHERE r.profile_code='SMP_MTS' AND r.code='student';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,140 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='help' WHERE r.profile_code='SMP_MTS' AND r.code='parent';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,140 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='help' WHERE r.profile_code='SMP_MTS' AND r.code='counselor';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,140 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='help' WHERE r.profile_code='SMP_MTS' AND r.code='homeroom';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,140 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='help' WHERE r.profile_code='SMP_MTS' AND r.code='principal';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,140 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='help' WHERE r.profile_code='SMP_MTS' AND r.code='administrator';
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order) SELECT r.id,n.id,140 FROM roles r JOIN navigation_items n ON n.profile_code='SMP_MTS' AND n.code='help' WHERE r.profile_code='SMP_MTS' AND r.code='superadmin';
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A01','Landasan Hidup Religius','Nilai & Makna Hidup','Pribadi','Memahami nilai/keyakinan dan menghormati perbedaan tanpa pemaksaan.',1,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A02','Landasan Perilaku Etis','Pilihan yang Bertanggung Jawab','Pribadi/Sosial','Mengambil keputusan etis, jujur, bertanggung jawab, dan mempertimbangkan dampaknya.',2,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A03','Kematangan Emosi','Mengelola Emosi','Pribadi/Sosial','Mengenali, mengekspresikan, dan mengelola emosi serta mencari bantuan secara tepat.',3,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A04','Kematangan Intelektual','Belajar & Mengambil Keputusan','Belajar/Pribadi','Menggunakan informasi, penalaran, perencanaan, dan strategi belajar untuk membuat keputusan.',4,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A05','Kesadaran Tanggung Jawab Sosial','Tanggung Jawab Sosial','Sosial','Menjalankan hak-kewajiban, berkontribusi, dan bertanggung jawab terhadap dampak tindakan.',5,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A06','Kesadaran Gender','Kesetaraan & Saling Menghargai','Sosial/Pribadi','Menghargai kesetaraan, kesempatan, dan kemampuan tanpa stereotip gender.',6,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A07','Pengembangan Pribadi','Mengembangkan Diri','Pribadi','Mengenali kekuatan, keterbatasan, tujuan, umpan balik, dan langkah pengembangan diri.',7,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A08','Kemandirian Perilaku Ekonomis','Mandiri & Bertanggung Jawab','Pribadi/Karier','Mengelola sumber daya, prioritas, ketekunan, dan tanggung jawab ekonomis sesuai usia.',8,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A09','Wawasan dan Kesiapan Karier','Arah Pendidikan & Karier','Karier','Mengeksplorasi pendidikan lanjutan dan arah karier secara bertahap berbasis informasi.',9,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO skkpd_aspects(profile_code,code,canonical_name,student_label,bk_domain,description,sort_order,active) VALUES('SMP_MTS','A10','Kematangan Hubungan Teman Sebaya','Relasi Teman Sebaya','Sosial','Membangun relasi sehat, komunikasi, batas pribadi, kerja sama, dan penyelesaian konflik.',10,1) ON DUPLICATE KEY UPDATE canonical_name=VALUES(canonical_name),student_label=VALUES(student_label),bk_domain=VALUES(bk_domain),description=VALUES(description),sort_order=VALUES(sort_order),active=1;
INSERT INTO assessment_banks(bank_code,name,profile_code,intended_use,prohibited_use) VALUES('EXOLINK-SMP-SKKPD','EXOLINK SMP/MTs Assessment Bank','SMP_MTS','Evidence perkembangan dan kebutuhan layanan BK; decision support untuk human review.','Bukan diagnosis, ranking, hukuman, seleksi, atau penempatan otomatis.') ON DUPLICATE KEY UPDATE name=VALUES(name),profile_code=VALUES(profile_code),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use);
INSERT INTO assessment_bank_versions(bank_id,bank_version,route_version,scoring_version,evidence_status,content_hash,is_active,effective_from) SELECT id,'0.3.0-RC','1.0.0','1.0.0','prevalidation','04222058a53641012ed003d3f4310b9effc9d010a148e59b822030596298dd61',1,NOW() FROM assessment_banks WHERE bank_code='EXOLINK-SMP-SKKPD' ON DUPLICATE KEY UPDATE route_version=VALUES(route_version),scoring_version=VALUES(scoring_version),evidence_status=VALUES(evidence_status),content_hash=VALUES(content_hash),is_active=1;
INSERT INTO assessment_modules(bank_version_id,module_code,name,description,mandatory_by_default,expected_minutes,sort_order) SELECT v.id,'BASELINE','Pengisian Perkembangan Saya','60 butir: 10 aspek × Pengenalan/Akomodasi/Tindakan × 2 butir.',1,25,10 FROM assessment_bank_versions v JOIN assessment_banks b0 ON b0.id=v.bank_id WHERE b0.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE name=VALUES(name),description=VALUES(description),mandatory_by_default=VALUES(mandatory_by_default),expected_minutes=VALUES(expected_minutes),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A01-P-01','SMP_MTS','VII,VIII,IX','A01','a01','Pribadi','P','mcq','Mengapa seseorang perlu memahami makna ibadah yang dijalankannya?','Nilai & Makna Hidup','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',1,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Agar dapat menjalankannya dengan sadar sesuai keyakinan',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Agar terlihat lebih baik dari orang lain',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Agar tidak perlu bertanya lagi',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Agar semua orang melakukan hal yang sama',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A01-P-02','SMP_MTS','VII,VIII,IX','A01','a01','Pribadi','P','mcq','Sikap yang menunjukkan pemahaman terhadap perbedaan cara beribadah adalah...','Nilai & Makna Hidup','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',2,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Memaksa teman mengikuti cara kita',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menghormati pelaksanaan ibadah sesuai keyakinan masing-masing',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menilai keyakinan teman dari penampilan',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menghindari semua teman yang berbeda',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A02-P-01','SMP_MTS','VII,VIII,IX','A02','a02','Pribadi/Sosial','P','mcq','Apa alasan utama aturan sekolah perlu dipatuhi?','Pilihan yang Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',3,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Supaya tidak pernah berbeda pendapat',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Supaya semua siswa takut',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Untuk menjaga hak, keselamatan, dan keteraturan bersama',1,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Karena aturan tidak boleh ditanyakan',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A02-P-02','SMP_MTS','VII,VIII,IX','A02','a02','Pribadi/Sosial','P','mcq','Ketika aturan terasa kurang jelas, tindakan etis adalah...','Pilihan yang Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',4,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Melanggarnya diam-diam',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengajak teman menolak semua aturan',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menyebarkan tuduhan tanpa informasi',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Meminta penjelasan dengan sopan dan tetap mempertimbangkan keselamatan',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A03-P-01','SMP_MTS','VII,VIII,IX','A03','a03','Pribadi/Sosial','P','mcq','Saat marah, cara mengekspresikan perasaan yang wajar adalah...','Mengelola Emosi','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',5,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Menyebut perasaan dan menyampaikan kebutuhan tanpa menyakiti',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Membanting barang',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menyimpan semua perasaan selamanya',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menyebarkan masalah di media sosial',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A03-P-02','SMP_MTS','VII,VIII,IX','A03','a03','Pribadi/Sosial','P','mcq','Memahami perasaan orang lain berarti...','Mengelola Emosi','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',6,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Selalu menyetujui semua tindakannya',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengenali kemungkinan perasaannya tanpa langsung menghakimi',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menebak lalu menyebarkannya',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Mengabaikan perasaan sendiri',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A04-P-01','SMP_MTS','VII,VIII,IX','A04','a04','Belajar/Pribadi','P','mcq','Sebelum mengambil keputusan penting, langkah yang paling lengkap adalah...','Belajar & Mengambil Keputusan','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',7,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Memilih yang paling cepat',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengikuti pilihan teman',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Membandingkan pilihan, informasi, manfaat, dan risiko',1,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menunda tanpa batas',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A04-P-02','SMP_MTS','VII,VIII,IX','A04','a04','Belajar/Pribadi','P','mcq','Jika informasi untuk mengambil keputusan belum cukup, sebaiknya...','Belajar & Mengambil Keputusan','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',8,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Memilih berdasarkan rumor',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengikuti pilihan terbanyak tanpa berpikir',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Tidak pernah memutuskan',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Mencari informasi tambahan dari sumber yang dapat dipercaya',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A05-P-01','SMP_MTS','VII,VIII,IX','A05','a05','Sosial','P','mcq','Hubungan antara hak dan kewajiban di sekolah adalah...','Tanggung Jawab Sosial','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',9,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Keduanya perlu dijalankan secara seimbang dan saling menghormati',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Hak boleh dituntut tanpa kewajiban',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Kewajiban hanya milik guru',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Hak ditentukan oleh popularitas',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A05-P-02','SMP_MTS','VII,VIII,IX','A05','a05','Sosial','P','mcq','Tanggung jawab sosial dalam kelas tampak ketika siswa...','Tanggung Jawab Sosial','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',10,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Hanya memikirkan nilainya sendiri',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menjalankan tugas dan mempertimbangkan dampaknya bagi orang lain',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menyerahkan semua tugas kepada ketua',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Membantu hanya jika mendapat hadiah',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A06-P-01','SMP_MTS','VII,VIII,IX','A06','a06','Sosial/Pribadi','P','mcq','Pembagian tugas yang adil sebaiknya terutama didasarkan pada...','Kesetaraan & Saling Menghargai','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',11,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Jenis kelamin',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Kebiasaan lama saja',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Kemampuan, kebutuhan, dan kesepakatan',1,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Siapa yang paling berkuasa',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A06-P-02','SMP_MTS','VII,VIII,IX','A06','a06','Sosial/Pribadi','P','mcq','Pernyataan yang paling tepat tentang kemampuan siswa adalah...','Kesetaraan & Saling Menghargai','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',12,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Kemampuan ditentukan oleh gender',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Tugas pemimpin hanya cocok untuk gender tertentu',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Minat tidak perlu dipertimbangkan',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Setiap siswa dapat mengembangkan kemampuan tanpa dibatasi stereotip gender',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A07-P-01','SMP_MTS','VII,VIII,IX','A07','a07','Pribadi','P','mcq','Sikap sehat terhadap kekurangan diri adalah...','Mengembangkan Diri','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',13,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Menerima keadaan sambil memilih hal yang dapat dikembangkan',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menganggap diri tidak mampu',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menutupi dengan merendahkan orang lain',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Berhenti mencoba',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A07-P-02','SMP_MTS','VII,VIII,IX','A07','a07','Pribadi','P','mcq','Cara mengenali kekuatan diri yang paling baik adalah...','Mengembangkan Diri','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',14,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Membandingkan diri terus-menerus dengan orang lain',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengamati pengalaman, hasil kerja, minat, dan umpan balik',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Memilih apa yang sedang populer',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menganggap satu kegagalan menentukan semuanya',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A08-P-01','SMP_MTS','VII,VIII,IX','A08','a08','Pribadi/Karier','P','mcq','Perilaku hemat berarti...','Mandiri & Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',15,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Tidak pernah menggunakan uang',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Selalu membeli yang termurah tanpa melihat kebutuhan',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menggunakan uang dan barang sesuai kebutuhan serta rencana',1,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Meminta orang lain membayar',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A08-P-02','SMP_MTS','VII,VIII,IX','A08','a08','Pribadi/Karier','P','mcq','Ketekunan berbeda dari memaksakan diri karena ketekunan...','Mandiri & Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',16,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Tidak pernah beristirahat',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengabaikan kesehatan',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Mengulang cara gagal tanpa belajar',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Tetap berusaha sambil menilai strategi dan meminta bantuan bila perlu',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A09-P-01','SMP_MTS','VII,VIII,IX','A09','a09','Karier','P','mcq','Informasi apa yang paling berguna saat mempertimbangkan pendidikan setelah SMP?','Arah Pendidikan & Karier','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',17,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Minat, kemampuan, persyaratan, biaya, dan alternatif',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Pilihan teman saja',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Sekolah yang paling sering muncul di media sosial',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Satu pekerjaan tanpa informasi lain',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A09-P-02','SMP_MTS','VII,VIII,IX','A09','a09','Karier','P','mcq','Pilihan pendidikan atau karier yang sesuai sebaiknya mempertimbangkan...','Arah Pendidikan & Karier','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',18,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Minat saja',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Minat, kemampuan, nilai pribadi, peluang, dan persyaratan',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Kemampuan saja',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Pilihan teman terdekat',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A10-P-01','SMP_MTS','VII,VIII,IX','A10','a10','Sosial','P','mcq','Batas pribadi dalam pertemanan perlu dihormati karena...','Relasi Teman Sebaya','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',19,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Semua teman harus selalu setuju',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Agar tidak perlu berkomunikasi',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Setiap orang berhak merasa aman dan menentukan kenyamanannya',1,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Hanya berlaku untuk orang dewasa',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A10-P-02','SMP_MTS','VII,VIII,IX','A10','a10','Sosial','P','mcq','Kerja sama dengan teman yang berbeda latar belakang membutuhkan...','Relasi Teman Sebaya','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',20,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Semua orang harus memiliki kebiasaan sama',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Kelompok berdasarkan kesamaan saja',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menghindari pembicaraan tentang kebutuhan anggota',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Kesediaan mendengar, menghormati perbedaan, dan menyepakati cara kerja',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-P-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A01-A-01','SMP_MTS','VII,VIII,IX','A01','a01','Pribadi','A','sjt','Kamu sedang sibuk, tetapi ingin tetap menjalankan ibadah sesuai keyakinan. Apa yang paling tepat?','Nilai & Makna Hidup','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',21,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Mengabaikannya setiap kali sibuk',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengejek cara ibadah orang lain',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Mengaku sudah melakukannya meski belum',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Mengatur waktu dan meminta arahan bila belum paham',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A01-A-02','SMP_MTS','VII,VIII,IX','A01','a01','Pribadi','A','sjt','Kegiatan sekolah bertepatan dengan waktu ibadahmu. Apa yang paling tepat?','Nilai & Makna Hidup','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',22,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Pergi tanpa memberi tahu siapa pun',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menyalahkan teman yang berbeda keyakinan',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Meminta penyesuaian secara sopan dan bertanggung jawab',3,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Tidak mengikuti semua kegiatan berikutnya',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A02-A-01','SMP_MTS','VII,VIII,IX','A02','a02','Pribadi/Sosial','A','sjt','Teman mengajak menyontek dan berkata semua orang melakukannya. Apa tindakan terbaik?','Pilihan yang Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',23,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Ikut agar tetap berteman',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menolak dan mengajak mencari cara belajar yang jujur',3,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Diam lalu memberikan jawaban',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Melaporkan dengan tujuan mempermalukannya',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A02-A-02','SMP_MTS','VII,VIII,IX','A02','a02','Pribadi/Sosial','A','sjt','Kamu menemukan barang milik teman di kelas. Apa tindakan paling bertanggung jawab?','Pilihan yang Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',24,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Menyerahkannya kepada pemilik atau petugas yang dapat dipercaya',3,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menyimpannya karena tidak ada yang melihat',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Mengunggah fotonya sambil mengejek pemilik',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Membiarkannya di tempat yang mudah hilang',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A03-A-01','SMP_MTS','VII,VIII,IX','A03','a03','Pribadi/Sosial','A','sjt','Kamu sangat kesal karena diejek. Apa respons paling membantu?','Mengelola Emosi','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',25,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Langsung membalas lebih keras',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengajak teman lain mengucilkan pelaku',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menganggap perasaanmu tidak penting',1,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Berhenti sejenak, menenangkan diri, lalu bicara atau mencari bantuan',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A03-A-02','SMP_MTS','VII,VIII,IX','A03','a03','Pribadi/Sosial','A','sjt','Teman tampak sedih tetapi belum ingin bercerita. Apa respons terbaik?','Mengelola Emosi','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',26,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Memaksanya bercerita',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menceritakannya kepada seluruh kelas',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Memberi ruang, menunjukkan kepedulian, dan menawarkan bantuan',3,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menganggapnya mencari perhatian',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A04-A-01','SMP_MTS','VII,VIII,IX','A04','a04','Belajar/Pribadi','A','sjt','Kamu harus memilih kegiatan, tetapi waktunya bertabrakan dengan belajar. Apa yang paling tepat?','Belajar & Mengambil Keputusan','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',27,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Memilih secara acak',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengecek jadwal, tujuan, dan akibat tiap pilihan lalu memutuskan',3,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Mengikuti teman meski tidak sesuai kebutuhan',1,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Mendaftar semua kegiatan dan tidak hadir',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A04-A-02','SMP_MTS','VII,VIII,IX','A04','a04','Belajar/Pribadi','A','sjt','Rencana kelompok tidak berjalan sesuai harapan. Apa langkah terbaik?','Belajar & Mengambil Keputusan','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',28,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Meninjau penyebab, membandingkan pilihan perbaikan, lalu menyepakati langkah baru',3,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mencari siapa yang dapat disalahkan',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Meninggalkan kelompok',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Mengulang cara yang sama tanpa evaluasi',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A05-A-01','SMP_MTS','VII,VIII,IX','A05','a05','Sosial','A','sjt','Dalam kerja kelompok, seorang teman belum mendapat tugas. Apa yang paling tepat?','Tanggung Jawab Sosial','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',29,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Membiarkannya agar pekerjaan cepat',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Memberinya semua pekerjaan',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Mengeluarkannya tanpa bicara',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Membagi tugas secara adil dan menyepakati tanggung jawab',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A05-A-02','SMP_MTS','VII,VIII,IX','A05','a05','Sosial','A','sjt','Teman kesulitan memahami tugas kelompok. Apa respons paling tepat?','Tanggung Jawab Sosial','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',30,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Mengambil alih tanpa menjelaskan',1,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengeluarkannya dari kelompok',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menjelaskan seperlunya dan memastikan pembagian tugas tetap adil',3,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Membicarakan kekurangannya kepada kelompok lain',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A06-A-01','SMP_MTS','VII,VIII,IX','A06','a06','Sosial/Pribadi','A','sjt','Teman berkata suatu kegiatan hanya cocok untuk gender tertentu. Apa respons terbaik?','Kesetaraan & Saling Menghargai','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',31,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Menyetujui tanpa melihat kemampuan',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Mengajak menilai minat dan kemampuan setiap orang secara setara',3,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menertawakannya',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Melarang teman itu ikut kegiatan apa pun',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A06-A-02','SMP_MTS','VII,VIII,IX','A06','a06','Sosial/Pribadi','A','sjt','Dalam pemilihan ketua kelompok, ada kandidat yang diremehkan karena gendernya. Apa yang kamu lakukan?','Kesetaraan & Saling Menghargai','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',32,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Mengajak kelompok menilai kemampuan dan kesediaan setiap kandidat',3,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Diam karena itu kebiasaan',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Ikut meremehkan agar diterima',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Memilih berdasarkan gender saja',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A07-A-01','SMP_MTS','VII,VIII,IX','A07','a07','Pribadi','A','sjt','Kamu belum mahir presentasi tetapi ingin berkembang. Apa yang paling tepat?','Mengembangkan Diri','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',33,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Menghindari semua presentasi',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menyalahkan teman',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Mengaku sudah mahir',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Berlatih bertahap dan meminta umpan balik',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A07-A-02','SMP_MTS','VII,VIII,IX','A07','a07','Pribadi','A','sjt','Kamu menerima kritik yang masuk akal tentang tugasmu. Apa respons terbaik?','Mengembangkan Diri','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',34,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Menolaknya tanpa mendengar',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Berhenti mengerjakan tugas',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Memeriksa isinya dan memakai bagian yang berguna untuk memperbaiki diri',3,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Membalas mengkritik orangnya',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A08-A-01','SMP_MTS','VII,VIII,IX','A08','a08','Pribadi/Karier','A','sjt','Kamu ingin membeli sesuatu, tetapi uang juga diperlukan untuk tugas sekolah. Apa tindakan terbaik?','Mandiri & Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',35,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Langsung membeli keinginan',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Membandingkan kebutuhan, membuat prioritas, lalu memutuskan',3,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Meminjam tanpa rencana mengembalikan',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menyembunyikan pengeluaran',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A08-A-02','SMP_MTS','VII,VIII,IX','A08','a08','Pribadi/Karier','A','sjt','Target tabunganmu terganggu karena pengeluaran mendadak yang penting. Apa tindakan terbaik?','Mandiri & Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',36,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Meninjau kembali prioritas dan menyesuaikan rencana secara realistis',3,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Berhenti merencanakan sama sekali',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Menyalahkan orang lain',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menyembunyikan kebutuhan penting',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A09-A-01','SMP_MTS','VII,VIII,IX','A09','a09','Karier','A','sjt','Kamu belum tahu pilihan setelah SMP. Langkah awal terbaik adalah...','Arah Pendidikan & Karier','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',37,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Menunggu sampai batas pendaftaran',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menyalin pilihan sahabat',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Memilih hanya karena terlihat mudah',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Mengenali minat/kemampuan lalu mencari informasi dari sumber tepercaya',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A09-A-02','SMP_MTS','VII,VIII,IX','A09','a09','Karier','A','sjt','Informasi dari media sosial tentang suatu sekolah terlihat menarik. Apa langkah terbaik?','Arah Pendidikan & Karier','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',38,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Langsung mendaftar',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menyebarkan informasi itu sebagai fakta',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Memeriksa situs resmi, bertanya kepada sumber tepercaya, dan membandingkan alternatif',3,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Menolak semua informasi daring',1,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A10-A-01','SMP_MTS','VII,VIII,IX','A10','a10','Sosial','A','sjt','Teman menolak fotonya diunggah. Apa tindakan terbaik?','Relasi Teman Sebaya','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',39,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Tetap mengunggah karena lucu',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Menghormati penolakan dan tidak mengunggah',3,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Meminta teman lain mengunggah',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Mengancam berhenti berteman',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A10-A-02','SMP_MTS','VII,VIII,IX','A10','a10','Sosial','A','sjt','Saat diskusi, pendapat teman berbeda dengan pendapatmu. Apa tindakan terbaik?','Relasi Teman Sebaya','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',40,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'A','Mendengarkan alasannya, menyampaikan pendapatmu dengan sopan, lalu mencari titik temu',3,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'B','Memotong pembicaraannya',0,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'C','Mengajak yang lain menertawakannya',0,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'D','Keluar dari kelompok',0,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-A-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A01-T-01','SMP_MTS','VII,VIII,IX','A01','a01','Pribadi','T','frequency','Saya menjalankan ibadah menurut keyakinan saya atas kemauan sendiri.','Nilai & Makna Hidup','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',41,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A01-T-02','SMP_MTS','VII,VIII,IX','A01','a01','Pribadi','T','frequency','Saya menghormati teman yang menjalankan ibadah dengan cara berbeda.','Nilai & Makna Hidup','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',42,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A01-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A02-T-01','SMP_MTS','VII,VIII,IX','A02','a02','Pribadi/Sosial','T','frequency','Saya menaati aturan yang masuk akal meskipun tidak diawasi.','Pilihan yang Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',43,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A02-T-02','SMP_MTS','VII,VIII,IX','A02','a02','Pribadi/Sosial','T','frequency','Saya menjaga kejujuran meskipun hasilnya tidak langsung menguntungkan saya.','Pilihan yang Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',44,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A02-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A03-T-01','SMP_MTS','VII,VIII,IX','A03','a03','Pribadi/Sosial','T','frequency','Saat emosi kuat, saya berusaha menenangkan diri sebelum bertindak.','Mengelola Emosi','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',45,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A03-T-02','SMP_MTS','VII,VIII,IX','A03','a03','Pribadi/Sosial','T','frequency','Saya menyampaikan rasa tidak setuju tanpa menghina atau mengancam.','Mengelola Emosi','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',46,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A03-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A04-T-01','SMP_MTS','VII,VIII,IX','A04','a04','Belajar/Pribadi','T','frequency','Saya mempertimbangkan manfaat dan risiko sebelum memilih.','Belajar & Mengambil Keputusan','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',47,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A04-T-02','SMP_MTS','VII,VIII,IX','A04','a04','Belajar/Pribadi','T','frequency','Ketika cara pertama gagal, saya mencoba alternatif yang masuk akal.','Belajar & Mengambil Keputusan','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',48,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A04-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A05-T-01','SMP_MTS','VII,VIII,IX','A05','a05','Sosial','T','frequency','Saya menuntaskan tanggung jawab kelompok yang telah disepakati.','Tanggung Jawab Sosial','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',49,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A05-T-02','SMP_MTS','VII,VIII,IX','A05','a05','Sosial','T','frequency','Saya membantu menjaga suasana kelompok agar setiap anggota dapat berpartisipasi.','Tanggung Jawab Sosial','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',50,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A05-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A06-T-01','SMP_MTS','VII,VIII,IX','A06','a06','Sosial/Pribadi','T','frequency','Saya bekerja sama dengan teman secara setara tanpa membatasi karena gender.','Kesetaraan & Saling Menghargai','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',51,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A06-T-02','SMP_MTS','VII,VIII,IX','A06','a06','Sosial/Pribadi','T','frequency','Saya menilai kemampuan teman berdasarkan usaha dan kompetensinya, bukan stereotip gender.','Kesetaraan & Saling Menghargai','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',52,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A06-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A07-T-01','SMP_MTS','VII,VIII,IX','A07','a07','Pribadi','T','frequency','Saya memilih kegiatan yang membantu mengembangkan kemampuan saya.','Mengembangkan Diri','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',53,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A07-T-02','SMP_MTS','VII,VIII,IX','A07','a07','Pribadi','T','frequency','Saya menggunakan umpan balik yang masuk akal untuk memperbaiki diri.','Mengembangkan Diri','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',54,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A07-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A08-T-01','SMP_MTS','VII,VIII,IX','A08','a08','Pribadi/Karier','T','frequency','Saya menggunakan uang atau barang sesuai kebutuhan dan prioritas.','Mandiri & Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',55,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A08-T-02','SMP_MTS','VII,VIII,IX','A08','a08','Pribadi/Karier','T','frequency','Saya menyelesaikan tugas sulit dengan usaha bertahap dan strategi yang dapat diperbaiki.','Mandiri & Bertanggung Jawab','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',56,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A08-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A09-T-01','SMP_MTS','VII,VIII,IX','A09','a09','Karier','T','frequency','Saya mencari informasi tentang beberapa pilihan pendidikan atau aktivitas setelah SMP.','Arah Pendidikan & Karier','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',57,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A09-T-02','SMP_MTS','VII,VIII,IX','A09','a09','Karier','T','frequency','Saya membandingkan persyaratan beberapa pilihan pendidikan atau aktivitas masa depan.','Arah Pendidikan & Karier','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',58,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A09-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A10-T-01','SMP_MTS','VII,VIII,IX','A10','a10','Sosial','T','frequency','Saya menghormati batas pribadi dan perbedaan latar belakang teman.','Relasi Teman Sebaya','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',59,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-01' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_items(bank_version_id,module_id,item_code,school_level_code,phase_levels,aspect_code,facet_code,bk_domain,stage_code,response_type,prompt,student_label,scoring_mode,privacy_class,intended_use,prohibited_use,evidence_status,order_no,is_active) SELECT v.id,m.id,'SMP-A10-T-02','SMP_MTS','VII,VIII,IX','A10','a10','Sosial','T','frequency','Saya dapat bekerja sama dengan teman yang berbeda pendapat dan kebiasaan.','Relasi Teman Sebaya','explicit_option','B','Evidence perkembangan dan kebutuhan layanan BK; bahan refleksi dan eksplorasi bersama Guru BK.','Bukan diagnosis, bukan label psikologis, bukan ranking, bukan dasar hukuman/seleksi/penempatan otomatis.','prevalidation',60,1 FROM assessment_bank_versions v JOIN assessment_banks ab ON ab.id=v.bank_id JOIN assessment_modules m ON m.bank_version_id=v.id AND m.module_code='BASELINE' WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' ON DUPLICATE KEY UPDATE module_id=VALUES(module_id),phase_levels=VALUES(phase_levels),aspect_code=VALUES(aspect_code),facet_code=VALUES(facet_code),bk_domain=VALUES(bk_domain),stage_code=VALUES(stage_code),response_type=VALUES(response_type),prompt=VALUES(prompt),student_label=VALUES(student_label),scoring_mode=VALUES(scoring_mode),privacy_class=VALUES(privacy_class),intended_use=VALUES(intended_use),prohibited_use=VALUES(prohibited_use),evidence_status=VALUES(evidence_status),order_no=VALUES(order_no),is_active=1;
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'0','Tidak pernah',0,NULL,10 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'1','Jarang',1,NULL,20 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'2','Sering',2,NULL,30 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO assessment_item_options(item_id,option_key,option_text,raw_score,effect_json,sort_order) SELECT i.id,'3','Hampir selalu',3,NULL,40 FROM assessment_items i JOIN assessment_bank_versions v ON v.id=i.bank_version_id JOIN assessment_banks ab ON ab.id=v.bank_id WHERE ab.bank_code='EXOLINK-SMP-SKKPD' AND v.bank_version='0.3.0-RC' AND i.item_code='SMP-A10-T-02' ON DUPLICATE KEY UPDATE option_text=VALUES(option_text),raw_score=VALUES(raw_score),effect_json=VALUES(effect_json),sort_order=VALUES(sort_order);
INSERT INTO pulse_definitions(profile_code,code,label,response_min,response_max,privacy_class,help_trigger,active) VALUES('SMP_MTS','wellbeing_now','Bagaimana keadaanmu belakangan ini?',NULL,NULL,'B',0,1) ON DUPLICATE KEY UPDATE label=VALUES(label),help_trigger=VALUES(help_trigger),active=1;
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'good','Cukup baik',10 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='wellbeing_now' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'mixed','Naik turun / campur',20 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='wellbeing_now' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'heavy','Sedang terasa berat',30 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='wellbeing_now' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO pulse_definitions(profile_code,code,label,response_min,response_max,privacy_class,help_trigger,active) VALUES('SMP_MTS','learning_load','Bagaimana beban belajar yang kamu rasakan?',NULL,NULL,'B',0,1) ON DUPLICATE KEY UPDATE label=VALUES(label),help_trigger=VALUES(help_trigger),active=1;
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'managed','Masih terkelola',10 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='learning_load' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'dense','Cukup padat',20 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='learning_load' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'difficult','Sulit saya kelola',30 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='learning_load' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO pulse_definitions(profile_code,code,label,response_min,response_max,privacy_class,help_trigger,active) VALUES('SMP_MTS','help_request','Apakah kamu ingin dihubungi Guru BK?',NULL,NULL,'B',1,1) ON DUPLICATE KEY UPDATE label=VALUES(label),help_trigger=VALUES(help_trigger),active=1;
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'no','Belum perlu dihubungi',10 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='help_request' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO pulse_definition_options(pulse_definition_id,option_key,option_label,sort_order) SELECT id,'yes','Saya ingin dihubungi Guru BK',20 FROM pulse_definitions WHERE profile_code='SMP_MTS' AND code='help_request' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order);
INSERT INTO referral_categories(profile_code,code,label,default_privacy,active) VALUES('SMP_MTS','learning','Hambatan belajar','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO referral_categories(profile_code,code,label,default_privacy,active) VALUES('SMP_MTS','social','Relasi/pergaulan','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO referral_categories(profile_code,code,label,default_privacy,active) VALUES('SMP_MTS','attendance','Kehadiran','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO referral_categories(profile_code,code,label,default_privacy,active) VALUES('SMP_MTS','career','Rencana studi/karier','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO referral_categories(profile_code,code,label,default_privacy,active) VALUES('SMP_MTS','safety','Keamanan/kenyamanan','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO referral_categories(profile_code,code,label,default_privacy,active) VALUES('SMP_MTS','other','Kebutuhan lain','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,default_privacy,active) VALUES('SMP_MTS','basic_group','Layanan dasar/kelas',NULL,'C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,default_privacy,active) VALUES('SMP_MTS','individual','Konseling individual',NULL,'C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,default_privacy,active) VALUES('SMP_MTS','group','Bimbingan/konseling kelompok',NULL,'C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,default_privacy,active) VALUES('SMP_MTS','consultation','Konsultasi/kolaborasi',NULL,'C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,default_privacy,active) VALUES('SMP_MTS','planning','Perencanaan individual',NULL,'C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,default_privacy,active) VALUES('SMP_MTS','referral_external','Alih tangan/referal sesuai SOP',NULL,'C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),default_privacy=VALUES(default_privacy),active=1;
DELETE FROM monitoring_rules WHERE profile_code='SMP_MTS' AND school_id IS NULL;
INSERT INTO monitoring_rules(profile_code,school_id,rule_code,rule_version,label,metric_key,operator_code,threshold_value,priority_code,bk_domain,reason_template,active) VALUES('SMP_MTS',NULL,'ATTENDANCE_REVIEW','1.0','Kehadiran perlu ditinjau','attendance_pct','lt',90,'review','Belajar','Kehadiran {value}% berada di bawah ambang review {threshold}%. Ini data pendukung, bukan diagnosis.',1);
INSERT INTO monitoring_rules(profile_code,school_id,rule_code,rule_version,label,metric_key,operator_code,threshold_value,priority_code,bk_domain,reason_template,active) VALUES('SMP_MTS',NULL,'ATTENDANCE_PRIORITY','1.0','Kehadiran perlu perhatian lebih cepat','attendance_pct','lt',85,'priority','Belajar','Kehadiran {value}% berada di bawah ambang prioritas kerja {threshold}%. Perlu review manusia.',1);
INSERT INTO monitoring_rules(profile_code,school_id,rule_code,rule_version,label,metric_key,operator_code,threshold_value,priority_code,bk_domain,reason_template,active) VALUES('SMP_MTS',NULL,'TASK_COMPLETION_REVIEW','1.0','Penyelesaian tugas perlu ditinjau','task_completion_pct','lt',75,'review','Belajar','Penyelesaian tugas {value}% berada di bawah ambang {threshold}%. Perlu konteks tambahan.',1);
INSERT INTO monitoring_rules(profile_code,school_id,rule_code,rule_version,label,metric_key,operator_code,threshold_value,priority_code,bk_domain,reason_template,active) VALUES('SMP_MTS',NULL,'ACADEMIC_REVIEW','1.0','Rerata akademik perlu konteks','grade_avg','lt',78,'review','Belajar','Rerata akademik {value} berada di bawah ambang operasional {threshold}; bukan penentu tunggal kondisi siswa.',1);
INSERT INTO monitoring_rules(profile_code,school_id,rule_code,rule_version,label,metric_key,operator_code,threshold_value,priority_code,bk_domain,reason_template,active) VALUES('SMP_MTS',NULL,'HELP_REQUEST','1.0','Siswa meminta dihubungi','help_request','eq',1,'priority','Pribadi','Siswa meminta bantuan/diHubungi. Tampilkan ke review queue tanpa menunggu skor asesmen.',1);
INSERT INTO planning_workflows(profile_code,phase_level,plan_type,label,guidance,sort_order,active) VALUES('SMP_MTS','VII','grade7_adaptation','Adaptasi kelas VII','Fokus pada adaptasi SMP/MTs, strategi belajar, relasi, kebiasaan, dan dukungan yang diperlukan.',10,1) ON DUPLICATE KEY UPDATE label=VALUES(label),guidance=VALUES(guidance),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_workflows(profile_code,phase_level,plan_type,label,guidance,sort_order,active) VALUES('SMP_MTS','VIII','grade8_review','Rencana saya di kelas VIII','Meninjau perkembangan pribadi, sosial, belajar, minat, kebiasaan, dan kebutuhan dukungan sebelum kelas IX.',10,1) ON DUPLICATE KEY UPDATE label=VALUES(label),guidance=VALUES(guidance),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_workflows(profile_code,phase_level,plan_type,label,guidance,sort_order,active) VALUES('SMP_MTS','VIII','future_exploration','Eksplorasi minat & masa depan','Mulai mengeksplorasi minat, kekuatan, pendidikan lanjutan, dan informasi pilihan tanpa penempatan otomatis.',20,1) ON DUPLICATE KEY UPDATE label=VALUES(label),guidance=VALUES(guidance),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_workflows(profile_code,phase_level,plan_type,label,guidance,sort_order,active) VALUES('SMP_MTS','IX','transition','Rencana setelah SMP/MTs','Membandingkan pilihan pendidikan setelah SMP/MTs, persyaratan, biaya/sumber daya, hambatan, alternatif, dan langkah tindak lanjut.',10,1) ON DUPLICATE KEY UPDATE label=VALUES(label),guidance=VALUES(guidance),sort_order=VALUES(sort_order),active=1;
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active) VALUES('SMP_MTS','student_summary','Ringkasan Perkembangan Saya','Siswa / orang tua sesuai cakupan','C','2.0',1) ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1;
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='student' WHERE d0.profile_code='SMP_MTS' AND d0.code='student_summary';
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='parent' WHERE d0.profile_code='SMP_MTS' AND d0.code='student_summary';
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='counselor' WHERE d0.profile_code='SMP_MTS' AND d0.code='student_summary';
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active) VALUES('SMP_MTS','bk_review','Daftar Perlu Ditinjau','Guru BK','C','2.0',1) ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1;
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='counselor' WHERE d0.profile_code='SMP_MTS' AND d0.code='bk_review';
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active) VALUES('SMP_MTS','class_summary','Ringkasan Kelas','Guru BK / Wali Kelas sesuai cakupan','B','2.0',1) ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1;
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='homeroom' WHERE d0.profile_code='SMP_MTS' AND d0.code='class_summary';
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='counselor' WHERE d0.profile_code='SMP_MTS' AND d0.code='class_summary';
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active) VALUES('SMP_MTS','planning','Rencana Belajar & Transisi','Siswa / orang tua / Guru BK sesuai hak','C','2.0',1) ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1;
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='student' WHERE d0.profile_code='SMP_MTS' AND d0.code='planning';
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='parent' WHERE d0.profile_code='SMP_MTS' AND d0.code='planning';
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='counselor' WHERE d0.profile_code='SMP_MTS' AND d0.code='planning';
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active) VALUES('SMP_MTS','semester','Laporan Semester BK','Guru BK / Kepala Sekolah','B','2.0',1) ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1;
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='counselor' WHERE d0.profile_code='SMP_MTS' AND d0.code='semester';
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='principal' WHERE d0.profile_code='SMP_MTS' AND d0.code='semester';
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active) VALUES('SMP_MTS','annual','Laporan Tahunan BK','Manajemen sekolah','B','2.0',1) ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1;
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='principal' WHERE d0.profile_code='SMP_MTS' AND d0.code='annual';
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active) VALUES('SMP_MTS','bsan','Budaya Sekolah Aman & Nyaman','Manajemen sekolah','B','2.0',1) ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1;
INSERT IGNORE INTO report_role_access(report_id,role_id,access_scope) SELECT d0.id,r.id,'scoped' FROM report_definitions d0 JOIN roles r ON r.profile_code='SMP_MTS' AND r.code='principal' WHERE d0.profile_code='SMP_MTS' AND d0.code='bsan';
START TRANSACTION;
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('BK111_2014','Permendikbud No. 111 Tahun 2014 tentang Bimbingan dan Konseling pada Pendidikan Dasar dan Pendidikan Menengah','Kementerian Pendidikan dan Kebudayaan','regulation','BERLAKU','https://peraturan.go.id/id/permendikbud-no-111-tahun-2014','2026-09-21','Baseline hukum layanan BK pada pendidikan dasar dan menengah; empat bidang layanan dan layanan psiko-edukatif.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('CURRICULUM_12_2024_13_2025','Permendikbudristek No. 12 Tahun 2024 sebagaimana diubah Permendikdasmen No. 13 Tahun 2025 tentang Kurikulum','Kementerian Pendidikan Dasar dan Menengah','regulation','BERLAKU','https://peraturan.bpk.go.id/Details/322506/permendikdasmen-no-13-tahun-2025','2026-09-21','Kerangka kurikulum pendidikan dasar/menengah; untuk SMA mendukung pilihan mata pelajaran sesuai minat, bakat, kemampuan dan proses sekolah.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('BSAN_6_2026','Permendikdasmen No. 6 Tahun 2026 tentang Budaya Sekolah Aman dan Nyaman','Kementerian Pendidikan Dasar dan Menengah','regulation','BERLAKU','https://peraturan.bpk.go.id/Details/345185/permendikdasmen-no-6-tahun-2026','2026-09-21','Pemenuhan kebutuhan spiritual, pelindungan fisik, kesejahteraan psikologis/keamanan sosiokultural, keadaban dan keamanan digital. Mencabut Permendikbudristek 46/2023.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('MPLS_12_2026','Permendikdasmen No. 12 Tahun 2026 tentang Masa Pengenalan Lingkungan Sekolah','Kementerian Pendidikan Dasar dan Menengah','regulation','BERLAKU','https://peraturan.bpk.go.id/Details/350144/permendikdasmen-no-12-tahun-2026','2026-09-21','Orientasi murid baru yang positif, aman, bermakna, direncanakan dan dievaluasi; untuk satuan pendidikan di bawah Kemendikdasmen.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('PDP_27_2022','UU No. 27 Tahun 2022 tentang Pelindungan Data Pribadi','Republik Indonesia','regulation','BERLAKU','https://peraturan.go.id/id/uu-no-27-tahun-2022','2026-09-13','Dasar pelindungan data pribadi, pembatasan tujuan, keamanan pemrosesan dan hak subjek data.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('CHILD_ELECTRONIC_17_2025','PP No. 17 Tahun 2025 tentang Tata Kelola Penyelenggaraan Sistem Elektronik dalam Pelindungan Anak','Republik Indonesia','regulation','BERLAKU','https://peraturan.go.id/id/pp-no-17-tahun-2025','2026-09-13','Tata kelola sistem elektronik dalam pelindungan anak; menjadi dasar child-safety by design.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('CHILD_ELECTRONIC_9_2026','Permenkomdigi No. 9 Tahun 2026 sebagai pelaksanaan PP No. 17 Tahun 2025','Kementerian Komunikasi dan Digital','regulation','BERLAKU','https://peraturan.go.id/id/permenkomdigi-no-9-tahun-2026','2026-09-13','Ketentuan pelaksanaan tata kelola sistem elektronik untuk pelindungan anak.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('BK_IMPLEMENTATION_GUIDE_2022','Panduan Implementasi Bimbingan dan Konseling untuk Jenjang Pendidikan Dasar dan Menengah','Badan Standar, Kurikulum, dan Asesmen Pendidikan','official_guidance','PEDOMAN_RESMI','https://repositori.kemendikdasmen.go.id/36478/','2026-09-13','Memandu perencanaan, pelaksanaan dan evaluasi BK: layanan dasar, peminatan/perencanaan individual, responsif, dan dukungan sistem.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('SMA_ELECTIVE_GUIDE_2024','Panduan Pemilihan Mata Pelajaran Pilihan di SMA/MA/Bentuk Lain yang Sederajat — Edisi Revisi 2024','Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi','official_guidance','PEDOMAN_RESMI','https://kurikulum.kemendikdasmen.go.id/file/1732515135_manage_file.pdf','2026-09-13','Persiapan, sosialisasi, pendampingan, pemilihan, pengolahan hasil pilihan, refleksi dan tindak lanjut berbasis minat, bakat dan kemampuan.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('KMA_450_2024_1503_2025','KMA No. 450 Tahun 2024 sebagaimana diubah KMA No. 1503 Tahun 2025 tentang Pedoman Implementasi Kurikulum pada Madrasah','Kementerian Agama','regulation','BERLAKU','https://jdih.kemenag.go.id/regulation/keputusan-menteri-agama-nomor-1503-tahun-2025-tentang-perubahan-atas-keputusan-menteri-agama-nomor-450-tahun-2024-tentang-pedoman-implementasi-kurikulum-pada-raudhatul-athfal-madrasah-ibtidaiyah-madrasah-tsanawiyah-madrasah-aliyah-dan-madrasah-aliyah-kejuruan','2026-09-21','Overlay kurikulum khusus MTs/MA/MAK; aplikasi tidak boleh memaksakan nomenklatur sekolah umum ke madrasah.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('MADRASAH_ORIENTATION_GUIDE','Pedoman/komunikasi resmi Kemenag tentang masa ta''aruf murid madrasah (MATSAMA/MATAMUDA)','Kementerian Agama','official_guidance','PEDOMAN_OPERASIONAL','https://cdn.kemenag.go.id/storage/archives/matsamapdf.pdf','2026-09-13','Digunakan untuk overlay orientasi/adaptasi MTs/MA. Nomenklatur MATAMUDA digunakan Kemenag pada 2026; juknis tahunan harus diverifikasi saat implementasi tahun ajaran.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('POP_BK_SMP_2016','Panduan Operasional Penyelenggaraan Bimbingan dan Konseling SMP — kerangka profesional 2016','Ditjen GTK Kemendikbud (kerangka profesional)','professional_guidance','ARCHIVAL_GUIDANCE',NULL,'2026-09-13','Digunakan untuk traceability SKKPD SMP 10 aspek. Bukan peraturan dan bukan bukti validitas psikometrik bank EXOLINK.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('POP_BK_SMA_2016','Panduan Operasional Penyelenggaraan Bimbingan dan Konseling SMA — kerangka profesional 2016','Ditjen GTK Kemendikbud (kerangka profesional)','professional_guidance','ARCHIVAL_GUIDANCE',NULL,'2026-09-13','Digunakan untuk traceability SKKPD SMA 11 aspek. Bukan peraturan dan bukan bukti validitas psikometrik bank EXOLINK.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),official_url=VALUES(official_url),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'all','Fondasi layanan BK pendidikan dasar.','Empat bidang BK, layanan psiko-edukatif dan keputusan profesional manusia.',10,1 FROM regulatory_sources WHERE source_code='BK111_2014' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'all','Kerangka implementasi layanan BK.','Layanan dasar, responsif, perencanaan individual dan dukungan sistem harus terakomodasi.',20,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'all','Kerangka perkembangan/SKKPD SMP.','10 aspek SKKPD ditelusurkan sebagai konstruk perkembangan; bukan norma klinis.',30,1 FROM regulatory_sources WHERE source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'school','Konteks kurikulum SMP.','Alur perkembangan dan transisi harus kompatibel dengan struktur kurikulum sekolah.',40,1 FROM regulatory_sources WHERE source_code='CURRICULUM_12_2024_13_2025' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'school','Transisi kelas VII pada sekolah.','Adaptasi pasca-MPLS dapat dimonitor tanpa menjadikan MPLS sebagai tes diagnostik.',50,1 FROM regulatory_sources WHERE source_code='MPLS_12_2026' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'madrasah','Konteks kurikulum MTs.','Terminologi dan alur MTs mengikuti konteks madrasah melalui overlay konfigurasi.',60,1 FROM regulatory_sources WHERE source_code='KMA_450_2024_1503_2025' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'madrasah','Transisi kelas VII pada madrasah.','Adaptasi pasca masa ta''aruf diakomodasi sebagai workflow, bukan diagnosis.',70,1 FROM regulatory_sources WHERE source_code='MADRASAH_ORIENTATION_GUIDE' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'school','Keselamatan dan kenyamanan sekolah.','Wellbeing/keamanan menjadi evidence lane terpisah dari skor perkembangan individu.',80,1 FROM regulatory_sources WHERE source_code='BSAN_6_2026' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'all','Pelindungan data pribadi.','Minimisasi data, least privilege, audit trail, retensi dan hak data.',90,1 FROM regulatory_sources WHERE source_code='PDP_27_2022' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'all','Pelindungan anak dalam sistem elektronik.','Child-safety, jalur bantuan dan UX sesuai usia.',100,1 FROM regulatory_sources WHERE source_code='CHILD_ELECTRONIC_17_2025' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO track_regulatory_sources(profile_code,source_id,institution_context,applicability_note,design_consequence,sort_order,active) SELECT 'SMP_MTS',id,'all','Pelaksanaan pelindungan anak pada sistem elektronik.','Kontrol keselamatan/privasi harus dapat diuji.',110,1 FROM regulatory_sources WHERE source_code='CHILD_ELECTRONIC_9_2026' ON DUPLICATE KEY UPDATE applicability_note=VALUES(applicability_note),design_consequence=VALUES(design_consequence),sort_order=VALUES(sort_order),active=1;
INSERT INTO development_phase_baselines(profile_code,phase_level,phase_code,title,objective,evidence_focus_json,service_focus_json,outcome_focus_json,source_codes_json,baseline_version,active) VALUES('SMP_MTS','VII','SMP_VII_ADAPT','Adaptasi & Pemetaan Awal','Membantu siswa beradaptasi dengan lingkungan, pola belajar, relasi, kebiasaan dan jalur bantuan; hasil awal dipakai untuk dukungan, bukan pelabelan.','["Kabar Saya","asesmen perkembangan periodik","referral exception-based","ringkasan kehadiran/akademik bila tersedia","catatan layanan/follow-up"]','["layanan dasar/kelas","responsif bila ada permintaan/referral","perencanaan perkembangan awal","kolaborasi wali kelas/orang tua seperlunya"]','["adaptasi terpantau","kebutuhan dukungan terdokumentasi","follow-up jelas"]','["BK111_2014","BK_IMPLEMENTATION_GUIDE_2022","MPLS_12_2026","MADRASAH_ORIENTATION_GUIDE"]','2026.09.13-v1',1) ON DUPLICATE KEY UPDATE title=VALUES(title),objective=VALUES(objective),evidence_focus_json=VALUES(evidence_focus_json),service_focus_json=VALUES(service_focus_json),outcome_focus_json=VALUES(outcome_focus_json),source_codes_json=VALUES(source_codes_json),baseline_version=VALUES(baseline_version),active=1;
INSERT INTO development_phase_baselines(profile_code,phase_level,phase_code,title,objective,evidence_focus_json,service_focus_json,outcome_focus_json,source_codes_json,baseline_version,active) VALUES('SMP_MTS','VIII','SMP_VIII_DEVELOP','Monitoring Perkembangan & Eksplorasi','Memantau perkembangan pribadi, sosial, belajar dan karier; memperkuat kebiasaan sehat serta mulai mengeksplorasi minat dan kemungkinan masa depan.','["asesmen periodik","Kabar Saya","referral","kehadiran/akademik","histori layanan dan perubahan"]','["layanan dasar","layanan responsif","bimbingan kelompok","perencanaan individual awal"]','["kekuatan/kebutuhan makin jelas","hambatan ditindaklanjuti","eksplorasi minat terdokumentasi"]','["BK111_2014","BK_IMPLEMENTATION_GUIDE_2022","POP_BK_SMP_2016"]','2026.09.13-v1',1) ON DUPLICATE KEY UPDATE title=VALUES(title),objective=VALUES(objective),evidence_focus_json=VALUES(evidence_focus_json),service_focus_json=VALUES(service_focus_json),outcome_focus_json=VALUES(outcome_focus_json),source_codes_json=VALUES(source_codes_json),baseline_version=VALUES(baseline_version),active=1;
INSERT INTO development_phase_baselines(profile_code,phase_level,phase_code,title,objective,evidence_focus_json,service_focus_json,outcome_focus_json,source_codes_json,baseline_version,active) VALUES('SMP_MTS','IX','SMP_IX_TRANSITION','Perencanaan Transisi Pendidikan Lanjut','Membantu siswa mengenali diri dan membandingkan pilihan pendidikan/aktivitas setelah SMP/MTs secara informasional bersama Guru BK dan keluarga, tanpa penempatan otomatis.','["profil perkembangan","minat/kekuatan","informasi persyaratan pilihan","hambatan/sumber daya","pilihan alternatif"]','["perencanaan individual","informasi pendidikan/karier","konsultasi keluarga","follow-up rencana transisi"]','["rencana transisi realistis","alternatif tersedia","langkah dan tenggat tindak lanjut tercatat"]','["BK111_2014","BK_IMPLEMENTATION_GUIDE_2022","POP_BK_SMP_2016"]','2026.09.13-v1',1) ON DUPLICATE KEY UPDATE title=VALUES(title),objective=VALUES(objective),evidence_focus_json=VALUES(evidence_focus_json),service_focus_json=VALUES(service_focus_json),outcome_focus_json=VALUES(outcome_focus_json),source_codes_json=VALUES(source_codes_json),baseline_version=VALUES(baseline_version),active=1;
INSERT INTO baseline_requirements(profile_code,requirement_code,phase_levels,institution_context,source_id,category,requirement_text,app_translation,primary_roles_json,evidence_json,actions_json,outcomes_json,test_case_code,implementation_status,sort_order,active) SELECT 'SMP_MTS','SMP_VIII_MONITOR','VIII','all',id,'development','Monitoring kebutuhan tidak boleh berhenti pada pemetaan; harus berujung layanan dan evaluasi.','Kelas VIII memakai monitoring multi-evidence, review manusia, layanan dan follow-up.','["student","counselor","homeroom"]','["assessment","pulse","referral","school_data"]','["review","service","follow_up"]','["resolved_or_monitored"]','REG-SMP-006','implemented',60,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE phase_levels=VALUES(phase_levels),institution_context=VALUES(institution_context),source_id=VALUES(source_id),category=VALUES(category),requirement_text=VALUES(requirement_text),app_translation=VALUES(app_translation),primary_roles_json=VALUES(primary_roles_json),evidence_json=VALUES(evidence_json),actions_json=VALUES(actions_json),outcomes_json=VALUES(outcomes_json),test_case_code=VALUES(test_case_code),implementation_status='implemented',sort_order=VALUES(sort_order),active=1;
INSERT INTO baseline_requirements(profile_code,requirement_code,phase_levels,institution_context,source_id,category,requirement_text,app_translation,primary_roles_json,evidence_json,actions_json,outcomes_json,test_case_code,implementation_status,sort_order,active) SELECT 'SMP_MTS','SMP_IX_TRANSITION','IX','all',id,'planning','Bidang karier/perencanaan perlu membantu siswa menyiapkan pilihan pendidikan dan masa depan.','Siswa membandingkan beberapa pilihan, persyaratan, hambatan, sumber daya dan alternatif; aplikasi tidak memilih sekolah/jalur secara otomatis.','["student","parent","counselor"]','["development_profile","student_goal","official_option_info"]','["individual_planning","consultation","follow_up"]','["transition_plan"]','REG-SMP-007','implemented',70,1 FROM regulatory_sources WHERE source_code='BK111_2014' ON DUPLICATE KEY UPDATE phase_levels=VALUES(phase_levels),institution_context=VALUES(institution_context),source_id=VALUES(source_id),category=VALUES(category),requirement_text=VALUES(requirement_text),app_translation=VALUES(app_translation),primary_roles_json=VALUES(primary_roles_json),evidence_json=VALUES(evidence_json),actions_json=VALUES(actions_json),outcomes_json=VALUES(outcomes_json),test_case_code=VALUES(test_case_code),implementation_status='implemented',sort_order=VALUES(sort_order),active=1;
INSERT INTO baseline_requirements(profile_code,requirement_code,phase_levels,institution_context,source_id,category,requirement_text,app_translation,primary_roles_json,evidence_json,actions_json,outcomes_json,test_case_code,implementation_status,sort_order,active) SELECT 'SMP_MTS','SMP_MADRASAH_OVERLAY','VII,VIII,IX','madrasah',id,'curriculum','MTs mengikuti pedoman implementasi kurikulum madrasah yang berlaku.','Terminologi, konfigurasi dan laporan dapat memakai overlay madrasah tanpa membuat engine terpisah.','["administrator","counselor","principal"]','["school_profile"]','["configure_track_overlay"]','["correct_context"]','REG-SMP-008','implemented',80,1 FROM regulatory_sources WHERE source_code='KMA_450_2024_1503_2025' ON DUPLICATE KEY UPDATE phase_levels=VALUES(phase_levels),institution_context=VALUES(institution_context),source_id=VALUES(source_id),category=VALUES(category),requirement_text=VALUES(requirement_text),app_translation=VALUES(app_translation),primary_roles_json=VALUES(primary_roles_json),evidence_json=VALUES(evidence_json),actions_json=VALUES(actions_json),outcomes_json=VALUES(outcomes_json),test_case_code=VALUES(test_case_code),implementation_status='implemented',sort_order=VALUES(sort_order),active=1;
INSERT INTO baseline_requirements(profile_code,requirement_code,phase_levels,institution_context,source_id,category,requirement_text,app_translation,primary_roles_json,evidence_json,actions_json,outcomes_json,test_case_code,implementation_status,sort_order,active) SELECT 'SMP_MTS','SMP_PRIVACY_CHILD','VII,VIII,IX','all',id,'privacy','Data siswa harus diproses terbatas, aman dan sesuai kewenangan.','Least privilege, pemisahan data A-D, audit trail, retensi, request rights, serta child-safe help path wajib dipertahankan.','["administrator","superadmin","counselor"]','["all_personal_data"]','["access_control","audit","retention","data_request"]','["privacy_compliance_evidence"]','REG-SMP-010','implemented',100,1 FROM regulatory_sources WHERE source_code='PDP_27_2022' ON DUPLICATE KEY UPDATE phase_levels=VALUES(phase_levels),institution_context=VALUES(institution_context),source_id=VALUES(source_id),category=VALUES(category),requirement_text=VALUES(requirement_text),app_translation=VALUES(app_translation),primary_roles_json=VALUES(primary_roles_json),evidence_json=VALUES(evidence_json),actions_json=VALUES(actions_json),outcomes_json=VALUES(outcomes_json),test_case_code=VALUES(test_case_code),implementation_status='implemented',sort_order=VALUES(sort_order),active=1;
UPDATE service_catalog SET service_component='basic', regulatory_basis_code='BK111_2014/BK_IMPLEMENTATION_GUIDE_2022' WHERE profile_code='SMP_MTS' AND code='basic_group';
UPDATE service_catalog SET service_component='responsive', regulatory_basis_code='BK111_2014/BK_IMPLEMENTATION_GUIDE_2022' WHERE profile_code='SMP_MTS' AND code='individual';
UPDATE service_catalog SET service_component='responsive', regulatory_basis_code='BK111_2014/BK_IMPLEMENTATION_GUIDE_2022' WHERE profile_code='SMP_MTS' AND code='group';
UPDATE service_catalog SET service_component='system_support', regulatory_basis_code='BK111_2014/BK_IMPLEMENTATION_GUIDE_2022' WHERE profile_code='SMP_MTS' AND code='consultation';
UPDATE service_catalog SET service_component='individual_planning', regulatory_basis_code='BK111_2014/BK_IMPLEMENTATION_GUIDE_2022' WHERE profile_code='SMP_MTS' AND code='planning';
UPDATE service_catalog SET service_component='responsive', regulatory_basis_code='BK111_2014/BK_IMPLEMENTATION_GUIDE_2022' WHERE profile_code='SMP_MTS' AND code='referral_external';
COMMIT;
UPDATE planning_workflows SET guidance='Adaptasi SMP/MTs setelah masa pengenalan/ta''aruf: strategi belajar, relasi, kebiasaan, rasa aman, jalur bantuan, dan dukungan yang diperlukan.' WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation';
UPDATE planning_workflows SET guidance='Meninjau perkembangan pribadi, sosial, belajar dan karier; setiap kebutuhan yang terkonfirmasi harus memiliki layanan/follow-up yang jelas.' WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review';
UPDATE planning_workflows SET guidance='Membandingkan beberapa pilihan pendidikan/aktivitas setelah SMP/MTs berdasarkan informasi resmi, persyaratan, sumber daya, hambatan, alternatif, dan langkah tindak lanjut.' WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition';
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','min_duration_ratio','0.28','float',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','min_duration_floor_seconds','60','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','speed_min_answers','8','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','straightline_ratio','0.90','float',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','straightline_min_items','8','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','rapid_gap_seconds','1','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','rapid_ratio','0.75','float',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','rapid_min_answers','10','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','confirmation_signal_count','2','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','penalty_incomplete','50','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','penalty_speed','30','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','penalty_straightline','20','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','response_quality','penalty_rapid','20','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO runtime_parameters(profile_code,parameter_group,parameter_key,parameter_value,value_type,active) VALUES ('SMP_MTS','pilot_scorecard','window_days','30','int',1) ON DUPLICATE KEY UPDATE parameter_value=VALUES(parameter_value),value_type=VALUES(value_type),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VII','grade7_adaptation','adaptation_now','Sejauh ini, bagaimana kamu menjalani kelas VII?',NULL,'single','goal',1,1,10,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'good','Cukup nyaman',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_now' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'mixed','Ada yang nyaman, ada yang masih sulit',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_now' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'hard','Masih cukup sulit',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_now' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'help','Saya ingin dibantu',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_now' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VII','grade7_adaptation','adaptation_area','Bagian mana yang paling ingin kamu buat lebih nyaman?',NULL,'multi','choices',1,2,20,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'learning','Belajar dan tugas',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_area' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'friends','Pertemanan',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_area' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'school_rules','Kebiasaan/aturan sekolah',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_area' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'confidence','Percaya diri',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_area' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'time','Mengatur waktu',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_area' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'none','Belum ada',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='adaptation_area' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VII','grade7_adaptation','support_needed','Bantuan apa yang paling kamu butuhkan sekarang?',NULL,'multi','barriers',1,2,30,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'none','Belum ada',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'talk_bk','Saya ingin bicara dengan Guru BK',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'learning','Belajar / tugas',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'friends','Pertemanan / relasi',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'family','Dukungan keluarga',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'information','Butuh informasi yang lebih jelas',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'time','Mengatur waktu',70,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'confidence','Masih ragu dengan pilihan saya',80,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VII','grade7_adaptation','student_note','Ada hal lain yang ingin kamu sampaikan?','Boleh dikosongkan.','text','context',0,1,40,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VIII','grade8_review','review_focus','Apa yang paling ingin kamu perbaiki atau pertahankan semester ini?',NULL,'multi','goal',1,2,10,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'learning','Cara belajar',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='review_focus' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'emotion','Mengelola emosi',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='review_focus' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'friends','Pertemanan',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='review_focus' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'confidence','Percaya diri',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='review_focus' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'discipline','Kebiasaan dan tanggung jawab',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='review_focus' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'future','Mulai mengenali minat masa depan',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='review_focus' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VIII','grade8_review','progress_feel','Menurutmu perkembanganmu belakangan ini bagaimana?',NULL,'single','context',1,1,20,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'better','Ada kemajuan',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='progress_feel' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'same','Kurang lebih sama',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='progress_feel' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'mixed','Naik turun',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='progress_feel' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'hard','Sedang cukup sulit',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='progress_feel' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VIII','grade8_review','support_needed','Hal apa yang ingin kamu selesaikan dengan bantuan?',NULL,'multi','barriers',1,2,30,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'none','Belum ada',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'talk_bk','Saya ingin bicara dengan Guru BK',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'learning','Belajar / tugas',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'friends','Pertemanan / relasi',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'family','Dukungan keluarga',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'information','Butuh informasi yang lebih jelas',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'time','Mengatur waktu',70,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'confidence','Masih ragu dengan pilihan saya',80,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VIII','future_exploration','interest_field','Bidang apa yang membuatmu penasaran untuk dipelajari lebih jauh?',NULL,'multi','choices',1,3,10,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'health','Kesehatan',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'science','Sains',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'tech','Teknik & teknologi',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'business','Bisnis & ekonomi',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'social','Sosial & hukum',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'education','Pendidikan',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'arts','Seni & desain',70,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'language','Bahasa & humaniora',80,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'other','Bidang lain',90,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'unknown','Belum tahu',100,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='interest_field' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VIII','future_exploration','explore_way','Kamu ingin mengenal pilihan masa depan lewat cara apa?',NULL,'multi','goal',1,2,20,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'info','Mencari informasi sekolah/pekerjaan',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='explore_way' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'talk','Bicara dengan Guru BK',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='explore_way' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'activity','Mencoba kegiatan/ekstrakurikuler',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='explore_way' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'family','Diskusi dengan keluarga',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='explore_way' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'unknown','Belum tahu',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='explore_way' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','VIII','future_exploration','support_needed','Apa yang masih membuatmu bingung?',NULL,'multi','barriers',1,2,30,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'none','Belum ada',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'talk_bk','Saya ingin bicara dengan Guru BK',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'learning','Belajar / tugas',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'friends','Pertemanan / relasi',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'family','Dukungan keluarga',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'information','Butuh informasi yang lebih jelas',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'time','Mengatur waktu',70,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'confidence','Masih ragu dengan pilihan saya',80,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','IX','transition','next_direction','Setelah SMP/MTs, pilihan yang sedang kamu pertimbangkan apa?',NULL,'multi','choices',1,2,10,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'sma','SMA/MA',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='next_direction' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'smk','SMK/MAK',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='next_direction' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'pesantren','Pesantren / pendidikan berasrama',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='next_direction' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'other','Pilihan lain',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='next_direction' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'unknown','Belum tahu',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='next_direction' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','IX','transition','decision_basis','Apa yang paling kamu pertimbangkan?',NULL,'multi','goal',1,3,20,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'interest','Minat saya',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='decision_basis' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'ability','Kemampuan / hasil belajar',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='decision_basis' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'program','Program atau mata pelajaran yang tersedia',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='decision_basis' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'distance','Lokasi / jarak',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='decision_basis' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'cost','Biaya dan dukungan keluarga',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='decision_basis' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'future','Rencana setelah sekolah menengah',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='decision_basis' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','IX','transition','support_needed','Apa yang masih perlu dibantu?',NULL,'multi','barriers',1,2,30,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'compare','Membandingkan pilihan sekolah',10,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'requirements','Memahami syarat masuk',20,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'cost','Biaya / dukungan',30,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'family','Diskusi dengan keluarga',40,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'talk_bk','Saya ingin bicara dengan Guru BK',50,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_options(question_id,option_key,option_label,sort_order,active) SELECT id,'none','Belum ada',60,1 FROM planning_question_definitions WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition' AND question_key='support_needed' ON DUPLICATE KEY UPDATE option_label=VALUES(option_label),sort_order=VALUES(sort_order),active=1;
INSERT INTO planning_question_definitions(profile_code,phase_level,plan_type,question_key,prompt,help_text,input_type,response_bucket,required,max_select,sort_order,active) VALUES('SMP_MTS','IX','transition','student_note','Ada pilihan lain atau hal penting yang ingin kamu sampaikan?',NULL,'text','context',0,1,40,1) ON DUPLICATE KEY UPDATE prompt=VALUES(prompt),help_text=VALUES(help_text),input_type=VALUES(input_type),response_bucket=VALUES(response_bucket),required=VALUES(required),max_select=VALUES(max_select),sort_order=VALUES(sort_order),active=1;
UPDATE planning_workflows SET student_guidance='Ceritakan bagian sekolah yang sudah nyaman dan yang masih perlu bantuan.' WHERE profile_code='SMP_MTS' AND phase_level='VII' AND plan_type='grade7_adaptation';
UPDATE planning_workflows SET student_guidance='Pilih hal yang ingin kamu pertahankan atau perbaiki semester ini.' WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='grade8_review';
UPDATE planning_workflows SET student_guidance='Kenali bidang yang menarik dan cara kamu ingin mengeksplorasinya.' WHERE profile_code='SMP_MTS' AND phase_level='VIII' AND plan_type='future_exploration';
UPDATE planning_workflows SET student_guidance='Bandingkan pilihan setelah SMP/MTs dan catat hal yang masih perlu dibantu.' WHERE profile_code='SMP_MTS' AND phase_level='IX' AND plan_type='transition';
DELETE FROM evidence_source_profiles WHERE profile_code IN ('SMP_MTS');
INSERT INTO evidence_source_profiles(profile_code,source_type,label,informant_class,method_class,context_class,is_quality_only,active)
SELECT 'SMP_MTS','rule','Data berkala','administrative','record_rule','school',0,1 UNION ALL
SELECT 'SMP_MTS','pulse','Kabar Saya','self','self_report','student_report',0,1 UNION ALL
SELECT 'SMP_MTS','referral','Rujukan','school_observer','observer_report','school',0,1 UNION ALL
SELECT 'SMP_MTS','incident','Kejadian','event_record','event_record','school',0,1 UNION ALL
SELECT 'SMP_MTS','assessment','Asesmen','self','structured_assessment','assessment',0,1 UNION ALL
SELECT 'SMP_MTS','assessment_quality','Kualitas respons asesmen','system','quality_check','assessment',1,1 UNION ALL
SELECT 'SMP_MTS','service','Layanan BK','professional','professional_record','service',0,1 UNION ALL
SELECT 'SMP_MTS','followup','Tindak lanjut','professional','followup_record','service',0,1;
DELETE FROM evidence_themes WHERE profile_code IN ('SMP_MTS');
INSERT INTO evidence_themes(profile_code,theme_code,label,bk_domain,description,sort_order,active)
SELECT 'SMP_MTS','personal_support','Kebutuhan dukungan pribadi','Pribadi','Permintaan bantuan atau kebutuhan pribadi yang memerlukan klarifikasi manusia.',10,1 UNION ALL
SELECT 'SMP_MTS','peer_relations','Relasi dan pergaulan','Sosial','Informasi terkait relasi teman sebaya, konflik, kerja sama, atau interaksi sosial.',20,1 UNION ALL
SELECT 'SMP_MTS','learning_participation','Partisipasi dan proses belajar','Belajar','Informasi terkait tugas, capaian, proses belajar, dan keterlibatan belajar.',30,1 UNION ALL
SELECT 'SMP_MTS','attendance_participation','Kehadiran dan keterlibatan sekolah','Belajar','Data kehadiran sebagai informasi pendukung yang perlu konteks.',40,1 UNION ALL
SELECT 'SMP_MTS','career_planning','Perencanaan studi dan karier','Karier','Kebutuhan eksplorasi studi lanjut, pilihan belajar, dan karier.',50,1 UNION ALL
SELECT 'SMP_MTS','vocational_transition','Kejuruan, PKL, dan transisi','Karier','Kebutuhan khusus SMK/MAK terkait kompetensi, PKL, dan transisi setelah lulus.',60,1 UNION ALL
SELECT 'SMP_MTS','safety_comfort','Keamanan dan kenyamanan','Pribadi/Sosial','Informasi terkait rasa aman, kenyamanan, dan kejadian yang memerlukan respons sesuai SOP.',70,1 UNION ALL
SELECT 'SMP_MTS','needs_clarification','Kebutuhan yang perlu diklarifikasi','Umum','Informasi belum cukup spesifik untuk dipetakan ke tema lain.',80,1 UNION ALL
SELECT 'SMP_MTS','data_quality','Kualitas data asesmen','Data','Sinyal kualitas respons; tidak boleh diperlakukan sebagai masalah siswa.',90,1;
DELETE FROM evidence_service_mappings WHERE profile_code IN ('SMP_MTS');
INSERT INTO evidence_service_mappings(profile_code,theme_code,service_code,rationale,sort_order,active)
SELECT 'SMP_MTS','personal_support','individual','Pertimbangkan percakapan/konseling individual setelah Guru BK mengklarifikasi konteks.',10,1 UNION ALL
SELECT 'SMP_MTS','personal_support','consultation','Kolaborasi dapat dipertimbangkan bila konteks membutuhkan pihak lain dan privasi memungkinkan.',20,1 UNION ALL
SELECT 'SMP_MTS','peer_relations','individual','Konseling individual dapat dipertimbangkan untuk eksplorasi pengalaman dan kebutuhan siswa.',10,1 UNION ALL
SELECT 'SMP_MTS','peer_relations','group','Bimbingan/konseling kelompok dapat dipertimbangkan bila kebutuhan bersifat kelompok dan aman dilakukan.',20,1 UNION ALL
SELECT 'SMP_MTS','peer_relations','consultation','Kolaborasi/mediasi dipertimbangkan setelah konteks dan kewenangan diklarifikasi.',30,1 UNION ALL
SELECT 'SMP_MTS','learning_participation','consultation','Konsultasi/kolaborasi dengan pihak pembelajaran dapat dipertimbangkan setelah penyebab diklarifikasi.',10,1 UNION ALL
SELECT 'SMP_MTS','learning_participation','individual','Konseling individual dapat dipertimbangkan bila hambatan bersifat personal.',20,1 UNION ALL
SELECT 'SMP_MTS','learning_participation','basic_group','Layanan dasar/kelas dapat dipertimbangkan bila kebutuhan dialami banyak siswa.',30,1 UNION ALL
SELECT 'SMP_MTS','attendance_participation','consultation','Klarifikasi kehadiran dan kolaborasi dengan wali kelas/orang tua dapat dipertimbangkan sesuai konteks.',10,1 UNION ALL
SELECT 'SMP_MTS','career_planning','planning','Peminatan/perencanaan individual merupakan opsi utama untuk kebutuhan perencanaan studi/karier.',10,1 UNION ALL
SELECT 'SMP_MTS','career_planning','consultation','Konsultasi/kolaborasi dapat dipertimbangkan untuk informasi studi dan pilihan sekolah.',20,1 UNION ALL
SELECT 'SMP_MTS','vocational_transition','planning','Perencanaan individual dapat dipertimbangkan untuk PKL/transisi setelah lulus.',10,1 UNION ALL
SELECT 'SMP_MTS','vocational_transition','consultation','Kolaborasi dengan pihak kejuruan/BKK/mitra dilakukan sesuai kewenangan dan persetujuan.',20,1 UNION ALL
SELECT 'SMP_MTS','safety_comfort','individual','Guru BK perlu mengklarifikasi kondisi siswa dan menerapkan SOP keselamatan sekolah bila relevan.',10,1 UNION ALL
SELECT 'SMP_MTS','safety_comfort','consultation','Koordinasi dengan pihak berwenang di sekolah dapat diperlukan sesuai SOP dan prinsip need-to-know.',20,1 UNION ALL
SELECT 'SMP_MTS','safety_comfort','referral_external','Alih tangan/rujukan dipertimbangkan bila kebutuhan berada di luar kompetensi/kewenangan layanan BK.',30,1;
UPDATE service_catalog SET active=0 WHERE profile_code='SMP_MTS' AND code IN ('basic_group','group');
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','basic_classical','Bimbingan klasikal / layanan dasar','Pribadi/Sosial/Belajar/Karier','basic','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','basic_classical','Membantu kebutuhan perkembangan dan pencegahan yang relevan bagi kelompok/kelas.','Dipertimbangkan bila kebutuhan bersifat perkembangan/preventif atau muncul pada banyak peserta didik.','Bukan pengganti layanan individual untuk kebutuhan yang mendesak, sensitif, atau spesifik.','Guru BK/konselor bersama pendidik sesuai desain program','Kelas/kelompok','classical','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','group_guidance','Bimbingan kelompok','Pribadi/Sosial/Belajar/Karier','basic_planning','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','group_guidance','Memfasilitasi pengembangan, eksplorasi, dan pembelajaran bersama dalam kelompok kecil.','Dipertimbangkan untuk kebutuhan perkembangan/eksplorasi yang aman dibahas bersama.','Tidak digunakan untuk membuka informasi rahasia individual atau konflik yang memerlukan penanganan khusus.','Guru BK/konselor','Kelompok kecil','group','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','individual','Konseling individual','Pribadi/Sosial/Belajar/Karier','responsive','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','individual','Membantu peserta didik mengeksplorasi kebutuhan/masalah secara individual dan menyusun langkah bantuan.','Dipertimbangkan setelah klarifikasi bila kebutuhan bersifat individual dan memerlukan ruang privat.','Bukan diagnosis klinis; bila kebutuhan berada di luar kompetensi/kewenangan sekolah, pertimbangkan rujukan.','Guru BK/konselor yang berwenang','Individual','individual','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','group_counseling','Konseling kelompok','Pribadi/Sosial/Belajar/Karier','responsive','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','group_counseling','Membantu beberapa peserta didik yang memiliki kebutuhan serupa melalui proses konseling kelompok.','Dipertimbangkan setelah klarifikasi bila kebutuhan serupa aman dan tepat diproses dalam kelompok.','Tidak untuk kasus yang membutuhkan kerahasiaan individual tinggi, kondisi krisis, atau ketika dinamika kelompok tidak aman.','Guru BK/konselor yang berwenang','Kelompok konseling','group_counseling','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','crisis_counseling','Konseling krisis','Pribadi/Sosial','responsive','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','crisis_counseling','Memberi bantuan segera dalam situasi krisis sambil mengaktifkan SOP keselamatan/rujukan bila diperlukan.','Hanya dipertimbangkan bila Guru BK mengonfirmasi adanya kondisi krisis/darurat dan memiliki kompetensi serta SOP yang sesuai.','Tidak boleh dipicu otomatis oleh skor/asesmen; keselamatan dan rujukan profesional mengikuti SOP sekolah dan kewenangan.','Guru BK/konselor sesuai kompetensi dan SOP','Individual/terbatas','crisis','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','planning','Peminatan/perencanaan individual','Belajar/Karier','individual_planning','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','planning','Mendampingi peserta didik merumuskan tujuan, pilihan, dan langkah pendidikan/karier secara bertahap.','Dipertimbangkan untuk kebutuhan peminatan, pilihan belajar, studi lanjut, karier, dan rencana transisi.','Bukan penempatan otomatis; keputusan tetap melibatkan peserta didik dan prosedur sekolah/keluarga yang relevan.','Guru BK/konselor; dapat berkolaborasi dengan wali kelas, kurikulum, guru, orang tua','Individual/kelompok/klasikal sesuai tahap','planning','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','consultation','Konsultasi','Pribadi/Sosial/Belajar/Karier','planning_support','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','consultation','Membantu pihak terkait memahami kebutuhan peserta didik dan menentukan dukungan yang tepat.','Dipertimbangkan ketika keputusan/dukungan memerlukan pertukaran informasi profesional dengan pihak yang relevan.','Akses informasi mengikuti prinsip kerahasiaan dan least-privilege; konsultasi tidak menggantikan persetujuan/kewenangan yang dibutuhkan.','Guru BK/konselor dengan pihak terkait','Pendidik/orang tua/mitra sesuai kebutuhan','consultation','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','collaboration','Kolaborasi','Pribadi/Sosial/Belajar/Karier','system_support','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','collaboration','Mengkoordinasikan dukungan lintas pihak untuk kebutuhan peserta didik yang memerlukan kerja bersama.','Dipertimbangkan ketika dukungan melibatkan wali kelas, guru, orang tua, pimpinan, kurikulum, atau mitra lain.','Kolaborasi tidak berarti membuka seluruh catatan konseling; bagikan informasi minimum sesuai kewenangan.','Guru BK/konselor dan pihak terkait','Lintas pihak','collaboration','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','mediation','Mediasi','Sosial','responsive','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','mediation','Membantu pihak yang berkonflik mencari penyelesaian secara netral dan aman.','Dipertimbangkan hanya setelah konflik terkonfirmasi dan mediasi dinilai aman, sukarela, serta sesuai konteks.','Tidak digunakan bila ada risiko keselamatan, ketimpangan kuasa serius, atau kebutuhan perlindungan/rujukan yang harus didahulukan.','Guru BK/konselor/pendidik yang berperan netral sesuai SOP','Pihak yang berkonflik','mediation','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','referral_external','Rujukan / alih penanganan','Pribadi/Sosial/Belajar/Karier','responsive','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','referral_external','Menghubungkan peserta didik dengan profesional/layanan lain ketika kebutuhan berada di luar kemampuan atau kewenangan sekolah.','Dipertimbangkan setelah analisis kebutuhan menunjukkan perlunya keahlian/layanan di luar sekolah atau penanganan lebih khusus.','Bukan pembuangan kasus; sekolah tetap melakukan koordinasi dan tindak lanjut sesuai kewenangan dan SOP.','Guru BK/konselor/pimpinan sesuai SOP dengan profesional/mitra','Individual/keluarga/mitra','referral','official_current',1,1,1,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
INSERT INTO service_catalog(profile_code,code,label,bk_domain,service_component,regulatory_basis_code,default_privacy,active) VALUES('SMP_MTS','system_support','Dukungan sistem','Pribadi/Sosial/Belajar/Karier','system_support','BK111_2014/BK_IMPLEMENTATION_GUIDE_2022','C',1) ON DUPLICATE KEY UPDATE label=VALUES(label),bk_domain=VALUES(bk_domain),service_component=VALUES(service_component),regulatory_basis_code=VALUES(regulatory_basis_code),default_privacy=VALUES(default_privacy),active=1;
INSERT INTO service_definitions(profile_code,service_code,purpose,indication_summary,limitation_summary,executor_scope,participant_scope,service_mode,guideline_tier,case_selectable,requires_human_confirmation,followup_required,active) VALUES('SMP_MTS','system_support','Menguatkan sistem, program, koordinasi, budaya, dan kapasitas sekolah agar layanan BK berjalan efektif.','Digunakan pada level program/sistem, bukan dipilih sebagai layanan kasus individual.','Tidak ditampilkan sebagai tindakan kasus individual.','Sekolah/Guru BK/pimpinan/mitra','Sistem sekolah','system','official_current',0,1,0,1) ON DUPLICATE KEY UPDATE purpose=VALUES(purpose),indication_summary=VALUES(indication_summary),limitation_summary=VALUES(limitation_summary),executor_scope=VALUES(executor_scope),participant_scope=VALUES(participant_scope),service_mode=VALUES(service_mode),guideline_tier=VALUES(guideline_tier),case_selectable=VALUES(case_selectable),requires_human_confirmation=VALUES(requires_human_confirmation),followup_required=VALUES(followup_required),active=1;
DELETE FROM service_guideline_traces WHERE profile_code='SMP_MTS';
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','basic_classical',id,'Bagian Layanan Dasar, hlm. 7–10','Dipertimbangkan bila kebutuhan bersifat perkembangan/preventif atau muncul pada banyak peserta didik.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','group_guidance',id,'Bagian Layanan Dasar dan Peminatan/Perencanaan Individual, hlm. 7–12','Dipertimbangkan untuk kebutuhan perkembangan/eksplorasi yang aman dibahas bersama.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','individual',id,'Bagian Layanan Responsif — Konseling Individu, hlm. 13–15','Dipertimbangkan setelah klarifikasi bila kebutuhan bersifat individual dan memerlukan ruang privat.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','group_counseling',id,'Bagian Layanan Responsif — Konseling Kelompok, hlm. 13–15','Dipertimbangkan setelah klarifikasi bila kebutuhan serupa aman dan tepat diproses dalam kelompok.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','crisis_counseling',id,'Bagian Layanan Responsif — kondisi darurat/konseling krisis, hlm. 13–15','Hanya dipertimbangkan bila Guru BK mengonfirmasi adanya kondisi krisis/darurat dan memiliki kompetensi serta SOP yang sesuai.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','planning',id,'Bagian Peminatan dan Perencanaan Individual, hlm. 10–12','Dipertimbangkan untuk kebutuhan peminatan, pilihan belajar, studi lanjut, karier, dan rencana transisi.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','consultation',id,'Bagian Peminatan/Perencanaan Individual dan Responsif, hlm. 10–15','Dipertimbangkan ketika keputusan/dukungan memerlukan pertukaran informasi profesional dengan pihak yang relevan.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','collaboration',id,'Bagian Peminatan/Perencanaan Individual, Responsif, dan kemitraan, hlm. 10–15','Dipertimbangkan ketika dukungan melibatkan wali kelas, guru, orang tua, pimpinan, kurikulum, atau mitra lain.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','mediation',id,'Bagian Layanan Responsif — mediasi dan kolaborasi, hlm. 13–15','Dipertimbangkan hanya setelah konflik terkonfirmasi dan mediasi dinilai aman, sukarela, serta sesuai konteks.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','referral_external',id,'Bagian Layanan Responsif — alih penanganan/rujukan, hlm. 13–15','Dipertimbangkan setelah analisis kebutuhan menunjukkan perlunya keahlian/layanan di luar sekolah atau penanganan lebih khusus.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_guideline_traces(profile_code,service_code,source_id,locator,trace_claim,source_tier,sort_order,active) SELECT 'SMP_MTS','system_support',id,'Bagian Dukungan Sistem, hlm. 15 dst.','Digunakan pada level program/sistem, bukan dipilih sebagai layanan kasus individual.','official_guidance',10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
DELETE FROM bk_need_catalog WHERE profile_code='SMP_MTS';
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','general_clarification','Klarifikasi kebutuhan siswa','Umum','Kebutuhan belum cukup spesifik untuk menentukan bentuk layanan.','Apa yang sebenarnya sedang dialami siswa, sejak kapan, di konteks mana, dan dampaknya apa?','Jangan memilih layanan khusus sebelum konteks minimum terkonfirmasi.',10,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','clarify_personal_need','Klarifikasi kebutuhan pribadi','Pribadi','Perlu memahami pengalaman, hambatan, kekuatan, dan dukungan pribadi siswa.','Apa pengalaman/hal pribadi yang paling membutuhkan dukungan, dan bagaimana dampaknya bagi siswa?','Hindari label klinis; fokus pada kebutuhan fungsional dan dukungan.',20,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','emotional_regulation_support','Dukungan pengelolaan emosi','Pribadi/Sosial','Perlu mengeksplorasi pola emosi, pemicu, strategi yang sudah digunakan, dan dukungan yang tersedia.','Kapan emosi kuat muncul, apa pemicunya, apa yang biasanya dilakukan, dan apakah siswa merasa aman?','Hasil asesmen perkembangan hanya decision-support PREVALIDATION; keputusan memerlukan klarifikasi manusia.',30,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','peer_relation_clarification','Klarifikasi relasi teman sebaya','Sosial','Perlu memahami bentuk relasi, konflik, batas, isolasi, dukungan teman, dan konteks sekolah.','Apa yang terjadi dalam relasi/pertemanan, siapa yang terlibat, seberapa sering, dan apa dampaknya?','Jangan melakukan mediasi sebelum konflik terkonfirmasi dan keamanan dinilai.',40,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','conflict_resolution_support','Dukungan penyelesaian konflik','Sosial','Konflik yang terkonfirmasi memerlukan pilihan penyelesaian yang aman dan proporsional.','Apakah kedua pihak memahami masalah, bersedia berdialog, dan aman untuk proses mediasi?','Jika ada risiko keselamatan/ketimpangan kuasa serius, prioritaskan perlindungan dan SOP, bukan mediasi.',50,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','learning_support_clarification','Klarifikasi kebutuhan belajar','Belajar','Perlu membedakan faktor strategi belajar, instruksi, motivasi, beban, lingkungan, atau kebutuhan dukungan lain.','Apa perubahan belajar yang terjadi, di mata pelajaran/konteks mana, sejak kapan, dan faktor apa yang mungkin berperan?','Data nilai/tugas adalah data pendukung, bukan diagnosis kemampuan.',60,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','attendance_context_clarification','Klarifikasi konteks kehadiran','Belajar/Pribadi','Perlu memahami penyebab dan dampak perubahan kehadiran.','Apakah penurunan kehadiran terkait kesehatan, keluarga, sekolah, motivasi, relasi, akses, atau faktor lain?','Persentase kehadiran tidak boleh ditafsirkan sebagai kondisi psikologis.',70,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','career_planning_support','Dukungan perencanaan studi/karier','Karier','Perlu membantu siswa mengeksplorasi pilihan, informasi, persyaratan, alternatif, dan langkah realistis.','Apa tujuan sementara siswa, informasi apa yang sudah dimiliki, alternatif apa yang dipertimbangkan, dan dukungan apa yang dibutuhkan?','EXOLINK tidak menempatkan siswa otomatis pada jurusan/mapel/karier.',80,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','vocational_transition_support','Dukungan transisi vokasional','Karier','Perlu mendukung rencana PKL, kerja, wirausaha, sertifikasi, atau studi lanjut pada konteks SMK.','Transisi apa yang direncanakan, kesiapan apa yang sudah ada, dan dukungan apa yang masih dibutuhkan?','Gunakan prosedur sekolah/mitra industri yang berlaku; bukan keputusan otomatis aplikasi.',90,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','safety_response_clarification','Klarifikasi keselamatan/kenyamanan','Pribadi/Sosial','Perlu menentukan apakah ada kebutuhan perlindungan, bantuan segera, atau SOP keselamatan yang harus diaktifkan.','Apakah siswa merasa aman sekarang, apakah ada ancaman/kejadian yang memerlukan respons segera, dan siapa yang perlu dilibatkan sesuai SOP?','Urgensi tidak menunggu konvergensi evidence; aplikasi tidak membuat diagnosis atau tindakan otomatis.',100,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','external_professional_support','Kebutuhan dukungan profesional eksternal','Pribadi/Sosial/Belajar','Perlu menilai apakah kebutuhan berada di luar kompetensi/kewenangan sekolah.','Apakah kebutuhan memerlukan psikolog, psikiater, dokter, terapis, atau layanan profesional lain sesuai hasil review?','Rujukan diputuskan manusia sesuai SOP, kebutuhan, kewenangan, dan persetujuan yang relevan.',110,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','group_preventive_development','Kebutuhan perkembangan/preventif kelompok','Pribadi/Sosial/Belajar/Karier','Pola kebutuhan tampak pada beberapa siswa dan lebih tepat ditangani melalui program perkembangan/preventif.','Apakah tema ini cukup umum pada kelas/kelompok dan aman dibahas sebagai layanan perkembangan?','Jangan mengganti kebutuhan individual/rahasia dengan layanan kelompok.',120,1);
INSERT INTO bk_need_catalog(profile_code,need_code,label,bk_domain,description,clarification_prompt,decision_boundary,sort_order,active) VALUES('SMP_MTS','family_school_coordination','Koordinasi keluarga-sekolah','Pribadi/Sosial/Belajar','Perlu menyelaraskan dukungan antara siswa, sekolah, dan keluarga.','Informasi minimum apa yang perlu dibahas dengan keluarga/pihak sekolah untuk mendukung siswa?','Jaga kerahasiaan; hanya bagikan informasi yang relevan sesuai kewenangan.',130,1);
DELETE FROM evidence_theme_need_mappings WHERE profile_code='SMP_MTS';
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','personal_support','clarify_personal_need','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,1,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','peer_relations','peer_relation_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,2,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','peer_relations','conflict_resolution_support','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,3,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','learning_participation','learning_support_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,4,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','learning_participation','group_preventive_development','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,5,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','attendance_participation','attendance_context_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,6,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','attendance_participation','family_school_coordination','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,7,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','career_planning','career_planning_support','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,8,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','vocational_transition','vocational_transition_support','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,9,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','safety_comfort','safety_response_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,10,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','safety_comfort','external_professional_support','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,11,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','needs_clarification','general_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,12,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a03','emotional_regulation_support','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,13,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a04','learning_support_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,14,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a09','career_planning_support','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,15,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a10','peer_relation_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,16,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a11','clarify_personal_need','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,17,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a01','general_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,18,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a02','general_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,19,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a05','general_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,20,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a06','general_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,21,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a07','general_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,22,1);
INSERT INTO evidence_theme_need_mappings(profile_code,theme_code,need_code,rationale,requires_confirmation,sort_order,active) VALUES('SMP_MTS','assessment_aspect_a08','general_clarification','Tema evidence mengarahkan Guru BK untuk mengklarifikasi kebutuhan ini; bukan keputusan layanan otomatis.',1,23,1);
DELETE FROM need_service_mappings WHERE profile_code='SMP_MTS';
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','general_clarification','individual','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',1,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','general_clarification','consultation','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Diperlukan pertukaran informasi/masukan dengan pihak relevan untuk membantu keputusan dukungan.','Bagikan hanya informasi minimum yang relevan dan sesuai kewenangan.',2,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','general_clarification','basic_classical','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan bersifat perkembangan/preventif dan cukup umum pada kelompok/kelas.','Jangan gunakan untuk menggantikan layanan individual pada kebutuhan sensitif/urgent.',3,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','clarify_personal_need','individual','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',4,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','clarify_personal_need','consultation','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Diperlukan pertukaran informasi/masukan dengan pihak relevan untuk membantu keputusan dukungan.','Bagikan hanya informasi minimum yang relevan dan sesuai kewenangan.',5,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','clarify_personal_need','collaboration','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',6,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','clarify_personal_need','referral_external','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan berada di luar kompetensi/kewenangan sekolah atau memerlukan keahlian/layanan khusus.','Rujukan tidak menghapus tanggung jawab follow-up sekolah sesuai kewenangan.',7,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','emotional_regulation_support','individual','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',8,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','emotional_regulation_support','group_counseling','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Ada beberapa siswa dengan kebutuhan serupa, kelompok aman, dan peserta sesuai untuk proses konseling kelompok.','Jangan gunakan pada krisis/risiko keselamatan atau ketika kerahasiaan kelompok tidak memadai.',9,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','peer_relation_clarification','individual','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',10,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','peer_relation_clarification','group_guidance','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Tema aman dibahas bersama dan tujuan utamanya pengembangan/eksplorasi, bukan pengungkapan rahasia.','Jaga privasi; jangan memaksa siswa membahas masalah pribadi di kelompok.',11,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','peer_relation_clarification','group_counseling','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Ada beberapa siswa dengan kebutuhan serupa, kelompok aman, dan peserta sesuai untuk proses konseling kelompok.','Jangan gunakan pada krisis/risiko keselamatan atau ketika kerahasiaan kelompok tidak memadai.',12,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','peer_relation_clarification','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',13,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','conflict_resolution_support','mediation','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Konflik terkonfirmasi, pihak relatif aman untuk berdialog, dan mediator netral tersedia.','Jangan lakukan bila ada risiko keselamatan, kekerasan, atau ketimpangan kuasa yang membuat proses tidak aman.',14,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','conflict_resolution_support','individual','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',15,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','conflict_resolution_support','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',16,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','conflict_resolution_support','referral_external','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan berada di luar kompetensi/kewenangan sekolah atau memerlukan keahlian/layanan khusus.','Rujukan tidak menghapus tanggung jawab follow-up sekolah sesuai kewenangan.',17,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','learning_support_clarification','consultation','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Diperlukan pertukaran informasi/masukan dengan pihak relevan untuk membantu keputusan dukungan.','Bagikan hanya informasi minimum yang relevan dan sesuai kewenangan.',18,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','learning_support_clarification','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',19,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','learning_support_clarification','individual','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',20,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','learning_support_clarification','basic_classical','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan bersifat perkembangan/preventif dan cukup umum pada kelompok/kelas.','Jangan gunakan untuk menggantikan layanan individual pada kebutuhan sensitif/urgent.',21,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','learning_support_clarification','group_guidance','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Tema aman dibahas bersama dan tujuan utamanya pengembangan/eksplorasi, bukan pengungkapan rahasia.','Jaga privasi; jangan memaksa siswa membahas masalah pribadi di kelompok.',22,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','attendance_context_clarification','consultation','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Diperlukan pertukaran informasi/masukan dengan pihak relevan untuk membantu keputusan dukungan.','Bagikan hanya informasi minimum yang relevan dan sesuai kewenangan.',23,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','attendance_context_clarification','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',24,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','attendance_context_clarification','individual','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',25,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','career_planning_support','planning','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Kebutuhan berkaitan pilihan/rencana belajar, studi lanjut, karier, atau transisi.','Tidak menghasilkan penempatan otomatis; keputusan mengikuti prosedur sekolah dan pilihan siswa.',26,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','career_planning_support','consultation','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Diperlukan pertukaran informasi/masukan dengan pihak relevan untuk membantu keputusan dukungan.','Bagikan hanya informasi minimum yang relevan dan sesuai kewenangan.',27,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','career_planning_support','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',28,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','career_planning_support','group_guidance','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Tema aman dibahas bersama dan tujuan utamanya pengembangan/eksplorasi, bukan pengungkapan rahasia.','Jaga privasi; jangan memaksa siswa membahas masalah pribadi di kelompok.',29,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','vocational_transition_support','planning','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Kebutuhan berkaitan pilihan/rencana belajar, studi lanjut, karier, atau transisi.','Tidak menghasilkan penempatan otomatis; keputusan mengikuti prosedur sekolah dan pilihan siswa.',30,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','vocational_transition_support','consultation','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Diperlukan pertukaran informasi/masukan dengan pihak relevan untuk membantu keputusan dukungan.','Bagikan hanya informasi minimum yang relevan dan sesuai kewenangan.',31,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','vocational_transition_support','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',32,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','safety_response_clarification','individual','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan individual terkonfirmasi dan memerlukan ruang privat/reflektif.','Bukan diagnosis klinis; lakukan rujukan bila di luar kompetensi.',33,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','safety_response_clarification','crisis_counseling','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kondisi krisis/darurat terkonfirmasi, petugas kompeten, dan SOP keselamatan aktif.','Tidak dipicu otomatis oleh sistem; ikuti SOP keselamatan dan rujukan.',34,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','safety_response_clarification','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',35,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','safety_response_clarification','mediation','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Konflik terkonfirmasi, pihak relatif aman untuk berdialog, dan mediator netral tersedia.','Jangan lakukan bila ada risiko keselamatan, kekerasan, atau ketimpangan kuasa yang membuat proses tidak aman.',36,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','safety_response_clarification','referral_external','conditional','Pilihan bersyarat; hanya relevan bila kondisi/prasyarat layanan terkonfirmasi.','Kebutuhan berada di luar kompetensi/kewenangan sekolah atau memerlukan keahlian/layanan khusus.','Rujukan tidak menghapus tanggung jawab follow-up sekolah sesuai kewenangan.',37,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','external_professional_support','referral_external','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Kebutuhan berada di luar kompetensi/kewenangan sekolah atau memerlukan keahlian/layanan khusus.','Rujukan tidak menghapus tanggung jawab follow-up sekolah sesuai kewenangan.',38,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','external_professional_support','collaboration','supporting','Pilihan pendukung untuk koordinasi/informasi; bukan pengganti layanan inti bila layanan inti diperlukan.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',39,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','group_preventive_development','basic_classical','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Kebutuhan bersifat perkembangan/preventif dan cukup umum pada kelompok/kelas.','Jangan gunakan untuk menggantikan layanan individual pada kebutuhan sensitif/urgent.',40,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','group_preventive_development','group_guidance','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Tema aman dibahas bersama dan tujuan utamanya pengembangan/eksplorasi, bukan pengungkapan rahasia.','Jaga privasi; jangan memaksa siswa membahas masalah pribadi di kelompok.',41,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','family_school_coordination','consultation','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Diperlukan pertukaran informasi/masukan dengan pihak relevan untuk membantu keputusan dukungan.','Bagikan hanya informasi minimum yang relevan dan sesuai kewenangan.',42,1);
INSERT INTO need_service_mappings(profile_code,need_code,service_code,mapping_role,rationale,precondition_text,boundary_text,sort_order,active) VALUES('SMP_MTS','family_school_coordination','collaboration','primary','Pilihan utama untuk dipertimbangkan setelah kebutuhan diklarifikasi dan sesuai konteks.','Dukungan memerlukan koordinasi lintas pihak dan pembagian peran yang jelas.','Koordinasi bukan alasan membuka catatan konseling rahasia secara luas.',43,1);
DELETE FROM service_outcome_indicators WHERE profile_code='SMP_MTS';
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','basic_classical','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','basic_classical','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','group_guidance','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','group_guidance','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','individual','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','individual','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','group_counseling','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','group_counseling','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','crisis_counseling','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','crisis_counseling','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','planning','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','planning','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','consultation','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','consultation','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','collaboration','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','collaboration','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','mediation','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','mediation','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','referral_external','review_completed','Hasil layanan ditinjau','process','Guru BK mencatat hasil singkat dan menentukan apakah perlu tindak lanjut.',100,1);
INSERT INTO service_outcome_indicators(profile_code,service_code,indicator_code,label,indicator_type,description,sort_order,active) VALUES('SMP_MTS','referral_external','followup_status','Tindak lanjut jelas','process','Status tindak lanjut tercatat: lanjut, selesai, ubah strategi, atau rujuk.',100,1);
DELETE FROM service_escalation_rules WHERE profile_code='SMP_MTS';
INSERT INTO service_escalation_rules(profile_code,trigger_code,title,condition_text,required_human_action,suggested_service_code,source_id,locator,auto_execute,sort_order,active) SELECT 'SMP_MTS','student_requests_help','Siswa meminta bantuan','Ada permintaan bantuan eksplisit dari siswa.','Guru BK melakukan review manusia tanpa menunggu skor asesmen atau konvergensi sumber.','individual',id,'Bagian Layanan Responsif, hlm. 13–15',0,10,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_escalation_rules(profile_code,trigger_code,title,condition_text,required_human_action,suggested_service_code,source_id,locator,auto_execute,sort_order,active) SELECT 'SMP_MTS','safety_or_crisis','Isu keselamatan atau kondisi krisis','Setelah klarifikasi manusia terdapat indikasi kebutuhan respons segera/keselamatan.','Aktifkan SOP sekolah yang relevan, nilai keselamatan, dan pertimbangkan konseling krisis/rujukan sesuai kompetensi.','crisis_counseling',id,'Bagian Layanan Responsif, hlm. 13–15',0,20,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
INSERT INTO service_escalation_rules(profile_code,trigger_code,title,condition_text,required_human_action,suggested_service_code,source_id,locator,auto_execute,sort_order,active) SELECT 'SMP_MTS','beyond_school_competence','Kebutuhan di luar kompetensi sekolah','Hasil review menunjukkan kebutuhan memerlukan profesional/layanan di luar kewenangan atau kompetensi sekolah.','Pertimbangkan rujukan/alih penanganan dan tetap lakukan follow-up sesuai kewenangan sekolah.','referral_external',id,'Bagian Layanan Responsif — alih penanganan/rujukan, hlm. 13–15',0,30,1 FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' LIMIT 1;
DELETE FROM evidence_service_mappings WHERE profile_code='SMP_MTS';
DELETE FROM bk_review_question_catalog WHERE profile_code='SMP_MTS';
INSERT INTO bk_review_question_catalog(profile_code,question_code,label,sort_order,active) VALUES('SMP_MTS','situation','Apa yang sebenarnya sedang terjadi menurut siswa?',10,1);
INSERT INTO bk_review_question_catalog(profile_code,question_code,label,sort_order,active) VALUES('SMP_MTS','time_context','Sejak kapan hal ini terjadi dan di mana biasanya terjadi?',20,1);
INSERT INTO bk_review_question_catalog(profile_code,question_code,label,sort_order,active) VALUES('SMP_MTS','impact','Apa dampaknya pada belajar, kehadiran, relasi, atau keseharian?',30,1);
INSERT INTO bk_review_question_catalog(profile_code,question_code,label,sort_order,active) VALUES('SMP_MTS','safety','Apakah siswa merasa aman saat ini?',40,1);
INSERT INTO bk_review_question_catalog(profile_code,question_code,label,sort_order,active) VALUES('SMP_MTS','support','Siapa yang sudah mengetahui atau sudah membantu?',50,1);
INSERT INTO bk_review_question_catalog(profile_code,question_code,label,sort_order,active) VALUES('SMP_MTS','expected_help','Apa bantuan yang diharapkan siswa?',60,1);
DELETE FROM bk_service_components WHERE profile_code='SMP_MTS';
INSERT INTO bk_service_components(profile_code,component_code,label,when_considered,example_forms,sort_order,active) VALUES('SMP_MTS','basic','Layanan Dasar','Kebutuhan bersifat umum, preventif, atau dialami banyak siswa.','Bimbingan klasikal; bimbingan kelompok; kegiatan pengembangan.',10,1);
INSERT INTO bk_service_components(profile_code,component_code,label,when_considered,example_forms,sort_order,active) VALUES('SMP_MTS','individual_planning','Peminatan & Perencanaan Individual','Siswa perlu bantuan membuat atau meninjau pilihan belajar, studi lanjut, atau karier.','Perencanaan individual; bimbingan kelompok; konsultasi atau kolaborasi sesuai kebutuhan.',20,1);
INSERT INTO bk_service_components(profile_code,component_code,label,when_considered,example_forms,sort_order,active) VALUES('SMP_MTS','responsive','Layanan Responsif','Siswa sedang mengalami masalah atau membutuhkan bantuan yang lebih terarah.','Konseling individual; konseling kelompok; konseling krisis; mediasi; rujukan sesuai kebutuhan.',30,1);
INSERT INTO bk_service_components(profile_code,component_code,label,when_considered,example_forms,sort_order,active) VALUES('SMP_MTS','system_support','Dukungan Sistem','Penanganan memerlukan koordinasi, kemitraan, atau penguatan dukungan sekolah.','Konsultasi; kolaborasi; koordinasi sekolah dan mitra.',40,1);
UPDATE evidence_source_profiles SET usage_note='Data sekolah; perlu diketahui alasan dan konteks perubahan.' WHERE profile_code='SMP_MTS' AND source_type='rule';
UPDATE evidence_source_profiles SET usage_note='Laporan langsung siswa; beri ruang aman untuk klarifikasi.' WHERE profile_code='SMP_MTS' AND source_type='pulse';
UPDATE evidence_source_profiles SET usage_note='Informasi dari pihak sekolah; perlu dikonfirmasi bersama siswa.' WHERE profile_code='SMP_MTS' AND source_type='referral';
UPDATE evidence_source_profiles SET usage_note='Catatan kejadian; periksa konteks, keselamatan, dan tindak lanjut yang sudah dilakukan.' WHERE profile_code='SMP_MTS' AND source_type='incident';
UPDATE evidence_source_profiles SET usage_note='Bahan pendukung PREVALIDATION; bukan diagnosis dan bukan penentu layanan tunggal.' WHERE profile_code='SMP_MTS' AND source_type='assessment';
UPDATE evidence_source_profiles SET usage_note='Menilai kelayakan proses pengerjaan, bukan tingkat masalah siswa.' WHERE profile_code='SMP_MTS' AND source_type='assessment_quality';
UPDATE evidence_source_profiles SET usage_note='Catatan profesional; gunakan sesuai kewenangan dan kerahasiaan.' WHERE profile_code='SMP_MTS' AND source_type='service';
UPDATE evidence_source_profiles SET usage_note='Catatan perkembangan setelah layanan; bukan diagnosis.' WHERE profile_code='SMP_MTS' AND source_type='followup';
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('page.bk_program','Page Program BK','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO permissions(code,label,privacy_ceiling) VALUES('bk_program.manage','Manage Program BK','B') ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT INTO navigation_items(profile_code,code,page_slug,label,icon,sort_order,is_active)
SELECT code,'bk_program','bk_program','Program BK','clipboard',58,1 FROM school_level_profiles WHERE code IN ('SMP_MTS')
ON DUPLICATE KEY UPDATE page_slug=VALUES(page_slug),label=VALUES(label),icon=VALUES(icon),sort_order=VALUES(sort_order),is_active=1;
INSERT IGNORE INTO role_permissions(role_id,permission_id)
SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='page.bk_program' WHERE r.profile_code IN ('SMP_MTS') AND r.code IN ('counselor','curriculum','principal');
INSERT IGNORE INTO role_permissions(role_id,permission_id)
SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='bk_program.manage' WHERE r.profile_code IN ('SMP_MTS') AND r.code IN ('counselor');
INSERT IGNORE INTO role_navigation(role_id,navigation_item_id,sort_order)
SELECT r.id,n.id,58 FROM roles r JOIN navigation_items n ON n.profile_code=r.profile_code AND n.code='bk_program' WHERE r.profile_code IN ('SMP_MTS') AND r.code IN ('counselor','curriculum','principal');
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('POP_BK_SMK_2016','Panduan Operasional Penyelenggaraan Bimbingan dan Konseling SMK — kerangka profesional 2016','Ditjen GTK Kemendikbud (kerangka profesional)','professional_guidance','ARCHIVAL_GUIDANCE',NULL,'2026-09-22','Digunakan hanya sebagai referensi profesional/format alternatif untuk konteks sekolah SMK; bukan peraturan dan tidak otomatis berlaku sebagai format resmi MAK.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_sources(source_code,title,authority,source_type,source_status,official_url,verified_on,notes) VALUES('KMA_736_2026','KMA No. 736 Tahun 2026 — dokumen Kementerian Agama yang terdapat pada corpus terkontrol','Kementerian Agama','regulation','IDENTITY_VERIFIED_APPLICABILITY_OPEN',NULL,'2026-09-22','Identitas berkas diverifikasi dari corpus pengguna. Applicability terhadap workflow BK siswa belum ditetapkan tanpa requirement-level review; tidak dijadikan aturan runtime otomatis.') ON DUPLICATE KEY UPDATE title=VALUES(title),authority=VALUES(authority),source_type=VALUES(source_type),source_status=VALUES(source_status),verified_on=VALUES(verified_on),notes=VALUES(notes);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'BK111_2014_PDF','Permendikbud_111_2014.pdf','2f40bb7cfabd41156fead6740b9b290572dbf0055d029bf54174d6ba858ec48e',487155,45,'user_provided_controlled_copy','https://drive.google.com/file/d/1bglDWJ9nNTMq6UqgIYw7PeZJmZRnxBe4/view','verified','verified_current_2026-09-21','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='BK111_2014' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'POP_BK_SMP_2016_PDF','POP_BK_SMP_2016.pdf','0b9d1f1fa7628a2de7aa0c5fa5cf706f3080da6d347a05307ac36f4aab732049',1247611,144,'user_provided_controlled_copy','https://drive.google.com/file/d/1zLALLClgOrVWJcFsjXcqkJlLdyMy5UDZ/view','verified','guidance_not_legislation','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'POP_BK_SMA_2016_PDF','POP_BK_SMA_2016.pdf','2122440009c70dc596286ce734ef0e2fc38b380c796067c50e1f29b88dcb8409',1489578,157,'user_provided_controlled_copy','https://drive.google.com/file/d/1gHwzVZkuxRB6pnZA3tvYu641Sta_WvlG/view','verified','guidance_not_legislation','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='POP_BK_SMA_2016' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'POP_BK_SMK_2016_PDF','POP_BK_SMK_2016.pdf','461d68c60ef8cea92094e1d96bad98b91385f4c74e5c0e6eff69c41f11698cba',2323711,179,'user_provided_controlled_copy','https://akhmadsudrajat.wordpress.com/wp-content/uploads/2017/03/4-panduan-bk-smk-2016ditjen-gtk-revisi-final.pdf','verified','guidance_not_legislation','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='POP_BK_SMK_2016' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'BK_IMPLEMENTATION_GUIDE_2022_PDF','Panduan_Implementasi_BK.pdf','da2a81ef221cf38972d45c5114df30ba8093d7a4284209b06ef77faa7543195d',11039276,92,'user_provided_controlled_copy','https://repositori.kemendikdasmen.go.id/36478/','verified','official_guidance_2022','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'KMA_1503_2025_PDF','KMA_1503_2025.pdf','bd9d15faa99f0627577ce51a7ba8736dbac960b86c097ef792d56e307663e9cf',14061054,72,'user_provided_controlled_copy',NULL,'verified','amendment_current_status_verified_2026-09-21','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='KMA_450_2024_1503_2025' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'KMA_450_2024_PDF','KMA_450_2024.pdf','250715bc58f445bad33656005e00de55abaa38c388a1ae3cbffa7f6cb13190ca',19438775,37,'user_provided_controlled_copy',NULL,'verified','read_with_KMA_1503_2025_amendment','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='KMA_450_2024_1503_2025' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'KMA_736_2026_PDF','KMA_736_2026.pdf','817a8fd7c818fb3a80ec19a255ff4a0c076f44ac42492646292fd980c8a76985',12167635,18,'user_provided_controlled_copy',NULL,'verified','identity_verified_applicability_open','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='KMA_736_2026' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'PERMENDIKDASMEN_6_2026_PDF','Permendikdasmen_6_2026.pdf','02ba7b354ada6f3f74055eaed9e588587ae4f2706a7893930cca70dbed0d6b80',1403107,20,'user_provided_controlled_copy','https://peraturan.bpk.go.id/Details/345185/permendikdasmen-no-6-tahun-2026','verified','verified_current_2026-09-21','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='BSAN_6_2026' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'PERMENDIKDASMEN_12_2026_PDF','Permendikdasmen_12_2026.pdf','d59d03d61dd818c4974de9bc4a5868467bea71a3568159239ad0d5443d87fb24',210177,10,'user_provided_controlled_copy','https://peraturan.bpk.go.id/Details/350144/permendikdasmen-no-12-tahun-2026','verified','verified_current_2026-09-21','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='MPLS_12_2026' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO regulatory_source_artifacts(source_id,artifact_code,file_name,sha256,file_bytes,page_count,provenance_type,provenance_url,identity_status,legal_currency_status,verified_on,is_primary,notes) SELECT id,'SMA_ELECTIVE_GUIDE_2024_PDF','Panduan_Mapel_Pilihan_2024.pdf','82effa05127d9e358fdad7f5e99743b13e6b850f18c03ace781a39f4a6d8721c',2504568,70,'user_provided_controlled_copy','https://kurikulum.kemendikdasmen.go.id/file/1732515135_manage_file.pdf','verified','official_guidance_revision_2024','2026-09-22',1,'Controlled source artifact; bytes are not bundled into application package.' FROM regulatory_sources WHERE source_code='SMA_ELECTIVE_GUIDE_2024' ON DUPLICATE KEY UPDATE file_name=VALUES(file_name),sha256=VALUES(sha256),file_bytes=VALUES(file_bytes),page_count=VALUES(page_count),provenance_type=VALUES(provenance_type),provenance_url=VALUES(provenance_url),identity_status='verified',legal_currency_status=VALUES(legal_currency_status),verified_on=VALUES(verified_on);
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,1,'SMP_MTS_POP_APP_01','RPL Konseling Individual',106,106,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','303f52e78558183f2178966b077c77fd2ed777e18c3201a26af4bf4b53f2ad9d',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,2,'SMP_MTS_POP_APP_02','Laporan Konseling Individual',107,107,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','a1ee71d8e9b7cfdc290c31eb4d194e54e37feca4360f741fdcaeb0994a51ac20',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,3,'SMP_MTS_POP_APP_03','Kepuasan Konseling Individual',108,108,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','b5cc0ce6bf60faf23b975ae64324f70c83d3dc776cea9f8dab40c6b0dc198dea',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,4,'SMP_MTS_POP_APP_04','RPL Konseling Kelompok',109,109,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','bbd891f18940ad8208433d6918b39e4811b058c8b8071be0deb55f660bbc13f2',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,5,'SMP_MTS_POP_APP_05','Laporan Konseling Kelompok',110,110,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','b27bac7544324be70159dbb49d1d3fabff86605c40381b209b1102e758b049d9',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,6,'SMP_MTS_POP_APP_06','Kepuasan Konseling Kelompok',111,111,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','eca53afff5591d08cce2a738567f29ca2904e226caaf4ded9838b3e0bc97e745',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,7,'SMP_MTS_POP_APP_07','RPL Bimbingan Kelompok',112,114,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','f8195057938e21d6dc8e4c31aa8e2c84b968dce92c842003993596b623d90c2f',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,8,'SMP_MTS_POP_APP_08','Laporan Bimbingan Kelompok',115,115,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','1f97c1104b8b173f4b918220834ce2c86801fd45427bfdd8d2c5cfc29752e69e',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,9,'SMP_MTS_POP_APP_09','RPL Bimbingan Klasikal',116,117,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','280e72911bdb93f35a95b332929c25f02a7f428406c8c44037bbefeca39b6a58',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,10,'SMP_MTS_POP_APP_10','Laporan Bimbingan Klasikal',118,118,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','e23b9bd99716853aa5a9d2db8973f2c08abbe825028d1e8a9d66fbd11528e0e2',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,11,'SMP_MTS_POP_APP_11','RPL Bimbingan Kelas Besar/Lintas Kelas',119,120,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','3019f569de57d0dabbf120805e1ed64b2c088f1a4b89e7afb555cb3a69259806',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,12,'SMP_MTS_POP_APP_12','Laporan Bimbingan Kelas Besar/Lintas Kelas',121,121,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','19974d0e5a1f00f0528a3e32f4952d90a0cf3edc2bbdf9cf17e4a66c34d4754b',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,13,'SMP_MTS_POP_APP_13','Laporan Konsultasi',122,122,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','b0aadef4b9c3c55c261b4e355f0a610ead091544e7c7d87fc5c9e7a19b9acd2b',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,14,'SMP_MTS_POP_APP_14','Laporan Kolaborasi',123,123,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','839697c2696122637a5fa91bfa2e6c1d7672578d13f3032ab9107794ee100e55',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,15,'SMP_MTS_POP_APP_15','Rencana Alih Tangan Kasus/Referral',124,124,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','535a922081e45cb138c2e388bfaa9d0c4c292ce9bd34d0a133fb15b750cc8def',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,16,'SMP_MTS_POP_APP_16','Laporan Alih Tangan Kasus/Referral',125,125,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','6dac2f98edc906471ead146cbbc92db1216b457ba6bfa0c2f7e24cc026e970cf',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,17,'SMP_MTS_POP_APP_17','Laporan Kunjungan Rumah',126,126,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','a3285b8c0da2bb57e281cc25ef3ff4efc40eb220e3db8650e9607774d9bc219b',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,18,'SMP_MTS_POP_APP_18','Laporan Advokasi',127,127,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','4b0931d35b082af0fe98c823e8bf1e9bbb2fe1a454b7ec6cf120fad8c6fce52d',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,19,'SMP_MTS_POP_APP_19','Rencana Pelaksanaan Konferensi Kasus',128,128,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','4c28c054308152c7a2fa162e07bcec647b1ca6a102bac6ffd6a2286c22220d5f',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,20,'SMP_MTS_POP_APP_20','Laporan Konferensi Kasus',129,129,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','80e9bf2b4b4ad982fe4990edae44411754def38e491b7e940ebd4af34f01a549',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,21,'SMP_MTS_POP_APP_21','Rekomendasi/Peminatan',130,131,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','7753d1316ba936f2793ddde76278d87e9449f3082f5f1adb075add36e2db50a1',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,22,'SMP_MTS_POP_APP_22','Laporan Kegiatan Tambahan Guru BK',132,132,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','378d9b666f50606ae2df659da3a3d9aa92e622cba0ef7248af9649851aa36b07',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,23,'SMP_MTS_POP_APP_23','Laporan Pengembangan Keprofesionalan',133,133,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','c444a78ea3dcbe44bf346dd783970dea9409e637d75f306dc4d8957dcc840325',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,24,'SMP_MTS_POP_APP_24','Laporan Karya Ilmiah dan Inovatif',134,134,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','5eb54dcf3e955199494b740cf51547b0e8eb7ff64e354f96b8fed206a0450f66',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,25,'SMP_MTS_POP_APP_25','Laporan Keikutsertaan Organisasi Profesi',135,135,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','546994615e1525ce4834354e4d68aa43ccc8127b6b7a272d8f359564928d9e41',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,26,'SMP_MTS_POP_APP_26','Angket Evaluasi Hasil Layanan BK',136,136,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','08cf6e07900af7a356f34a9ce0e3fca0399a3c97666b7553a4abab1bde12c91e',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,27,'SMP_MTS_POP_APP_27','Instrumen Observasi Proses Layanan BK',137,137,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','1de9b548b1222003fec894e4dfc0f2eb3945b25b09bd4be71ed8bfa4ba12fe2a',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,28,'SMP_MTS_POP_APP_28','Skala Asesmen Layanan BK Menurut Siswa',138,138,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','728ba421b71e9ff562a011bb9adcfa5f0003b2bd11f93725006376faef417a89',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,29,'SMP_MTS_POP_APP_29','Skala Kepuasan Orang Tua',139,139,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','7b260d80f163009cd9dde8c497d33ca6c6a9a7421b8869ed2de7c67e48c5aab7',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,30,'SMP_MTS_POP_APP_30','Skala Kepuasan Guru dan Kepala Sekolah',140,140,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','c30d5bc1465deaa8dcbb14b4f8944ea929078a78f17d712fa4693950fc3b6056',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,31,'SMP_MTS_POP_APP_31','Rangkuman Evaluasi Pelaksanaan Program',141,141,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','8284a2726bc23b5ce3021f3f7c3ce6b69450a8161cb0477e0366edb307750d17',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,32,'SMP_MTS_POP_APP_32','Sistematika Laporan Pelaksanaan Program BK',142,142,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','f94b11a31f4209e86ae4da861b38b88c483aba93e3b7f99a5e02c40b30cd9c66',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,33,'SMP_MTS_POP_APP_33','Jurnal Harian Kegiatan BK',143,143,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','4778cc319875791f11e1c4320ea1118076c88c6460cf3012e7a850ecd42f4a7b',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO guidance_document_templates(profile_code,institution_context,source_id,artifact_id,appendix_no,template_code,title,pdf_page_start,pdf_page_end,template_nature,usage_scope,source_excerpt_hash,active) SELECT 'SMP_MTS','school',rs.id,ra.id,34,'SMP_MTS_POP_APP_34','Equivalensi Kegiatan BK',144,144,'non_binding_example','Referensi operasional; dapat disesuaikan. Bukan format hukum wajib.','cc4585b12cd5b8d8ca656d9846378bdb26dc4f03bc737769353d654c7ccaaa78',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE template_code=VALUES(template_code),title=VALUES(title),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),template_nature='non_binding_example',usage_scope=VALUES(usage_scope),source_excerpt_hash=VALUES(source_excerpt_hash),active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'BK_COMPONENTS_4',NULL,'all',rs.id,ra.id,'Panduan Implementasi BK, komponen layanan','13','14','official_guidance','Empat komponen layanan: layanan dasar, peminatan dan perencanaan individual, layanan responsif, dan dukungan sistem.','service_component + bk_program operational plan','Guru BK memilih komponen sesuai kebutuhan dan konteks.','Rencana layanan/program dan histori pelaksanaan.','test_guideline_service_layer.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'BK_NEEDS_ANALYSIS',NULL,'all',rs.id,ra.id,'Panduan Implementasi BK, pemetaan dan analisis kebutuhan','15','16','official_guidance','Pemetaan kebutuhan dilanjutkan analisis kebutuhan sebagai dasar perencanaan layanan.','evidence review + bk_program_need_summary','Guru BK memverifikasi konteks dan prioritas kebutuhan.','Ringkasan kebutuhan yang dapat ditelusuri ke evidence.','test_regulatory_first_program_v280.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'BK_PLAN_ANNUAL_OPERATIONAL',NULL,'all',rs.id,ra.id,'Panduan Implementasi BK, perencanaan layanan','16','16','official_guidance','Perencanaan layanan dibuat tahunan dan diturunkan menjadi perencanaan operasional sesuai kebutuhan.','bk_programs + bk_operational_plans','Guru BK menyusun dan mengesahkan rencana sesuai kewenangan.','Program tahunan/semester dan rencana operasional.','test_bk_program_backbone_v270.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'BK_CLOSED_LOOP',NULL,'all',rs.id,ra.id,'Panduan Implementasi BK, Gambar 2.1 siklus layanan','14','14','official_guidance','Layanan berjalan sebagai siklus pemetaan/analisis kebutuhan, perencanaan, pelaksanaan, evaluasi/refleksi, lalu kembali menjadi konteks kebutuhan berikutnya.','bk_program lifecycle','Guru BK melakukan human review pada tiap perubahan status penting.','Audit trail program → pelaksanaan → evaluasi → tindak lanjut.','test_bk_integrity_regression.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'BK_REFERRAL_FOLLOWUP',NULL,'all',rs.id,ra.id,'Panduan Implementasi BK, layanan rujukan dan tindak lanjut','20','20','official_guidance','Kebutuhan yang memerlukan profesional lain dapat dirujuk; setelah penanganan tetap diperlukan tindak lanjut oleh Guru BK/sekolah sesuai kewenangan.','referral + followups + service history','Petugas berwenang menilai kebutuhan rujukan; sistem tidak merujuk otomatis.','Rujukan, alasan, penanggung jawab, status tindak lanjut.','test_services_followup.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'BK_PRIVACY_CONFIDENTIALITY',NULL,'all',rs.id,ra.id,'Panduan Implementasi BK, privasi dan kerahasiaan','22','22','official_guidance','Privasi dan kerahasiaan peserta didik harus ditekankan dalam pelaksanaan layanan.','privacy class + RBAC + least privilege','Role hanya melihat data dalam cakupan kewenangannya.','Role-filtered reports, audit trail, Level-D isolation.','test_rbac_privacy.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'SMP_MTS_RPLBK_CLASSICAL_EXAMPLE','SMP_MTS','school',rs.id,ra.id,'POP BK Lampiran 9','116','117','example_template','Lampiran 9 memberikan alternatif contoh format RPL bimbingan klasikal; format dapat disesuaikan dan tidak diperlakukan sebagai formulir hukum wajib.','bk_rplbk','Guru BK meninjau/mengubah sebelum digunakan.','RPLBK versioned dengan source snapshot.','test_bk_program_backbone_v270.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'SMP_MTS_CLASSICAL_REPORT_EXAMPLE','SMP_MTS','school',rs.id,ra.id,'POP BK Lampiran 10','118','118','example_template','Lampiran 10 memberikan alternatif contoh laporan pelaksanaan bimbingan klasikal; format dapat disesuaikan.','bk_service_executions + report layer','Guru BK mencatat pelaksanaan aktual dan hasilnya.','Catatan pelaksanaan/laporan layanan.','test_bk_report_workflow_v261.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO regulatory_requirement_traces(requirement_code,profile_code,institution_context,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,binding_class,requirement_text,runtime_object,role_action,output_evidence,test_case_code,verification_status,active) SELECT 'SMP_MTS_PROGRAM_REPORT_SYSTEMATICS','SMP_MTS','school',rs.id,ra.id,'POP BK Lampiran 32','142','142','example_template','Lampiran 32 memberikan alternatif contoh sistematika laporan pelaksanaan program; dipakai sebagai referensi struktur, bukan kewajiban bentuk tunggal.','semester/annual report structure','Guru BK menyusun laporan; Kepala Sekolah membaca sesuai akses.','Laporan program semester/tahunan dan lampiran.','test_reports.php','verified',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE profile_code=VALUES(profile_code),institution_context=VALUES(institution_context),source_id=VALUES(source_id),artifact_id=VALUES(artifact_id),locator_label=VALUES(locator_label),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),binding_class=VALUES(binding_class),requirement_text=VALUES(requirement_text),runtime_object=VALUES(runtime_object),role_action=VALUES(role_action),output_evidence=VALUES(output_evidence),test_case_code=VALUES(test_case_code),verification_status='verified',active=1;
INSERT INTO report_guidance_traces(profile_code,institution_context,report_code,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,requirement_class,structure_json,note,active) SELECT 'SMP_MTS','school','semester',rs.id,ra.id,'POP BK Lampiran 32',142,142,'example_template','["Pendahuluan", "Pelaksanaan program", "Evaluasi dan tindak lanjut", "Lampiran"]','Referensi sistematika; tidak diklaim sebagai format hukum wajib.',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE artifact_id=VALUES(artifact_id),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),requirement_class='example_template',structure_json=VALUES(structure_json),note=VALUES(note),active=1;
INSERT INTO report_guidance_traces(profile_code,institution_context,report_code,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,requirement_class,structure_json,note,active) SELECT 'SMP_MTS','school','annual',rs.id,ra.id,'POP BK Lampiran 32',142,142,'example_template','["Pendahuluan", "Pelaksanaan program", "Evaluasi dan tindak lanjut", "Lampiran"]','Referensi sistematika; tidak diklaim sebagai format hukum wajib.',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='POP_BK_SMP_2016_PDF' WHERE rs.source_code='POP_BK_SMP_2016' ON DUPLICATE KEY UPDATE artifact_id=VALUES(artifact_id),pdf_page_start=VALUES(pdf_page_start),pdf_page_end=VALUES(pdf_page_end),requirement_class='example_template',structure_json=VALUES(structure_json),note=VALUES(note),active=1;
INSERT INTO report_guidance_traces(profile_code,institution_context,report_code,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,requirement_class,structure_json,note,active) SELECT 'SMP_MTS','madrasah','semester',rs.id,ra.id,'Panduan Implementasi BK — siklus layanan',14,22,'product_output','["Ringkasan kebutuhan", "Pelaksanaan program", "Evaluasi", "Tindak lanjut", "Lampiran"]','Struktur produk EXOLINK untuk konteks madrasah; tidak diklaim sebagai format resmi Kemenag. Overlay KMA tetap ditelusuri terpisah.',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE artifact_id=VALUES(artifact_id),requirement_class='product_output',structure_json=VALUES(structure_json),note=VALUES(note),active=1;
INSERT INTO report_guidance_traces(profile_code,institution_context,report_code,source_id,artifact_id,locator_label,pdf_page_start,pdf_page_end,requirement_class,structure_json,note,active) SELECT 'SMP_MTS','madrasah','annual',rs.id,ra.id,'Panduan Implementasi BK — siklus layanan',14,22,'product_output','["Ringkasan kebutuhan", "Pelaksanaan program", "Evaluasi", "Tindak lanjut", "Lampiran"]','Struktur produk EXOLINK untuk konteks madrasah; tidak diklaim sebagai format resmi Kemenag. Overlay KMA tetap ditelusuri terpisah.',1 FROM regulatory_sources rs LEFT JOIN regulatory_source_artifacts ra ON ra.source_id=rs.id AND ra.artifact_code='BK_IMPLEMENTATION_GUIDE_2022_PDF' WHERE rs.source_code='BK_IMPLEMENTATION_GUIDE_2022' ON DUPLICATE KEY UPDATE artifact_id=VALUES(artifact_id),requirement_class='product_output',structure_json=VALUES(structure_json),note=VALUES(note),active=1;
UPDATE monitoring_rules SET rule_kind='threshold',validation_status='requires_validation',active=0,source_ref='EXOLINK_G6_EMPIRICAL_VALIDATION_PENDING',limitation_text='Threshold student-priority belum tervalidasi secara empiris.' WHERE rule_code IN ('ATTENDANCE_REVIEW','ATTENDANCE_PRIORITY','TASK_COMPLETION_REVIEW','ACADEMIC_REVIEW');
UPDATE monitoring_rules SET rule_kind='explicit_event',validation_status='legal_locked',active=1,source_ref='BK responsive service / explicit human request',simulation_only=0,limitation_text='Routing review manusia; bukan klasifikasi risiko.' WHERE rule_code IN ('HELP_REQUEST','PKL_HELP_REQUEST','TRANSITION_HELP_REQUEST');
INSERT INTO permissions(code,label,privacy_ceiling) VALUES
('bsan.manage','Kelola temuan dan tindak lanjut Sekolah Aman & Nyaman','D'),
('report.publish','Terbitkan snapshot laporan BK','C')
ON DUPLICATE KEY UPDATE label=VALUES(label),privacy_ceiling=VALUES(privacy_ceiling);
INSERT IGNORE INTO role_permissions(role_id,permission_id)
SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='bsan.manage'
WHERE r.code IN ('counselor');
INSERT IGNORE INTO role_permissions(role_id,permission_id)
SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='report.publish'
WHERE r.code IN ('counselor');
INSERT INTO bk_evaluation_action_catalog(code,label,description_text,source_ref,sort_order) VALUES
('complete','Selesai','Tujuan layanan dinilai tercapai untuk siklus ini.','BK111_2014 + BK_GUIDE_2022',10),
('monitor','Pemantauan','Perlu pemantauan ulang sebelum penutupan.','BK111_2014 + BK_GUIDE_2022',20),
('continue','Lanjutkan layanan','Layanan lanjutan diperlukan.','BK111_2014 + BK_GUIDE_2022',30),
('revise','Perbaiki program/RPLBK','Rencana/program perlu disesuaikan dari hasil evaluasi.','BK111_2014 + BK_GUIDE_2022',40),
('responsive','Layanan responsif','Perlu layanan responsif setelah verifikasi Guru BK.','BK111_2014 + BK_GUIDE_2022',50),
('coordinate','Koordinasi pihak terkait','Perlu koordinasi pihak yang relevan dan berwenang.','BK111_2014 + BK_GUIDE_2022',60),
('refer','Rujuk/alih tangan','Perlu alih tangan/rujukan sesuai batas kewenangan.','BK111_2014 + BK_GUIDE_2022',70)
ON DUPLICATE KEY UPDATE label=VALUES(label),description_text=VALUES(description_text),source_ref=VALUES(source_ref),sort_order=VALUES(sort_order),active=1;
INSERT INTO bk_followup_action_catalog(code,label,description_text,source_ref,requires_due_date,sort_order)
SELECT code,label,description_text,source_ref,IF(code='complete',0,1),sort_order FROM bk_evaluation_action_catalog
WHERE 1=1
ON DUPLICATE KEY UPDATE label=VALUES(label),description_text=VALUES(description_text),source_ref=VALUES(source_ref),requires_due_date=VALUES(requires_due_date),sort_order=VALUES(sort_order),active=1;
INSERT INTO bsan_evidence_type_catalog(code,label,data_class,description_text,sort_order) VALUES
('environment_audit','Audit lingkungan/sarana','operational','Observasi sarana, lokasi, sanitasi, akses, area rawan dan kondisi lingkungan.',10),
('observation','Observasi guru/wali','student_restricted','Observasi terstruktur yang relevan dengan keamanan/kenyamanan.',20),
('incident_report','Laporan kejadian','sensitive_bk','Kejadian yang perlu diverifikasi dan ditangani.',30),
('complaint_aspiration','Pengaduan/aspirasi','confidential','Kanal pengaduan/aspirasi dengan pembatasan akses dan kerahasiaan.',40),
('student_checkin','Kabar siswa','student_restricted','Masukan singkat siswa sebagai bahan pertimbangan, bukan diagnosis.',50),
('attendance_change','Perubahan kehadiran sebagai signal','student_restricted','Perubahan data rutin hanya menjadi signal untuk verifikasi manusia, tanpa threshold arbitrer.',60),
('digital_safety','Evidence keamanan digital','sensitive_bk','Kejadian/temuan terkait keadaban dan keamanan digital.',70)
ON DUPLICATE KEY UPDATE label=VALUES(label),data_class=VALUES(data_class),description_text=VALUES(description_text),sort_order=VALUES(sort_order),active=1;
INSERT INTO data_classification_registry(data_code,label,class_level,class_code,description_text,source_ref) VALUES
('general_school','Informasi umum sekolah',0,'public','Informasi umum yang tidak memuat data pribadi sensitif.','UU_PDP_27_2022 + product privacy design'),
('school_operations','Data operasional sekolah',1,'operational','Data operasional yang diperlukan untuk penyelenggaraan layanan.','UU_PDP_27_2022 + least privilege'),
('student_restricted','Data siswa terbatas',2,'student_restricted','Data identitas/perkembangan siswa yang hanya dapat diakses sesuai tugas.','UU_PDP_27_2022'),
('sensitive_bk','Data BK sensitif',3,'sensitive_bk','Data layanan BK sensitif, termasuk temuan yang dapat merugikan bila dibuka tidak tepat.','UU_PDP_27_2022'),
('counselling_confidential','Catatan konseling/pengaduan rahasia',4,'confidential','Konten konseling, pengaduan rahasia, dan pilihan sosiometri mentah dibatasi ketat.','UU_PDP_27_2022 + professional confidentiality')
ON DUPLICATE KEY UPDATE label=VALUES(label),class_level=VALUES(class_level),class_code=VALUES(class_code),description_text=VALUES(description_text),source_ref=VALUES(source_ref),active=1;
INSERT INTO role_data_access(profile_code,role_code,data_code,access_mode,source_ref)
SELECT 'SMP_MTS','counselor','counselling_confidential','full','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','counselor','sensitive_bk','full','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','counselor','student_restricted','full','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','homeroom','counselling_confidential','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','homeroom','sensitive_bk','scoped','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','homeroom','student_restricted','scoped','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','principal','counselling_confidential','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','principal','sensitive_bk','aggregate','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','principal','student_restricted','aggregate','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','administrator','counselling_confidential','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','administrator','sensitive_bk','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','administrator','student_restricted','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','superadmin','counselling_confidential','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','superadmin','sensitive_bk','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','superadmin','student_restricted','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','student','counselling_confidential','scoped','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','student','sensitive_bk','scoped','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','student','student_restricted','scoped','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','parent','counselling_confidential','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','parent','sensitive_bk','none','UU PDP 27/2022 + least privilege product control' UNION ALL
SELECT 'SMP_MTS','parent','student_restricted','scoped','UU PDP 27/2022 + least privilege product control'
ON DUPLICATE KEY UPDATE access_mode=VALUES(access_mode),source_ref=VALUES(source_ref);
INSERT INTO bk_workflow_transition_catalog(object_type,from_state,to_state,label,source_ref) VALUES
('program','draft','active','Aktifkan Program BK','BK111_2014 + BK_GUIDE_2022'),
('program','active','completed','Tutup periode program','BK111_2014 + BK_GUIDE_2022'),
('operational','draft','scheduled','Jadwalkan kegiatan','BK_GUIDE_2022'),
('operational','scheduled','completed','Kegiatan selesai','BK_GUIDE_2022'),
('rplbk','draft','approved','Setujui RPLBK','BK_GUIDE_2022; human approval required'),
('rplbk','approved','used','Gunakan RPLBK pada pelaksanaan','BK_GUIDE_2022'),
('rplbk','approved','revised','Revisi RPLBK','BK_GUIDE_2022'),
('execution','planned','completed','Catat pelaksanaan selesai','BK_GUIDE_2022'),
('evaluation','pending','completed','Simpan evaluasi proses dan hasil','BK_GUIDE_2022'),
('followup','planned','active','Mulai tindak lanjut','BK111_2014 + BK_GUIDE_2022'),
('followup','planned','done','Selesaikan tindak lanjut langsung','BK111_2014 + BK_GUIDE_2022'),
('followup','active','done','Tutup setelah monitoring','BK111_2014 + BK_GUIDE_2022'),
('monitoring','due','completed','Catat monitoring ulang','BK111_2014 + BK_GUIDE_2022'),
('monitoring','completed','closed','Tutup siklus','BK111_2014 + BK_GUIDE_2022')
ON DUPLICATE KEY UPDATE label=VALUES(label),source_ref=VALUES(source_ref),active=1;
INSERT INTO bk_domain_catalog(profile_code,code,label,source_ref,sort_order)
SELECT 'SMP_MTS','personal','Pribadi','Permendikbud 111/2014 + Panduan Implementasi BK 2022',10 UNION ALL
SELECT 'SMP_MTS','social','Sosial','Permendikbud 111/2014 + Panduan Implementasi BK 2022',20 UNION ALL
SELECT 'SMP_MTS','learning','Belajar','Permendikbud 111/2014 + Panduan Implementasi BK 2022',30 UNION ALL
SELECT 'SMP_MTS','career','Karier','Permendikbud 111/2014 + Panduan Implementasi BK 2022',40
ON DUPLICATE KEY UPDATE label=VALUES(label),source_ref=VALUES(source_ref),sort_order=VALUES(sort_order),active=1;
INSERT INTO bk_component_catalog(profile_code,code,label,source_ref,sort_order)
SELECT 'SMP_MTS','basic','Layanan Dasar','Permendikbud 111/2014 + Panduan Implementasi BK 2022',10 UNION ALL
SELECT 'SMP_MTS','individual_planning','Peminatan dan Perencanaan Individual','Permendikbud 111/2014 + Panduan Implementasi BK 2022',20 UNION ALL
SELECT 'SMP_MTS','responsive','Layanan Responsif','Permendikbud 111/2014 + Panduan Implementasi BK 2022',30 UNION ALL
SELECT 'SMP_MTS','system_support','Dukungan Sistem','Permendikbud 111/2014 + Panduan Implementasi BK 2022',40
ON DUPLICATE KEY UPDATE label=VALUES(label),source_ref=VALUES(source_ref),sort_order=VALUES(sort_order),active=1;
INSERT INTO bk_rpl_template_registry(profile_code,institution_context,template_code,service_component,title_pattern,structure_json,source_ref,template_nature,template_version)
SELECT 'SMP_MTS','all','RPL_BASIC_V1','basic','RPLBK — {theme}',JSON_OBJECT('opening','Salam, apersepsi, tujuan, dan kesepakatan kegiatan.','core','Eksplorasi kebutuhan, kegiatan utama sesuai tema, diskusi/refleksi, dan langkah praktis.','closing','Ringkasan, refleksi, informasi dukungan, dan langkah berikutnya.','process_evaluation','Keterlaksanaan langkah kegiatan, partisipasi, dan respons peserta.','result_evaluation','Perubahan pemahaman/keterampilan/sikap yang relevan dengan tujuan layanan.','followup_plan','Monitoring atau layanan lanjutan ditentukan dari hasil evaluasi oleh Guru BK.'),'Permendikbud 111/2014 + Panduan Implementasi BK 2022; product-standard structure, not claimed as a mandatory government form','product_standard','2.9.0' UNION ALL
SELECT 'SMP_MTS','all','RPL_INDIVIDUAL_V1','individual_planning','RPLBK — {theme}',JSON_OBJECT('opening','Membangun kesepakatan tujuan perencanaan individual.','core','Meninjau informasi diri dan pilihan, membandingkan alternatif, menetapkan langkah yang realistis.','closing','Merangkum pilihan dan action plan siswa.','process_evaluation','Keterlibatan siswa dalam proses perencanaan.','result_evaluation','Kejelasan pilihan, alternatif, dan langkah selanjutnya.','followup_plan','Review perkembangan rencana pada waktu yang disepakati.'),'Permendikbud 111/2014 + Panduan Implementasi BK 2022; product-standard structure, not claimed as a mandatory government form','product_standard','2.9.0' UNION ALL
SELECT 'SMP_MTS','all','RPL_RESPONSIVE_V1','responsive','RPLBK — {theme}',JSON_OBJECT('opening','Konfirmasi kebutuhan dan batas layanan/kerahasiaan sesuai konteks.','core','Eksplorasi terarah, klarifikasi, strategi bantuan, dan kesepakatan langkah berikutnya.','closing','Ringkas kesepakatan dan dukungan lanjutan.','process_evaluation','Keterlaksanaan proses bantuan dan keterlibatan pihak relevan.','result_evaluation','Perubahan/kemajuan yang relevan dengan kebutuhan terverifikasi.','followup_plan','Monitoring, koordinasi, layanan lanjutan, atau rujukan bila diperlukan.'),'Permendikbud 111/2014 + Panduan Implementasi BK 2022; product-standard structure, not claimed as a mandatory government form','product_standard','2.9.0' UNION ALL
SELECT 'SMP_MTS','all','RPL_SYSTEM_V1','system_support','RPLBK — {theme}',JSON_OBJECT('opening','Menetapkan tujuan koordinasi/penguatan sistem.','core','Koordinasi, penyelarasan peran, penguatan prosedur/sumber daya, dan kesepakatan tindak lanjut.','closing','Merangkum peran, tenggat, dan bukti tindak lanjut.','process_evaluation','Keterlaksanaan koordinasi dan kejelasan peran.','result_evaluation','Perbaikan dukungan sistem/kolaborasi yang relevan.','followup_plan','Monitoring implementasi dan perbaikan bila diperlukan.'),'Permendikbud 111/2014 + Panduan Implementasi BK 2022; product-standard structure, not claimed as a mandatory government form','product_standard','2.9.0'
ON DUPLICATE KEY UPDATE title_pattern=VALUES(title_pattern),structure_json=VALUES(structure_json),source_ref=VALUES(source_ref),template_nature=VALUES(template_nature),active=1;
INSERT INTO bsan_domain_catalog(profile_code,institution_context,code,label,source_ref,binding_class,sort_order)
SELECT 'SMP_MTS','school','spiritual','Pemenuhan kebutuhan spiritual','Permendikdasmen 6/2026','binding',10 UNION ALL
SELECT 'SMP_MTS','school','physical','Pelindungan fisik','Permendikdasmen 6/2026','binding',20 UNION ALL
SELECT 'SMP_MTS','school','psychosocial','Kesejahteraan psikologis & keamanan sosiokultural','Permendikdasmen 6/2026','binding',30 UNION ALL
SELECT 'SMP_MTS','school','digital','Keadaban & keamanan digital','Permendikdasmen 6/2026','binding',40
ON DUPLICATE KEY UPDATE label=VALUES(label),source_ref=VALUES(source_ref),binding_class=VALUES(binding_class),sort_order=VALUES(sort_order),active=1;
INSERT INTO bsan_domain_catalog(profile_code,institution_context,code,label,source_ref,binding_class,sort_order)
SELECT 'SMP_MTS','madrasah','safe_child','Perlindungan anak & bebas kekerasan','Kemenag Gernas RANA 2026 official public program + KMA 1503/2025 context; normative domain crosswalk pending','product_framework_pending_crosswalk',10 UNION ALL
SELECT 'SMP_MTS','madrasah','safe_environment','Lingkungan belajar/ibadah aman, sehat & nyaman','Kemenag Gernas RANA 2026 official public program + KMA 1503/2025 context; normative domain crosswalk pending','product_framework_pending_crosswalk',20 UNION ALL
SELECT 'SMP_MTS','madrasah','inclusive_relation','Relasi inklusif & anti-perundungan','Kemenag Gernas RANA 2026 official public program + KMA 1503/2025 context; normative domain crosswalk pending','product_framework_pending_crosswalk',30 UNION ALL
SELECT 'SMP_MTS','madrasah','digital_safety','Keamanan ruang digital','Kemenag Gernas RANA 2026 official public program + KMA 1503/2025 context; normative domain crosswalk pending','product_framework_pending_crosswalk',40
ON DUPLICATE KEY UPDATE label=VALUES(label),source_ref=VALUES(source_ref),binding_class=VALUES(binding_class),sort_order=VALUES(sort_order),active=1;
INSERT INTO report_definitions(profile_code,code,title,audience_label,privacy_class,template_version,active,structure_json,source_ref,immutable_after_publish)
SELECT 'SMP_MTS','needs_analysis','Analisis Kebutuhan BK','Guru BK','C','2.9.0',1,JSON_ARRAY('Sumber evidence','Ringkasan kebutuhan','Bidang BK','Prioritas terverifikasi','Catatan keterbatasan'),'BK111_2014 + BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','bk_program','Program BK','Guru BK/Kepala','B','2.9.0',1,JSON_ARRAY('Rasional','Visi/Misi','Kebutuhan','Tujuan','Komponen','Bidang','Tema','Evaluasi','Pelaporan','Tindak lanjut'),'BK111_2014 + BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','operational_plan','Rencana Operasional BK','Guru BK','B','2.9.0',1,JSON_ARRAY('Bidang','Komponen','Strategi','Sasaran','Pelaksana','Waktu','Tema','Tujuan','Materi','Metode','Media','Evaluasi'),'BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','rplbk','RPLBK','Guru BK','B','2.9.0',1,JSON_ARRAY('Identitas layanan','Tujuan','Materi','Metode/Media','Pembukaan','Kegiatan inti','Penutup','Evaluasi proses','Evaluasi hasil','Tindak lanjut'),'BK_GUIDE_2022; product-standard output',1 UNION ALL
SELECT 'SMP_MTS','execution','Pelaksanaan Layanan BK','Guru BK','C','2.9.0',1,JSON_ARRAY('RPLBK','Tanggal','Sasaran/Peserta','Catatan proses'),'BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','evaluation_process','Evaluasi Proses','Guru BK','C','2.9.0',1,JSON_ARRAY('Pelaksanaan','Evaluasi proses','Catatan'),'BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','evaluation_result','Evaluasi Hasil','Guru BK','C','2.9.0',1,JSON_ARRAY('Pelaksanaan','Evaluasi hasil','Keputusan'),'BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','followup','Tindak Lanjut BK','Guru BK','C','2.9.0',1,JSON_ARRAY('Evaluasi','Langkah tindak lanjut','Tenggat','Status'),'BK111_2014 + BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','followup_monitoring','Monitoring Ulang','Guru BK','C','2.9.0',1,JSON_ARRAY('Tindak lanjut','Evidence yang diperiksa','Temuan','Outcome','Keputusan','Langkah berikutnya'),'BK111_2014 + BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','semester_v2','Laporan Semester BK','Guru BK/Kepala','B','2.9.0',1,JSON_ARRAY('Ringkasan kebutuhan','Program','Realisasi layanan','Evaluasi','Tindak lanjut','Monitoring','Lampiran'),'BK111_2014 + BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','annual_v2','Laporan Tahunan BK','Guru BK/Kepala','B','2.9.0',1,JSON_ARRAY('Ringkasan kebutuhan','Program tahunan','Realisasi','Evaluasi','Tindak lanjut','Monitoring','Perbaikan periode berikutnya','Lampiran'),'BK111_2014 + BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','bsan_v2','Sekolah Aman & Nyaman','Guru BK/Kepala','B','2.9.0',1,JSON_ARRAY('Domain','Evidence coverage','Temuan terverifikasi','Tindakan','Outstanding action','Monitoring'),'Permendikdasmen 6/2026 for school; Kemenag crosswalk controlled for madrasah',1 UNION ALL
SELECT 'SMP_MTS','student_progress_v2','Perkembangan Siswa','Guru BK / akses terbatas','C','2.9.0',1,JSON_ARRAY('Ringkasan perkembangan','Layanan','Tindak lanjut','Catatan akses'),'UU PDP 27/2022 + BK professional confidentiality',1 UNION ALL
SELECT 'SMP_MTS','class_summary_v2','Ringkasan Kelas/Angkatan','Guru BK/Kepala agregat','B','2.9.0',1,JSON_ARRAY('Jumlah siswa','Kebutuhan agregat','Layanan','Tindak lanjut'),'BK_GUIDE_2022',1 UNION ALL
SELECT 'SMP_MTS','specialization_planning','Peminatan & Perencanaan Individual','Guru BK/Kurikulum sesuai akses','C','2.9.0',1,JSON_ARRAY('Rencana siswa','Tinjauan','Tindak lanjut'),'BK111_2014 + curriculum context',1 UNION ALL
SELECT 'SMP_MTS','vocational_transition','PKL/Karier/Transisi','Guru BK/role vokasional sesuai akses','C','2.9.0',1,JSON_ARRAY('Kesiapan','PKL','Kompetensi/bukti','Transisi','Tindak lanjut'),'SMK/MAK profile guidance/configuration',1
ON DUPLICATE KEY UPDATE title=VALUES(title),audience_label=VALUES(audience_label),privacy_class=VALUES(privacy_class),template_version=VALUES(template_version),active=1,structure_json=VALUES(structure_json),source_ref=VALUES(source_ref),immutable_after_publish=1;
UPDATE report_definitions SET active=0 WHERE code IN ('semester','annual','bsan');
UPDATE regulatory_report_templates SET format_source_code='POP_BK_SMP_2016',format_source_locator=CASE WHEN code='bk_weekly_journal' THEN 'POP BK SMP 2016 Lampiran 33 — Jurnal Harian Kegiatan BK (registry PDF p.143)' WHEN code='bk_monthly_report' THEN 'Adaptasi rekap bulanan dari POP BK SMP 2016 Lampiran 33 (registry PDF p.143)' WHEN code IN ('bk_semester_report','bk_annual_report') THEN 'POP BK SMP 2016 Lampiran 32 sistematika laporan (p.142) + Lampiran 31 rangkuman evaluasi (p.141)' ELSE format_source_locator END,default_template_code=CASE WHEN code='bk_weekly_journal' THEN 'SMP_MTS_POP_APP_33' WHEN code='bk_monthly_report' THEN 'SMP_MTS_POP_APP_33_MONTHLY_ADAPTATION' WHEN code IN ('bk_semester_report','bk_annual_report') THEN 'SMP_MTS_POP_APP_32_WITH_SMP_MTS_POP_APP_31' ELSE default_template_code END,format_status=CASE WHEN code='bk_weekly_journal' THEN 'OFFICIAL_EXAMPLE_LAMPIRAN_33_DEFAULT' WHEN code='bk_monthly_report' THEN 'ADAPTED_FROM_OFFICIAL_EXAMPLE_LAMPIRAN_33' WHEN code IN ('bk_semester_report','bk_annual_report') THEN 'OFFICIAL_EXAMPLE_LAMPIRAN_32_WITH_31_LAMPIRAN' ELSE format_status END,template_version='2.10.1' WHERE profile_code='SMP_MTS' AND institution_context='school';
UPDATE regulatory_report_templates SET format_source_code='KEPDIRJEN_PENDIS_7232_2020',format_source_locator='POP BK Madrasah Kepdirjen Pendis 7232/2020 — Lampiran 7 sistematika laporan + Lampiran 6 rangkuman evaluasi',default_template_code='MADRASAH_POP_APP_7_WITH_6',format_status='OFFICIAL_EXAMPLE_LAMPIRAN_7_WITH_6_LAMPIRAN',template_version='2.10.1' WHERE institution_context='madrasah' AND code IN ('madrasah_semester_evaluation','madrasah_annual_evaluation');
UPDATE regulatory_report_templates SET format_source_code='PERMENDIKDASMEN_6_2026',format_source_locator='Permendikdasmen 6/2026 — struktur pemantauan/evaluasi; tidak ada satu form nasional baku yang dikunci',default_template_code='BSAN_REGULATORY_STRUCTURE',format_status='REGULATORY_STRUCTURE_NO_LOCKED_FORM',template_version='2.10.1' WHERE institution_context='school' AND code='bsan_monitoring_evaluation';
INSERT IGNORE INTO role_permissions(role_id,permission_id)
SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='bsan.manage'
WHERE r.code='counselor';
INSERT IGNORE INTO role_permissions(role_id,permission_id)
SELECT r.id,p.id FROM roles r JOIN permissions p ON p.code='report.publish'
WHERE r.code='counselor';
SET FOREIGN_KEY_CHECKS=1;