full working application and initial commit

This commit is contained in:
2026-06-04 18:39:39 +02:00
commit 8524179793
86 changed files with 10107 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
import { authTables } from '@convex-dev/auth/server';
import { defineSchema, defineTable } from 'convex/server';
import { v } from 'convex/values';
import {
dashboardRangeValidator,
editorModeValidator,
moodValidator,
themePreferenceValidator
} from './validators.js';
export default defineSchema({
...authTables,
entries: defineTable({
owner: v.string(),
title: v.string(),
body: v.string(),
plainText: v.string(),
searchText: v.string(),
mood: moodValidator,
entryDate: v.string(),
tagNames: v.array(v.string()),
tagSlugs: v.array(v.string()),
pinned: v.boolean(),
archived: v.boolean(),
createdAt: v.number(),
updatedAt: v.number()
})
.index('by_owner_and_entryDate', ['owner', 'entryDate'])
.index('by_owner_and_updatedAt', ['owner', 'updatedAt'])
.index('by_owner_and_mood_and_entryDate', ['owner', 'mood', 'entryDate'])
.searchIndex('search_entries', {
searchField: 'searchText',
filterFields: ['owner']
}),
tags: defineTable({
owner: v.string(),
name: v.string(),
slug: v.string(),
color: v.string(),
usageCount: v.number(),
createdAt: v.number(),
updatedAt: v.number()
})
.index('by_owner_and_slug', ['owner', 'slug'])
.index('by_owner_and_name', ['owner', 'name'])
.index('by_owner_and_usageCount', ['owner', 'usageCount']),
entryTags: defineTable({
owner: v.string(),
entryId: v.id('entries'),
tagId: v.id('tags'),
tagSlug: v.string(),
createdAt: v.number()
})
.index('by_entry', ['entryId'])
.index('by_owner_and_tagSlug', ['owner', 'tagSlug'])
.index('by_owner_and_entryId_and_tagSlug', ['owner', 'entryId', 'tagSlug']),
settings: defineTable({
owner: v.string(),
theme: themePreferenceValidator,
defaultMood: moodValidator,
editorMode: editorModeValidator,
dashboardRange: dashboardRangeValidator,
updatedAt: v.number()
}).index('by_owner', ['owner'])
});