added backend-mgmt for dataset/dataset_entry and utterances, this includes upload and also displaying of the dataset on the admin pages
This commit is contained in:
23
src/lib/model/dataset.ts
Normal file
23
src/lib/model/dataset.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { sqliteTable, text, integer, real } from 'drizzle-orm/sqlite-core';
|
||||
import { relations } from 'drizzle-orm';
|
||||
import { dataset_entry } from './dataset_entry';
|
||||
|
||||
// Define the dataset table schema
|
||||
export const dataset = sqliteTable('dataset', {
|
||||
id: integer('id').primaryKey({ autoIncrement: true }),
|
||||
name: text('name').notNull(),
|
||||
createdAt: integer('created_at', { mode: 'timestamp' })
|
||||
.notNull()
|
||||
.default(new Date()),
|
||||
updatedAt: integer('updated_at', { mode: 'timestamp' })
|
||||
.notNull()
|
||||
.default(new Date())
|
||||
});
|
||||
|
||||
export const datasetRelations = relations(dataset, ({ many }) => ({
|
||||
entries: many(dataset_entry)
|
||||
}));
|
||||
|
||||
// Create a type for dataset records based on the schema
|
||||
export type Dataset = typeof dataset.$inferSelect;
|
||||
export type NewDataset = typeof dataset.$inferInsert;
|
||||
40
src/lib/model/dataset_entry.ts
Normal file
40
src/lib/model/dataset_entry.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { sqliteTable, text, integer, real } from 'drizzle-orm/sqlite-core';
|
||||
import { relations } from 'drizzle-orm';
|
||||
import { dataset } from './dataset';
|
||||
import { dataset_utterance } from './utterance';
|
||||
|
||||
// Define the dataset table schema
|
||||
export const dataset_entry = sqliteTable('dataset_entry', {
|
||||
id: integer('id').primaryKey({ autoIncrement: true }),
|
||||
externalId: text('external_id').notNull(),
|
||||
speakerId: text('speaker_id').notNull(),
|
||||
modelName: text('model_name').notNull(),
|
||||
datasetId: integer('dataset_id')
|
||||
.notNull()
|
||||
.references(() => dataset.id),
|
||||
utteranceId: text('utterance_id').references(() => dataset_utterance.id),
|
||||
fileName: text('file_name').notNull(),
|
||||
dialect: text('dialect').notNull(),
|
||||
iteration: integer('iteration').notNull(),
|
||||
createdAt: integer('created_at', { mode: 'timestamp' })
|
||||
.notNull()
|
||||
.default(new Date()),
|
||||
updatedAt: integer('updated_at', { mode: 'timestamp' })
|
||||
.notNull()
|
||||
.default(new Date())
|
||||
});
|
||||
|
||||
export const dataset_entryRelations = relations(dataset_entry, ({ one }) => ({
|
||||
dataset: one(dataset, {
|
||||
fields: [dataset_entry.datasetId],
|
||||
references: [dataset.id]
|
||||
}),
|
||||
utterance: one(dataset_utterance, {
|
||||
fields: [dataset_entry.utteranceId],
|
||||
references: [dataset_utterance.id]
|
||||
})
|
||||
}));
|
||||
|
||||
// Create a type for dataset records based on the schema
|
||||
export type DatasetEntry = typeof dataset_entry.$inferSelect;
|
||||
export type NewDatasetEntry = typeof dataset_entry.$inferInsert;
|
||||
3
src/lib/model/index.ts
Normal file
3
src/lib/model/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export * from "./dataset";
|
||||
export * from "./dataset_entry";
|
||||
export * from "./utterance";
|
||||
29
src/lib/model/utterance.ts
Normal file
29
src/lib/model/utterance.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core';
|
||||
import { relations } from 'drizzle-orm';
|
||||
import { dataset } from './dataset';
|
||||
|
||||
// Define the dataset_utterance table schema
|
||||
export const dataset_utterance = sqliteTable('dataset_utterance', {
|
||||
id: text('id').primaryKey(),
|
||||
datasetId: integer('dataset_id')
|
||||
.notNull()
|
||||
.references(() => dataset.id),
|
||||
text: text('text').notNull(),
|
||||
createdAt: integer('created_at', { mode: 'timestamp' })
|
||||
.notNull()
|
||||
.default(new Date()),
|
||||
updatedAt: integer('updated_at', { mode: 'timestamp' })
|
||||
.notNull()
|
||||
.default(new Date()),
|
||||
});
|
||||
|
||||
export const dataset_utteranceRelations = relations(dataset_utterance, ({ one }) => ({
|
||||
dataset: one(dataset, {
|
||||
fields: [dataset_utterance.datasetId],
|
||||
references: [dataset.id],
|
||||
}),
|
||||
}));
|
||||
|
||||
// Create types for dataset_utterance records based on the schema
|
||||
export type DatasetUtterance = typeof dataset_utterance.$inferSelect;
|
||||
export type NewDatasetUtterance = typeof dataset_utterance.$inferInsert;
|
||||
Reference in New Issue
Block a user