first commit
This commit is contained in:
47
db/schema/index.ts
Normal file
47
db/schema/index.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import { pgTable, serial, text, timestamp, varchar, jsonb, integer, boolean } from "drizzle-orm/pg-core";
|
||||
|
||||
export const users = pgTable("users", {
|
||||
id: serial("id").primaryKey(),
|
||||
name: text("name").notNull(),
|
||||
email: text("email").notNull().unique(),
|
||||
password: text("password").notNull(),
|
||||
role: varchar("role", { length: 20 }).default("user").notNull(),
|
||||
createdAt: timestamp("created_at").defaultNow().notNull(),
|
||||
});
|
||||
|
||||
// Uygulamalar Tablosu
|
||||
export const apps = pgTable("apps", {
|
||||
id: serial("id").primaryKey(),
|
||||
name: varchar("name", { length: 100 }).notNull(),
|
||||
bundleId: varchar("bundle_id", { length: 100 }).notNull().unique(),
|
||||
appleId: varchar("apple_id", { length: 100 }), // App Store Connect için
|
||||
platform: varchar("platform", { length: 20 }).default("ios").notNull(), // ios, android, dual
|
||||
status: varchar("status", { length: 50 }).default("active").notNull(),
|
||||
iconUrl: text("icon_url"),
|
||||
createdAt: timestamp("created_at").defaultNow().notNull(),
|
||||
updatedAt: timestamp("updated_at").defaultNow().notNull(),
|
||||
});
|
||||
|
||||
// Remote Config & App Settings
|
||||
export const remoteConfig = pgTable("remote_config", {
|
||||
id: serial("id").primaryKey(),
|
||||
appId: integer("app_id").references(() => apps.id, { onDelete: 'cascade' }).notNull(),
|
||||
configKey: varchar("config_key", { length: 100 }).notNull(),
|
||||
configValue: jsonb("config_value").notNull(),
|
||||
description: text("description"),
|
||||
isActive: boolean("is_active").default(true).notNull(),
|
||||
updatedAt: timestamp("updated_at").defaultNow().notNull(),
|
||||
});
|
||||
|
||||
// Mevcut items tablosunu "Global İçerik" olarak saklayabiliriz veya genişletebiliriz.
|
||||
export const items = pgTable("items", {
|
||||
id: serial("id").primaryKey(),
|
||||
appId: integer("app_id").references(() => apps.id, { onDelete: 'cascade' }), // Hangi uygulamaya ait?
|
||||
key: varchar("key", { length: 100 }).notNull(),
|
||||
title: text("title").notNull(),
|
||||
content: text("content"),
|
||||
data: jsonb("data"),
|
||||
type: varchar("type", { length: 50 }).default("generic").notNull(),
|
||||
createdAt: timestamp("created_at").defaultNow().notNull(),
|
||||
updatedAt: timestamp("updated_at").defaultNow().notNull(),
|
||||
});
|
||||
Reference in New Issue
Block a user