DataExtract / lib /db /src /schema /articles.ts
Taha Saif
Deploy Ecom Hub API backend (Express + Drizzle + Clerk + R2)
74bfb65
Raw History Blame Contribute Delete
1.07 kB
import { integer, pgTable, text, timestamp } from 'drizzle-orm/pg-core';
import { createInsertSchema } from 'drizzle-zod';
export const articlesTable = pgTable('articles', {
id: text('id').primaryKey(),
slug: text('slug').notNull().unique(),
title: text('title').notNull(),
excerpt: text('excerpt').notNull().default(''),
content: text('content').notNull().default(''),
category: text('category').notNull(),
author: text('author').notNull(),
tags: text('tags').notNull().default(''),
image: text('image').notNull().default(''),
imageAlt: text('image_alt').notNull().default(''),
status: text('status', { enum: ['Draft', 'Published'] }).notNull().default('Draft'),
version: integer('version').notNull().default(1),
updatedAt: timestamp('updated_at', { withTimezone: true }).notNull().defaultNow(),
publishedAt: timestamp('published_at', { withTimezone: true }),
});
export const insertArticleSchema = createInsertSchema(articlesTable).omit({ updatedAt: true, publishedAt: true });
export type Article = typeof articlesTable.$inferSelect;