export const invitationStatusEnum = pgEnum("invitation_status", [
"pending",
"accepted",
"declined",
]);
export const agencyInvitation = pgTable(
"agency_invitation",
{
id: serial("id").primaryKey(),
agencyId: integer("agency_id")
.notNull()
.references(() => agency.id),
userId: integer("user_id")
.notNull()
.references(() => user.id),
status: invitationStatusEnum("status").notNull().default("pending"),
invitedAt: timestamp("invited_at", { mode: "string" })
.notNull()
.defaultNow(),
respondedAt: timestamp("responded_at", { mode: "string" }),
},
(table) => ({
agencyIdIdx: index("agency_invitation_agency_id_idx").on(table.agencyId),
userIdIdx: index("agency_invitation_user_id_idx").on(table.userId),
statusIdx: index("agency_invitation_status_idx").on(table.status),
uniqueInvitationIdx: index(
"agency_invitation_unique_agency_invitation_idx",
).on(table.agencyId, table.userId),
}),
);
export const invitationStatusEnum = pgEnum("invitation_status", [
"pending",
"accepted",
"declined",
]);
export const agencyInvitation = pgTable(
"agency_invitation",
{
id: serial("id").primaryKey(),
agencyId: integer("agency_id")
.notNull()
.references(() => agency.id),
userId: integer("user_id")
.notNull()
.references(() => user.id),
status: invitationStatusEnum("status").notNull().default("pending"),
invitedAt: timestamp("invited_at", { mode: "string" })
.notNull()
.defaultNow(),
respondedAt: timestamp("responded_at", { mode: "string" }),
},
(table) => ({
agencyIdIdx: index("agency_invitation_agency_id_idx").on(table.agencyId),
userIdIdx: index("agency_invitation_user_id_idx").on(table.userId),
statusIdx: index("agency_invitation_status_idx").on(table.status),
uniqueInvitationIdx: index(
"agency_invitation_unique_agency_invitation_idx",
).on(table.agencyId, table.userId),
}),
);