- Rename all DB tables: properties → projects, properties_addresses → projects_addresses, properties_models → projects_models, property_likes → projects_likes - Add projects_likes as proper Drizzle schema table (was SQL-only before) - Rename ID prefixes: property_xxx → project_xxx - Rename auth_sessions column: active_property_id → active_project_id - Simplify project creation: address is now optional (no longer required to get started) - Update all actions, stores, types, components, and routes - Rename route: /editor/[propertyId] → /editor/[projectId] - Add SQL migration for table/column/index/policy/function renames - Update RPC functions: increment_project_views, get_project_like_count - Update storage bucket reference: project-thumbnails - All types/exports follow existing Drizzle patterns (pgTable, relations, zod schemas)
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { relations } from 'drizzle-orm'
|
|
import { pgTable } from 'drizzle-orm/pg-core'
|
|
import { createInsertSchema, createSelectSchema } from 'drizzle-zod'
|
|
import { id, timestampsColumnsSoftDelete } from '../../helpers'
|
|
import { projects } from './projects'
|
|
|
|
export const models = pgTable('projects_models', (t) => ({
|
|
id: id('model'),
|
|
name: t.text('name'),
|
|
version: t.integer('version').default(1),
|
|
description: t.text('description'),
|
|
draft: t.boolean('draft').default(true),
|
|
projectId: t
|
|
.text('project_id')
|
|
.references(() => projects.id, { onDelete: 'set null' }),
|
|
sceneGraph: t.jsonb('scene_graph'),
|
|
metadata: t.jsonb('metadata'),
|
|
...timestampsColumnsSoftDelete,
|
|
})).enableRLS()
|
|
|
|
export const modelsRelations = relations(models, ({ one }) => ({
|
|
project: one(projects, {
|
|
fields: [models.projectId],
|
|
references: [projects.id],
|
|
}),
|
|
}))
|
|
|
|
export type Model = typeof models.$inferSelect
|
|
export type NewModel = typeof models.$inferInsert
|
|
export const insertModelSchema = createInsertSchema(models)
|
|
export const selectModelSchema = createSelectSchema(models)
|