dafok
This commit is contained in:
parent
c333b9aaec
commit
9ebaece0a2
@ -21,14 +21,14 @@ export const initDb = async () => {
|
|||||||
schema,
|
schema,
|
||||||
});
|
});
|
||||||
|
|
||||||
await migrate(db, {
|
// await migrate(db, {
|
||||||
migrationsFolder: "./src/db/migrations",
|
// migrationsFolder: "./src/db/migrations",
|
||||||
})
|
// })
|
||||||
.then(() => {
|
// .then(() => {
|
||||||
Logger.info("INIT", "Migrated database");
|
// Logger.info("INIT", "Migrated database");
|
||||||
})
|
// })
|
||||||
.catch((error) => {
|
// .catch((error) => {
|
||||||
Logger.error("INIT", `Failed to migrate database ${String(error)}`);
|
// Logger.error("INIT", `Failed to migrate database ${String(error)}`);
|
||||||
throw new Error(`Failed to migrate database ${String(error)}`);
|
// throw new Error(`Failed to migrate database ${String(error)}`);
|
||||||
});
|
// });
|
||||||
};
|
};
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
import { relations } from "drizzle-orm/relations";
|
|
||||||
import { sites, signups, users, sessions, articles } from "./schema";
|
|
||||||
|
|
||||||
export const signupsRelations = relations(signups, ({one}) => ({
|
|
||||||
site: one(sites, {
|
|
||||||
fields: [signups.site_id],
|
|
||||||
references: [sites.id]
|
|
||||||
}),
|
|
||||||
}));
|
|
||||||
|
|
||||||
export const sitesRelations = relations(sites, ({one, many}) => ({
|
|
||||||
signups: many(signups),
|
|
||||||
user: one(users, {
|
|
||||||
fields: [sites.user_id],
|
|
||||||
references: [users.id]
|
|
||||||
}),
|
|
||||||
articles: many(articles),
|
|
||||||
}));
|
|
||||||
|
|
||||||
export const usersRelations = relations(users, ({many}) => ({
|
|
||||||
sites: many(sites),
|
|
||||||
sessions: many(sessions),
|
|
||||||
}));
|
|
||||||
|
|
||||||
export const sessionsRelations = relations(sessions, ({one}) => ({
|
|
||||||
user: one(users, {
|
|
||||||
fields: [sessions.user_id],
|
|
||||||
references: [users.id]
|
|
||||||
}),
|
|
||||||
}));
|
|
||||||
|
|
||||||
export const articlesRelations = relations(articles, ({one}) => ({
|
|
||||||
site: one(sites, {
|
|
||||||
fields: [articles.site_id],
|
|
||||||
references: [sites.id]
|
|
||||||
}),
|
|
||||||
}));
|
|
@ -1,70 +0,0 @@
|
|||||||
import { pgTable, foreignKey, pgEnum, text, uuid, timestamp, integer, varchar, boolean, jsonb } from "drizzle-orm/pg-core"
|
|
||||||
import { sql } from "drizzle-orm"
|
|
||||||
|
|
||||||
export const subscription_tier = pgEnum("subscription_tier", ['free', 'basic', 'pro', 'enterprise'])
|
|
||||||
|
|
||||||
|
|
||||||
export const signups = pgTable("signups", {
|
|
||||||
email: text("email").notNull(),
|
|
||||||
site_id: uuid("site_id").notNull().references(() => sites.id),
|
|
||||||
created_at: timestamp("created_at", { mode: 'string' }).defaultNow().notNull(),
|
|
||||||
source: text("source"),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const users = pgTable("users", {
|
|
||||||
id: uuid("id").defaultRandom().primaryKey().notNull(),
|
|
||||||
name: text("name"),
|
|
||||||
email: text("email"),
|
|
||||||
channel_id: text("channel_id"),
|
|
||||||
google_id: text("google_id"),
|
|
||||||
uploads_playlist_id: text("uploads_playlist_id"),
|
|
||||||
subscription_tier: subscription_tier("subscription_tier").default('free').notNull(),
|
|
||||||
tokens: integer("tokens").default(0).notNull(),
|
|
||||||
stripe_id: text("stripe_id"),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const sites = pgTable("sites", {
|
|
||||||
id: uuid("id").defaultRandom().primaryKey().notNull(),
|
|
||||||
user_id: uuid("user_id").references(() => users.id),
|
|
||||||
name: text("name"),
|
|
||||||
primary_color_hex: varchar("primary_color_hex", { length: 6 }).default('c4ced4'::character varying).notNull(),
|
|
||||||
secondary_color_hex: varchar("secondary_color_hex", { length: 6 }).default('27251f'::character varying).notNull(),
|
|
||||||
text_color_hex: varchar("text_color_hex", { length: 6 }).default('ffffff'::character varying).notNull(),
|
|
||||||
title: text("title").default('The best blog in the world!'),
|
|
||||||
subtitle: text("subtitle").default('Some extra info about the best blog in the world!'),
|
|
||||||
domain: text("domain"),
|
|
||||||
send_freebie: boolean("send_freebie").default(false),
|
|
||||||
freebie_name: text("freebie_name").default(''),
|
|
||||||
freebie_url: text("freebie_url").default(''),
|
|
||||||
freebie_text: text("freebie_text").default(''),
|
|
||||||
freebie_image_url: text("freebie_image_url").default(''),
|
|
||||||
subdomain_slug: text("subdomain_slug"),
|
|
||||||
social_medias: jsonb("social_medias"),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const sessions = pgTable("sessions", {
|
|
||||||
id: uuid("id").defaultRandom().primaryKey().notNull(),
|
|
||||||
user_id: uuid("user_id").references(() => users.id),
|
|
||||||
google_access_token: text("google_access_token"),
|
|
||||||
google_refresh_token: text("google_refresh_token"),
|
|
||||||
expires_at: timestamp("expires_at", { mode: 'string' }),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const articles = pgTable("articles", {
|
|
||||||
id: uuid("id").defaultRandom().primaryKey().notNull(),
|
|
||||||
site_id: uuid("site_id").references(() => sites.id),
|
|
||||||
content: text("content"),
|
|
||||||
source_video_id: text("source_video_id"),
|
|
||||||
title: text("title"),
|
|
||||||
seo_slug: text("seo_slug"),
|
|
||||||
created_at: timestamp("created_at", { mode: 'string' }).defaultNow(),
|
|
||||||
is_public: boolean("is_public").default(false),
|
|
||||||
views: integer("views").default(0),
|
|
||||||
seo_title: text("seo_title"),
|
|
||||||
seo_description: text("seo_description"),
|
|
||||||
excerp: text("excerp"),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const waitlist = pgTable("waitlist", {
|
|
||||||
email: text("email"),
|
|
||||||
});
|
|
Loading…
Reference in New Issue
Block a user