{"slug":"martial-arts-club-manager","name":"Martial Arts Club Manager","description":"Complete management system for martial arts clubs including member management, class scheduling, and attendance tracking. Requires WooCommerce.","author":"madebyeli","active_installs":0,"version":"1.0.346","wp_org_url":"https://wordpress.org/plugins/martial-arts-club-manager/","is_closed":false,"cleanup":{"has_uninstall_hook":true,"drops_tables_on_uninstall":false,"deletes_options_on_uninstall":false},"tables":[{"table_name":"kcm_class_instructors","full_table_name":"wp_kcm_class_instructors","description":"Stores kcm class instructors data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"kcm_instructors","full_table_name":"wp_kcm_instructors","description":"Stores kcm instructors data created by this plugin.","detection_method":"static","confidence":"medium","columns":[{"name":"id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":true},{"name":"full_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"email","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"phone","type":"varchar(50)","nullable":true,"primary_key":false},{"name":"specialization","type":"text","nullable":true,"primary_key":false},{"name":"bio","type":"text","nullable":true,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"class_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"instructor_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"assigned_at","type":"datetime","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_kcm_instructors ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, full_name varchar(255) NOT NULL, email varchar(255) DEFAULT NULL, phone varchar(50) DEFAULT NULL, specialization text DEFAULT NULL, bio text DEFAULT NULL, is_active tinyint(1) NOT NULL DEFAULT 1, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY is_active (is_active) ) $macm_charset_collate;\"; // Create class_instructors junction table. $macm_sql_class_instructors = \"CREATE TABLE wp_kcm_class_instructors ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, class_id bigint(20) UNSIGNED NOT NULL, instructor_id bigint(20) UNSIGNED NOT NULL, assigned_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY class_instructor (class_id, instructor_id), KEY class_id (class_id), KEY instructor_id (instructor_id) ) $macm_charset_collate;\"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; echo '<h2>Adding Instructors Tables</h2>'; // Create instructors table. echo '<p>Creating kcm_instructors table...</p>'; dbDelta( $macm_sql_instructors );"},{"table_name":"macm_attendance","full_table_name":"wp_macm_attendance","description":"Stores macm attendance data created by this plugin.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"macm_auth_tokens","full_table_name":"wp_macm_auth_tokens","description":"Stores access tokens for authentication or API access.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_belt_color_groups","full_table_name":"wp_macm_belt_color_groups","description":"Stores macm belt color groups data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_belt_colors","full_table_name":"wp_macm_belt_colors","description":"Stores macm belt colors data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_bookings","full_table_name":"wp_macm_bookings","description":"Stores macm bookings data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_class_enrollments","full_table_name":"wp_macm_class_enrollments","description":"Stores macm class enrollments data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_class_groups","full_table_name":"wp_macm_class_groups","description":"Stores macm class groups data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_class_instructors","full_table_name":"wp_macm_class_instructors","description":"Stores macm class instructors data created by this plugin.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"macm_class_waitlist","full_table_name":"wp_macm_class_waitlist","description":"Stores macm class waitlist data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_classes","full_table_name":"wp_macm_classes","description":"Stores macm classes data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_clubs","full_table_name":"wp_macm_clubs","description":"Stores macm clubs data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_event_registrations","full_table_name":"wp_macm_event_registrations","description":"Stores macm event registrations data created by this plugin.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"macm_events","full_table_name":"wp_macm_events","description":"Stores macm events data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_grading_history","full_table_name":"wp_macm_grading_history","description":"Stores macm grading history data created by this plugin.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"macm_groups","full_table_name":"wp_macm_groups","description":"Stores macm groups data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_instructor_availability","full_table_name":"wp_macm_instructor_availability","description":"Stores macm instructor availability data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_instructor_availability_overrides","full_table_name":"wp_macm_instructor_availability_overrides","description":"Stores macm instructor availability overrides data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_instructors","full_table_name":"wp_macm_instructors","description":"Stores macm instructors data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_kiosk_pins","full_table_name":"wp_macm_kiosk_pins","description":"Stores macm kiosk pins data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_locations","full_table_name":"wp_macm_locations","description":"Stores macm locations data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_member_groups","full_table_name":"wp_macm_member_groups","description":"Stores macm member groups data created by this plugin.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"macm_members","full_table_name":"wp_macm_members","description":"Stores macm members data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":true},{"name":"user_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"full_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"date_of_birth","type":"date","nullable":false,"primary_key":false},{"name":"membership_type_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"belt_color","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"group_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"club_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"weight","type":"decimal(5,2)","nullable":true,"primary_key":false},{"name":"height","type":"decimal(5,2)","nullable":true,"primary_key":false},{"name":"license_number","type":"varchar(100)","nullable":true,"primary_key":false},{"name":"license_expiration","type":"date","nullable":true,"primary_key":false},{"name":"photo_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"email","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"wp_user_auto_assigned","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"group_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"class_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"day_of_week","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"start_time","type":"time","nullable":false,"primary_key":false},{"name":"end_time","type":"time","nullable":false,"primary_key":false},{"name":"location_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"max_capacity","type":"int(11)","nullable":true,"primary_key":false},{"name":"sort_order","type":"int(11)","nullable":true,"primary_key":false},{"name":"is_archived","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"class_group_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"recurrence_type","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"recurrence_start_date","type":"date","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"location_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"address","type":"text","nullable":true,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"group_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"group_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"assigned_at","type":"datetime","nullable":false,"primary_key":false},{"name":"club_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"class_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"enrolled_at","type":"datetime","nullable":false,"primary_key":false},{"name":"removed_at","type":"datetime","nullable":true,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"class_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"attendance_date","type":"date","nullable":false,"primary_key":false},{"name":"attendance_time","type":"time","nullable":false,"primary_key":false},{"name":"marked_by","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"instructor_ids","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"notes","type":"text","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"order_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"order_item_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"product_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"color_key","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"color_name","type":"varchar(100)","nullable":false,"primary_key":false},{"name":"sort_order","type":"int(11)","nullable":false,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"type_name","type":"varchar(100)","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"sort_order","type":"int(11)","nullable":false,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"page_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"access_type","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"page_access_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"rule_type","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"rule_value","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"title","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"video_url","type":"varchar(500)","nullable":false,"primary_key":false},{"name":"video_type","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"duration","type":"varchar(20)","nullable":true,"primary_key":false},{"name":"thumbnail_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"belt_level","type":"varchar(100)","nullable":true,"primary_key":false},{"name":"category","type":"varchar(100)","nullable":true,"primary_key":false},{"name":"difficulty","type":"varchar(20)","nullable":true,"primary_key":false},{"name":"instructor_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"display_order","type":"int(11)","nullable":false,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"full_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"email","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"phone","type":"varchar(50)","nullable":true,"primary_key":false},{"name":"specialization","type":"text","nullable":true,"primary_key":false},{"name":"bio","type":"text","nullable":true,"primary_key":false},{"name":"photo_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"user_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"session_price","type":"decimal(10,2)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"instructor_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"day_of_week","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"start_time","type":"time","nullable":false,"primary_key":false},{"name":"end_time","type":"time","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"instructor_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"override_date","type":"date","nullable":false,"primary_key":false},{"name":"is_available","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"start_time","type":"time","nullable":true,"primary_key":false},{"name":"end_time","type":"time","nullable":true,"primary_key":false},{"name":"reason","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"booking_type","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"instructor_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"guest_name","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"guest_email","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"guest_phone","type":"varchar(50)","nullable":true,"primary_key":false},{"name":"booking_date","type":"date","nullable":false,"primary_key":false},{"name":"start_time","type":"time","nullable":false,"primary_key":false},{"name":"end_time","type":"time","nullable":false,"primary_key":false},{"name":"location_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"max_capacity","type":"int(11)","nullable":true,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"wc_order_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"payment_required","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"notes","type":"text","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"class_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"instructor_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"assigned_at","type":"datetime","nullable":false,"primary_key":false},{"name":"belt_color_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"group_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"full_name","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"is_for_child","type":"tinyint(1)","nullable":true,"primary_key":false},{"name":"parent_name","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"mobile","type":"varchar(20)","nullable":true,"primary_key":false},{"name":"email","type":"varchar(100)","nullable":false,"primary_key":false},{"name":"class_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":true,"primary_key":false},{"name":"admin_note","type":"text","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"completed_at","type":"datetime","nullable":true,"primary_key":false},{"name":"title","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"location","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"start_date","type":"date","nullable":false,"primary_key":false},{"name":"end_date","type":"date","nullable":false,"primary_key":false},{"name":"event_time","type":"time","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"cost_info","type":"text","nullable":true,"primary_key":false},{"name":"image_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"closing_date","type":"date","nullable":false,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"notification_email","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"event_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"user_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"registration_date","type":"datetime","nullable":false,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"notes","type":"text","nullable":true,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"class_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"position","type":"int(11)","nullable":false,"primary_key":false},{"name":"added_at","type":"datetime","nullable":false,"primary_key":false},{"name":"promoted_at","type":"datetime","nullable":true,"primary_key":false},{"name":"status","type":"varchar(20)","nullable":false,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"pin_hash","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"member_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"belt_color_key","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"grading_date","type":"date","nullable":false,"primary_key":false},{"name":"examiner_id","type":"bigint(20) UNSIGNED","nullable":true,"primary_key":false},{"name":"examiner_name","type":"varchar(255)","nullable":true,"primary_key":false},{"name":"score","type":"varchar(50)","nullable":true,"primary_key":false},{"name":"notes","type":"text","nullable":true,"primary_key":false},{"name":"created_by","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":false,"primary_key":false},{"name":"user_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"expo_push_token","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"device_id","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"platform","type":"varchar(10)","nullable":false,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false},{"name":"last_used_at","type":"datetime","nullable":true,"primary_key":false},{"name":"user_id","type":"bigint(20) UNSIGNED","nullable":false,"primary_key":false},{"name":"token_hash","type":"varchar(64)","nullable":false,"primary_key":false},{"name":"refresh_hash","type":"varchar(64)","nullable":false,"primary_key":false},{"name":"device_id","type":"varchar(191)","nullable":true,"primary_key":false},{"name":"expires_at","type":"datetime","nullable":false,"primary_key":false},{"name":"refresh_expires_at","type":"datetime","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":false,"primary_key":false}],"create_sql":"CREATE TABLE wp_macm_members ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, user_id bigint(20) UNSIGNED NOT NULL, full_name varchar(255) NOT NULL, date_of_birth date NOT NULL, membership_type_id bigint(20) UNSIGNED DEFAULT NULL, belt_color varchar(50) NOT NULL, group_id bigint(20) UNSIGNED DEFAULT NULL, club_id bigint(20) UNSIGNED DEFAULT NULL, weight decimal(5,2) DEFAULT NULL, height decimal(5,2) DEFAULT NULL, license_number varchar(100) DEFAULT NULL, license_expiration date DEFAULT NULL, photo_id bigint(20) UNSIGNED DEFAULT NULL, email varchar(255) DEFAULT NULL, wp_user_auto_assigned tinyint(1) NOT NULL DEFAULT 0, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, status varchar(20) NOT NULL DEFAULT 'active', PRIMARY KEY (id), KEY user_id (user_id), KEY group_id (group_id), KEY club_id (club_id), KEY membership_type_id (membership_type_id), KEY belt_color (belt_color), KEY status (status), KEY wp_user_auto_assigned (wp_user_auto_assigned) ) $charset_collate; CREATE TABLE wp_macm_class_groups ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, group_name varchar(255) NOT NULL, description text DEFAULT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ) $charset_collate; CREATE TABLE wp_macm_classes ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, class_name varchar(255) NOT NULL, description text DEFAULT NULL, day_of_week tinyint(1) NOT NULL, start_time time NOT NULL, end_time time NOT NULL, location_id bigint(20) UNSIGNED NOT NULL, max_capacity int(11) DEFAULT NULL, sort_order int(11) DEFAULT 0, is_archived tinyint(1) NOT NULL DEFAULT 0, class_group_id bigint(20) UNSIGNED DEFAULT NULL, recurrence_type varchar(20) NOT NULL DEFAULT 'weekly', recurrence_start_date date DEFAULT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY location_id (location_id), KEY day_of_week (day_of_week), KEY is_archived (is_archived), KEY class_group_id (class_group_id), KEY recurrence_type (recurrence_type) ) $charset_collate; CREATE TABLE wp_macm_locations ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, location_name varchar(255) NOT NULL, address text DEFAULT NULL, is_active tinyint(1) NOT NULL DEFAULT 1, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY is_active (is_active) ) $charset_collate; CREATE TABLE wp_macm_groups ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, group_name varchar(255) NOT NULL, description text DEFAULT NULL, is_active tinyint(1) NOT NULL DEFAULT 1, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY is_active (is_active) ) $charset_collate; CREATE TABLE wp_macm_member_groups ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, member_id bigint(20) UNSIGNED NOT NULL, group_id bigint(20) UNSIGNED NOT NULL, assigned_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY member_group (member_id, group_id), KEY member_id (member_id), KEY group_id (group_id) ) $charset_collate; CREATE TABLE wp_macm_clubs ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, club_name varchar(255) NOT NULL, description text DEFAULT NULL, is_active tinyint(1) NOT NULL DEFAULT 1, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY is_active (is_active) ) $charset_collate; CREATE TABLE wp_macm_class_enrollments ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, member_id bigint(20) UNSIGNED NOT NULL, class_id bigint(20) UNSIGNED NOT NULL, enrolled_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, removed_at datetime DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY member_class (member_id, class_id), KEY member_id (member_id), KEY class_id (class_id) ) $charset_collate; CREATE TABLE wp_macm_attendance ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, member_id bigint(20) UNSIGNED NOT NULL, class_id bigint(20) UNSIGNED NOT NULL, attendance_date date NOT NULL, attendance_time time NOT NULL, marked_by bigint(20) UNSIGNED NOT NULL, instructor_ids varchar(255) DEFAULT NULL, notes text DEFAULT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY attendance_record (member_id, class_id, attendance_date), KEY member_id (member_id), KEY class_id (class_id), KEY attendance_date (attendance_date), KEY marked_by (marked_by) ) $charset_collate; CREATE TABLE wp_macm_product_members ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, order_id bigint(20) UNSIGNED NOT NULL, order_item_id bigint(20) UNSIGNED NOT NULL, product_id bigint(20) UNSIGNED NOT NULL, member_id bigint(20) UNSIGNED NOT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY order_id (order_id), KEY member_id (member_id), KEY product_id (product_id) ) $charset_collate; CREATE TABLE wp_macm_belt_colors ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, color_key varchar(50) NOT NULL, color_name varchar(100) NOT NULL, sort_order int(11) NOT NULL DEFAULT 0, is_active tinyint(1) NOT NULL DEFAULT 1, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY color_key (color_key), KEY sort_order (sort_order), KEY is_active (is_active) ) $charset_collate; CREATE TABLE wp_macm_membership_types ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, type_name varchar(100) NOT NULL, description text DEFAULT NULL, sort_order int(11) NOT NULL DEFAULT 0, is_active tinyint(1) NOT NULL DEFAULT 1, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY sort_order (sort_order), KEY is_active (is_active) ) $charset_collate; CREATE TABLE wp_macm_page_access ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, page_id bigint(20) UNSIGNED NOT NULL, access_type varchar(20) NOT NULL DEFAULT 'login_required', created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY page_id (page_id), KEY access_type (access_type) ) $charset_collate; CREATE TABLE wp_macm_page_access_rules ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, page_access_id bigint(20) UNSIGNED NOT NULL, rule_type varchar(20) NOT NULL, rule_value bigint(20) UNSIGNED NOT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY page_access_id (page_access_id), KEY rule_type (rule_type), KEY rule_value (rule_value) ) $charset_collate; CREATE TABLE wp_macm_training_videos ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL, description text DEFAULT NULL, video_url varchar(500) NOT NULL, video_type varchar(20) NOT NULL DEFAULT 'youtube', duration varchar(20) DEFAULT NULL, thumbnail_id bigint(20) UNSIGNED DEFAULT NULL, belt_level varchar(100) DEFAULT NULL, category varchar(100) DEFAULT NULL, difficulty varchar(20) DEFAULT NULL, instructor_id bigint(20) UNSIGNED DEFAULT NULL, display_order int(11) NOT NULL DEFAULT 0, status varchar(20) NOT NULL DEFAULT 'published', created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY display_order (display_order), KEY status (status), KEY belt_level (belt_level), KEY category (category), KEY difficulty (difficulty), KEY instructor_id (instructor_id) ) $charset_collate; CREATE TABLE wp_macm_instructors ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, full_name varchar(255) NOT NULL, email varchar(255) DEFAULT NULL, phone varchar(50) DEFAULT NULL, specialization text DEFAULT NULL, bio text DEFAULT NULL, photo_id bigint(20) UNSIGNED DEFAULT NULL, user_id bigint(20) UNSIGNED DEFAULT NULL, is_active tinyint(1) NOT NULL DEFAULT 1, session_price decimal(10,2) NOT NULL DEFAULT 0.00, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY is_active (is_active), KEY user_id (user_id) ) $charset_collate; CREATE TABLE wp_macm_instructor_availability ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, instructor_id bigint(20) UNSIGNED NOT NULL, day_of_week tinyint(1) NOT NULL, start_time time NOT NULL, end_time time NOT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY instructor_day_time (instructor_id, day_of_week, start_time), KEY instructor_id (instructor_id), KEY day_of_week (day_of_week) ) $charset_collate; CREATE TABLE wp_macm_instructor_availability_overrides ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, instructor_id bigint(20) UNSIGNED NOT NULL, override_date date NOT NULL, is_available tinyint(1) NOT NULL DEFAULT 0, start_time time DEFAULT NULL, end_time time DEFAULT NULL, reason varchar(255) DEFAULT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY instructor_date (instructor_id, override_date), KEY instructor_id (instructor_id), KEY override_date (override_date) ) $charset_collate; CREATE TABLE wp_macm_bookings ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, booking_type varchar(20) NOT NULL DEFAULT 'private', instructor_id bigint(20) UNSIGNED NOT NULL, member_id bigint(20) UNSIGNED DEFAULT NULL, guest_name varchar(255) DEFAULT NULL, guest_email varchar(255) DEFAULT NULL, guest_phone varchar(50) DEFAULT NULL, booking_date date NOT NULL, start_time time NOT NULL, end_time time NOT NULL, location_id bigint(20) UNSIGNED DEFAULT NULL, max_capacity int(11) DEFAULT NULL, status varchar(20) NOT NULL DEFAULT 'pending', wc_order_id bigint(20) UNSIGNED DEFAULT NULL, payment_required tinyint(1) NOT NULL DEFAULT 0, notes text DEFAULT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY instructor_id (instructor_id), KEY member_id (member_id), KEY booking_date (booking_date), KEY status (status), KEY wc_order_id (wc_order_id) ) $charset_collate; CREATE TABLE wp_macm_class_instructors ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, class_id bigint(20) UNSIGNED NOT NULL, instructor_id bigint(20) UNSIGNED NOT NULL, assigned_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY class_instructor (class_id, instructor_id), KEY class_id (class_id), KEY instructor_id (instructor_id) ) $charset_collate; CREATE TABLE wp_macm_belt_color_groups ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, belt_color_id bigint(20) UNSIGNED NOT NULL, group_id bigint(20) UNSIGNED NOT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY belt_color_group (belt_color_id, group_id), KEY belt_color_id (belt_color_id), KEY group_id (group_id) ) $charset_collate; CREATE TABLE wp_macm_trial_bookings ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, full_name varchar(255) NOT NULL, is_for_child tinyint(1) DEFAULT 0, parent_name varchar(255) DEFAULT NULL, mobile varchar(20) DEFAULT NULL, email varchar(100) NOT NULL, class_id bigint(20) UNSIGNED DEFAULT NULL, status varchar(20) DEFAULT 'pending', admin_note text DEFAULT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, completed_at datetime DEFAULT NULL, PRIMARY KEY (id), KEY class_id (class_id), KEY status (status), KEY created_at (created_at) ) $charset_collate; CREATE TABLE wp_macm_events ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL, location varchar(255) DEFAULT NULL, start_date date NOT NULL, end_date date NOT NULL, event_time time NOT NULL, description text DEFAULT NULL, cost_info text DEFAULT NULL, image_id bigint(20) UNSIGNED DEFAULT NULL, closing_date date NOT NULL, status varchar(20) NOT NULL DEFAULT 'active', notification_email varchar(255) DEFAULT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY start_date (start_date), KEY end_date (end_date), KEY status (status), KEY closing_date (closing_date) ) $charset_collate; CREATE TABLE wp_macm_event_registrations ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, event_id bigint(20) UNSIGNED NOT NULL, user_id bigint(20) UNSIGNED NOT NULL, member_id bigint(20) UNSIGNED NOT NULL, registration_date datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, status varchar(20) NOT NULL DEFAULT 'confirmed', notes text DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY event_member (event_id, member_id), KEY event_id (event_id), KEY user_id (user_id), KEY member_id (member_id), KEY registration_date (registration_date), KEY status (status) ) $charset_collate; CREATE TABLE wp_macm_class_waitlist ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, member_id bigint(20) UNSIGNED NOT NULL, class_id bigint(20) UNSIGNED NOT NULL, position int(11) NOT NULL, added_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, promoted_at datetime DEFAULT NULL, status varchar(20) NOT NULL DEFAULT 'waiting', PRIMARY KEY (id), UNIQUE KEY member_class (member_id, class_id), KEY member_id (member_id), KEY class_id (class_id), KEY status (status), KEY position (position) ) $charset_collate; CREATE TABLE wp_macm_kiosk_pins ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, member_id bigint(20) UNSIGNED NOT NULL, pin_hash varchar(255) NOT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY member_id (member_id) ) $charset_collate; CREATE TABLE wp_macm_grading_history ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, member_id bigint(20) UNSIGNED NOT NULL, belt_color_key varchar(50) NOT NULL, grading_date date NOT NULL, examiner_id bigint(20) UNSIGNED DEFAULT NULL, examiner_name varchar(255) DEFAULT NULL, score varchar(50) DEFAULT NULL, notes text DEFAULT NULL, created_by bigint(20) UNSIGNED NOT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY member_id (member_id), KEY belt_color_key (belt_color_key), KEY grading_date (grading_date), KEY examiner_id (examiner_id), KEY created_by (created_by) ) $charset_collate; CREATE TABLE wp_macm_push_tokens ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, user_id bigint(20) UNSIGNED NOT NULL, expo_push_token varchar(255) NOT NULL, device_id varchar(255) NOT NULL, platform varchar(10) NOT NULL DEFAULT 'ios', is_active tinyint(1) NOT NULL DEFAULT 1, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, last_used_at datetime DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY device_token (device_id), KEY user_id (user_id), KEY expo_push_token (expo_push_token) ) $charset_collate; CREATE TABLE wp_macm_auth_tokens ( id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, user_id bigint(20) UNSIGNED NOT NULL, token_hash varchar(64) NOT NULL, refresh_hash varchar(64) NOT NULL, device_id varchar(191) DEFAULT NULL, expires_at datetime NOT NULL, refresh_expires_at datetime NOT NULL, created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY token_hash (token_hash), UNIQUE KEY refresh_hash (refresh_hash), KEY user_id (user_id) ) ENGINE"},{"table_name":"macm_membership_types","full_table_name":"wp_macm_membership_types","description":"Stores macm membership types data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_page_access","full_table_name":"wp_macm_page_access","description":"Stores macm page access data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_page_access_rules","full_table_name":"wp_macm_page_access_rules","description":"Stores macm page access rules data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_product_members","full_table_name":"wp_macm_product_members","description":"Stores product records and related data.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_push_tokens","full_table_name":"wp_macm_push_tokens","description":"Stores access tokens for authentication or API access.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_training_videos","full_table_name":"wp_macm_training_videos","description":"Stores macm training videos data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"macm_trial_bookings","full_table_name":"wp_macm_trial_bookings","description":"Stores macm trial bookings data created by this plugin.","detection_method":"static","confidence":"high","columns":[],"create_sql":null}],"table_count":31}