import { column, defineDb, defineTable, NOW } from "astro:db";
/** @returns Table definition with common columns. */
function createTable(columns: ColumnsConfig) {
return defineTable({
columns: {
id: column.number({ primaryKey: true }),
createdAt: column.date({ default: NOW }),
updatedAt: column.date({
default: NOW,
optional: true,
onUpdate: NOW // @todo Investigate if it works, no type-safety so far.
}),
...columns
}
});
}
export const Notification = createTable({
userId: column.number({ references: () => User.columns.id }),
message: column.text(),
variant: column.text({
optional: true,
enum: [
"primary",
"secondary",
"error",
"success",
"info"
]
}),
link: column.text({ optional: true }),
fixed: column.boolean({ optional: true }),
readAt: column.date({ optional: true })
});
import { column, defineDb, defineTable, NOW } from "astro:db";
/** @returns Table definition with common columns. */
function createTable(columns: ColumnsConfig) {
return defineTable({
columns: {
id: column.number({ primaryKey: true }),
createdAt: column.date({ default: NOW }),
updatedAt: column.date({
default: NOW,
optional: true,
onUpdate: NOW // @todo Investigate if it works, no type-safety so far.
}),
...columns
}
});
}
export const Notification = createTable({
userId: column.number({ references: () => User.columns.id }),
message: column.text(),
variant: column.text({
optional: true,
enum: [
"primary",
"secondary",
"error",
"success",
"info"
]
}),
link: column.text({ optional: true }),
fixed: column.boolean({ optional: true }),
readAt: column.date({ optional: true })
});