query('SELECT * FROM personalities ORDER BY id ASC'); return $stmt->fetchAll(); } public static function findById(int $id): ?array { $db = Database::getInstance(); $stmt = $db->prepare('SELECT * FROM personalities WHERE id = :id'); $stmt->execute(['id' => $id]); $result = $stmt->fetch(); return $result ?: null; } public static function create(array $data): array { $db = Database::getInstance(); $stmt = $db->prepare('INSERT INTO personalities (name, prompt, description, icon, is_preset, created_by) VALUES (:name, :prompt, :description, :icon, :is_preset, :created_by)'); $stmt->execute([ 'name' => $data['name'], 'prompt' => $data['prompt'], 'description' => $data['description'] ?? null, 'icon' => $data['icon'] ?? null, 'is_preset' => $data['is_preset'] ?? 0, 'created_by' => $data['created_by'] ?? null, ]); return self::findById((int) $db->lastInsertId()); } public static function update(int $id, array $data): bool { $db = Database::getInstance(); $fields = []; $params = ['id' => $id]; foreach ($data as $key => $value) { $fields[] = "{$key} = :{$key}"; $params[$key] = $value; } $sql = 'UPDATE personalities SET ' . implode(', ', $fields) . ' WHERE id = :id'; $stmt = $db->prepare($sql); return $stmt->execute($params); } public static function delete(int $id): bool { $db = Database::getInstance(); $stmt = $db->prepare('DELETE FROM personalities WHERE id = :id'); return $stmt->execute(['id' => $id]); } }