import { pgTable, bigint, timestamp, text, boolean, jsonb, uuid, } from "drizzle-orm/pg-core" import { tenants } from "./tenants" import { authUsers } from "./auth_users" export const spaces = pgTable("spaces", { id: bigint("id", { mode: "number" }) .primaryKey() .generatedByDefaultAsIdentity(), createdAt: timestamp("created_at", { withTimezone: true }) .notNull() .defaultNow(), name: text("name"), type: text("type").notNull(), tenant: bigint("tenant", { mode: "number" }) .notNull() .references(() => tenants.id), spaceNumber: text("spaceNumber").notNull(), parentSpace: bigint("parentSpace", { mode: "number" }).references( () => spaces.id ), infoData: jsonb("infoData") .notNull() .default({ zip: "", city: "", streetNumber: "" }), description: text("description"), archived: boolean("archived").notNull().default(false), updatedAt: timestamp("updated_at", { withTimezone: true }), updatedBy: uuid("updated_by").references(() => authUsers.id), }) export type Space = typeof spaces.$inferSelect export type NewSpace = typeof spaces.$inferInsert