Query API relation null type

Hi I am using query API to fetch data. I defined my schema.

My schema is something like that

export const messages = pgTable('messages', {
  id: uuid('id').primaryKey().defaultRandom(),
  chatId: uuid('chat_id')
    .references(() => chats.id, { onDelete: 'cascade' })
    .notNull(),
  senderId: uuid('sender_id')
    .references(() => users.id, { onDelete: 'cascade' })
    .notNull(),
  type: messageTypeEnum('type').notNull().default('default'),
  text: text('text'),
  image: text('image'),
  video: text('video'),
  audio: text('audio'),
  sent: boolean('sent').notNull().default(true),
  received: boolean('received').notNull().default(false),
  liked: boolean('liked').notNull().default(false),
  createdAt: timestamp('created_at').notNull().defaultNow(),
  updatedAt: timestamp('updated_at')
    .notNull()
    .defaultNow()
    .$onUpdate(() => new Date()),
  deletedAt: timestamp('deleted_at')
})

export const messageRelations = relations(messages, ({ one }) => ({
  user: one(users, { fields: [messages.senderId], references: [users.id] }),
  chat: one(chats, { fields: [messages.chatId], references: [chats.id] }),
  media: one(chatMedia, { fields: [messages.id], references: [chatMedia.messageId] })
}))

export const chatMedia = pgTable(
  'chat_media',
  {
    id: uuid('id').primaryKey().defaultRandom(),
    userId: uuid('userId')
      .references(() => users.id, { onDelete: 'cascade' })
      .notNull(),
    messageId: uuid('message_id')
      .references(() => messages.id, { onDelete: 'cascade' })
      .notNull(),
    bucket: varchar('bucket', { length: 100 }).notNull(),
    key: text('key').notNull(),
    location: text('location').notNull()
  },
  (table) => ({
    chatMediaUniqueUserIdMessageIdIdx: uniqueIndex().on(table.messageId, table.userId),
    chatMediaUserIdIdx: index().on(table.userId)
  })
)

export const chatMediaRelations = relations(chatMedia, ({ one }) => ({
  user: one(users, { fields: [chatMedia.userId], references: [users.id] }),
  message: one(messages, { fields: [chatMedia.messageId], references: [messages.id] })
}))


query response type says media is always an object, but it can be null if there is no media data
image.png
image.png
Was this page helpful?