aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/server/schemas
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-01-01 22:06:40 +0900
committernsfisis <nsfisis@gmail.com>2026-01-01 22:06:40 +0900
commit8dbe5c2a1d8dc15bbdd6810b2582c680e1c0bb9b (patch)
treebe39e1436f83c716fc45df133106fba7dd4bc23a /src/server/schemas
parent830b370f1b8e0f3a384b2d242ab120812e81977d (diff)
downloadkioku-8dbe5c2a1d8dc15bbdd6810b2582c680e1c0bb9b.tar.gz
kioku-8dbe5c2a1d8dc15bbdd6810b2582c680e1c0bb9b.tar.zst
kioku-8dbe5c2a1d8dc15bbdd6810b2582c680e1c0bb9b.zip
feat(import): add CSV bulk import for notes
Add client-side CSV parsing and bulk import API endpoint for importing notes from CSV files. Supports quoted fields, newlines in values, and escaped quotes. - New POST /api/decks/{deckId}/notes/import endpoint for bulk creation - CSV parser with RFC 4180 compliance - Multi-phase import modal (upload → validate → preview → import) - Client-side validation with per-row error reporting 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'src/server/schemas')
-rw-r--r--src/server/schemas/index.ts11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/server/schemas/index.ts b/src/server/schemas/index.ts
index d2a8fb0..fc1bd77 100644
--- a/src/server/schemas/index.ts
+++ b/src/server/schemas/index.ts
@@ -186,6 +186,16 @@ export const updateNoteSchema = z.object({
fields: z.record(z.uuid(), z.string()),
});
+// Bulk note import input schema
+export const bulkCreateNotesSchema = z.object({
+ notes: z.array(
+ z.object({
+ noteTypeId: z.uuid(),
+ fields: z.record(z.uuid(), z.string()),
+ }),
+ ),
+});
+
// NoteFieldValue schema
export const noteFieldValueSchema = z.object({
id: z.uuid(),
@@ -244,4 +254,5 @@ export type UpdateNoteFieldTypeSchema = z.infer<
export type NoteSchema = z.infer<typeof noteSchema>;
export type CreateNoteSchema = z.infer<typeof createNoteSchema>;
export type UpdateNoteSchema = z.infer<typeof updateNoteSchema>;
+export type BulkCreateNotesSchema = z.infer<typeof bulkCreateNotesSchema>;
export type NoteFieldValueSchema = z.infer<typeof noteFieldValueSchema>;