Checkpoint: Ajout de l'onglet "Signatures" dans la page Paramètres : table DB signatures (firstName, lastName, imageKey, imageUrl), migration appliquée, routes tRPC (list, upload, create, delete), composant SignaturesSection avec formulaire d'ajout (prénom+nom+upload image), grille d'affichage des signatures avec aperçu, bouton de suppression au survol
This commit is contained in:
36
server/db.ts
36
server/db.ts
@@ -32,7 +32,10 @@ import {
|
||||
AutomationRule,
|
||||
llmFieldsConfig,
|
||||
InsertLlmFieldConfig,
|
||||
LlmFieldConfig
|
||||
LlmFieldConfig,
|
||||
signatures,
|
||||
InsertSignature,
|
||||
Signature
|
||||
} from "../drizzle/schema";
|
||||
import { ENV } from './_core/env';
|
||||
|
||||
@@ -667,3 +670,34 @@ export async function initializeDefaultLlmFields(userId: number): Promise<void>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============= SIGNATURES HELPERS =============
|
||||
|
||||
export async function getSignaturesByUser(userId: number): Promise<Signature[]> {
|
||||
const db = await getDb();
|
||||
if (!db) return [];
|
||||
return db.select().from(signatures).where(eq(signatures.userId, userId));
|
||||
}
|
||||
|
||||
export async function getSignatureById(id: number): Promise<Signature | undefined> {
|
||||
const db = await getDb();
|
||||
if (!db) return undefined;
|
||||
const results = await db.select().from(signatures).where(eq(signatures.id, id));
|
||||
return results[0];
|
||||
}
|
||||
|
||||
export async function createSignature(data: InsertSignature): Promise<Signature> {
|
||||
const db = await getDb();
|
||||
if (!db) throw new Error("Database not available");
|
||||
const result = await db.insert(signatures).values(data);
|
||||
const insertId = (result[0] as any).insertId;
|
||||
const created = await getSignatureById(insertId);
|
||||
if (!created) throw new Error("Failed to retrieve created signature");
|
||||
return created;
|
||||
}
|
||||
|
||||
export async function deleteSignature(id: number): Promise<void> {
|
||||
const db = await getDb();
|
||||
if (!db) return;
|
||||
await db.delete(signatures).where(eq(signatures.id, id));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user