初始化仓库及v1.0.0提交

This commit is contained in:
2026-05-05 03:21:58 +08:00
commit 813bb02672
67 changed files with 5263 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
<?php
namespace App\Models;
use App\Config\Database;
class Personality
{
public static function findAll(): array
{
$db = Database::getInstance();
$stmt = $db->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]);
}
}