db = $wpdb; $this->table = $wpdb->prefix . 'wpag_statements'; } public function save( string $language, string $status ): int { $next = (int) $this->db->get_var( $this->db->prepare( "SELECT COALESCE(MAX(version),0) + 1 FROM {$this->table} WHERE language = %s", $language ) ); $this->db->insert( $this->table, [ 'version' => $next, 'language' => $language, 'status' => $status, 'created_at' => current_time( 'mysql', true ), ], [ '%d', '%s', '%s', '%s' ] ); return (int) $this->db->insert_id; } /** * @return list> */ public function list_recent( int $limit = 10 ): array { $rows = $this->db->get_results( $this->db->prepare( "SELECT id, version, language, status, created_at FROM {$this->table} ORDER BY id DESC LIMIT %d", max( 1, min( 50, $limit ) ) ), ARRAY_A ); return array_map( static function ( array $row ): array { return [ 'id' => (int) $row['id'], 'version' => (int) $row['version'], 'language' => $row['language'], 'status' => $row['status'], 'createdAt' => $row['created_at'], ]; }, $rows ?: [] ); } }