You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
1.1 KiB
25 lines
1.1 KiB
import { index, integer, sqliteTable, text } from "drizzle-orm/sqlite-core";
|
|
|
|
export const users = sqliteTable("users", {
|
|
id: integer().primaryKey(),
|
|
username: text().notNull().unique(),
|
|
email: text(),
|
|
nickname: text(),
|
|
password: text().notNull(),
|
|
avatar: text(),
|
|
role: text().notNull().default("user"),
|
|
status: text().notNull().default("active"),
|
|
publicSlug: text("public_slug").unique(),
|
|
bioMarkdown: text("bio_markdown"),
|
|
bioVisibility: text("bio_visibility").notNull().default("private"),
|
|
socialLinksJson: text("social_links_json").notNull().default("[]"),
|
|
avatarVisibility: text("avatar_visibility").notNull().default("private"),
|
|
discoverVisible: integer("discover_visible", { mode: "boolean" }).notNull().default(true),
|
|
discoverLocation: text("discover_location"),
|
|
discoverShowLocation: integer("discover_show_location", { mode: "boolean" }).notNull().default(false),
|
|
createdAt: integer("created_at", { mode: "timestamp_ms" }).defaultNow().notNull(),
|
|
updatedAt: integer("updated_at", { mode: "timestamp_ms" })
|
|
.defaultNow()
|
|
.$onUpdate(() => new Date())
|
|
.notNull(),
|
|
});
|
|
|