CREATE TABLE IF NOT EXISTS event_checkin_settings (
  event_id BIGINT NOT NULL PRIMARY KEY,
  max_checkins_per_day INT UNSIGNED NOT NULL DEFAULT 1,
  updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_checkin_settings_event FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS event_checkin_logs (
  id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  event_id BIGINT NOT NULL,
  ticket_id BIGINT NOT NULL,
  schedule_id BIGINT NULL,
  checked_in_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  created_by BIGINT UNSIGNED NULL,
  INDEX idx_checkin_event_day (event_id, checked_in_at),
  INDEX idx_checkin_ticket_day (ticket_id, checked_in_at),
  INDEX idx_checkin_schedule (schedule_id),
  CONSTRAINT fk_checkin_log_event FOREIGN KEY (event_id) REFERENCES events(id) ON DELETE CASCADE,
  CONSTRAINT fk_checkin_log_ticket FOREIGN KEY (ticket_id) REFERENCES event_tickets(id) ON DELETE CASCADE,
  CONSTRAINT fk_checkin_log_schedule FOREIGN KEY (schedule_id) REFERENCES event_schedules(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
