name = $wpdb->prefix . 'ips_checkout_trace_events'; $this->primary_key = 'id'; } /** * @return array */ public function get_columns() { return [ 'id' => '%d', 'event_uuid' => '%s', 'flow_run_id' => '%d', 'trace_id' => '%s', 'origin' => '%s', 'event' => '%s', 'step' => '%s', 'status' => '%s', 'gateway_id' => '%s', 'provider_key' => '%s', 'message' => '%s', 'context_json' => '%s', 'created_at' => '%s', ]; } public function get_indexes() { return [ 'PRIMARY', 'event_uuid', 'flow_run_id', 'trace_id', 'gateway_id', 'created_at', 'event_status' ]; } public function get_install_query() { return "CREATE TABLE {$this->get_name()} ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, event_uuid VARCHAR(64) NOT NULL DEFAULT '', flow_run_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, trace_id VARCHAR(64) NOT NULL, origin VARCHAR(40) NOT NULL DEFAULT '', event VARCHAR(100) NOT NULL DEFAULT '', step VARCHAR(50) NOT NULL DEFAULT '', status VARCHAR(50) NOT NULL DEFAULT '', gateway_id VARCHAR(100) NOT NULL DEFAULT '', provider_key VARCHAR(100) NOT NULL DEFAULT '', message VARCHAR(255) NOT NULL DEFAULT '', context_json LONGTEXT NULL, created_at DATETIME NOT NULL, PRIMARY KEY (id), UNIQUE KEY event_uuid (event_uuid), KEY flow_run_id (flow_run_id), KEY trace_id (trace_id), KEY gateway_id (gateway_id), KEY created_at (created_at), KEY event_status (event, status) ) {$this->get_collate()};"; } }