import { pgTable, text, uniqueIndex, uuid, varchar } from 'drizzle-orm/pg-core'; import { primaryEntityColumns } from './primary-entity-columns'; import { users } from './schema'; /** * Employees (primary aggregate). * Kept in a separate module so Drizzle's table type stays resolvable. */ export const employees = pgTable( 'employees', { id: uuid('id').defaultRandom().notNull().primaryKey(), code: varchar('code', { length: 16 }).notNull(), name: varchar('name', { length: 64 }).notNull(), phone: text('phone').notNull(), position: text('position').notNull(), userId: uuid('user_id').references(() => users.id, { onDelete: 'set null' }), ...primaryEntityColumns(users), }, (t) => [ uniqueIndex('employees_code_unique').on(t.code), uniqueIndex('employees_user_id_unique').on(t.userId), ], ); export type EmployeeRow = typeof employees.$inferSelect; export type NewEmployeeRow = typeof employees.$inferInsert;