big boi refactor to customer inof from passenger info
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import { relations } from "drizzle-orm";
|
||||
import {
|
||||
boolean,
|
||||
date,
|
||||
decimal,
|
||||
integer,
|
||||
json,
|
||||
@@ -76,19 +75,15 @@ export const product = pgTable("product", {
|
||||
updatedAt: timestamp("updated_at").defaultNow(),
|
||||
});
|
||||
|
||||
export const passengerPII = pgTable("passenger_pii", {
|
||||
export const customerInfo = pgTable("customer_info", {
|
||||
id: serial("id").primaryKey(),
|
||||
|
||||
firstName: varchar("first_name", { length: 64 }).notNull(),
|
||||
middleName: varchar("middle_name", { length: 64 }).notNull(),
|
||||
middleName: varchar("middle_name", { length: 64 }).default(""),
|
||||
lastName: varchar("last_name", { length: 64 }).notNull(),
|
||||
email: varchar("email", { length: 128 }).notNull(),
|
||||
phoneCountryCode: varchar("phone_country_code", { length: 6 }).notNull(),
|
||||
phoneNumber: varchar("phone_number", { length: 20 }).notNull(),
|
||||
nationality: varchar("nationality", { length: 32 }).notNull(),
|
||||
gender: varchar("gender", { length: 32 }).notNull(),
|
||||
dob: date("dob").notNull(),
|
||||
passportNo: varchar("passport_no", { length: 64 }).notNull(),
|
||||
passportExpiry: varchar("passport_expiry", { length: 12 }).notNull(),
|
||||
|
||||
country: varchar("country", { length: 128 }).notNull(),
|
||||
state: varchar("state", { length: 128 }).notNull(),
|
||||
@@ -97,36 +92,9 @@ export const passengerPII = pgTable("passenger_pii", {
|
||||
address: text("address").notNull(),
|
||||
address2: text("address2"),
|
||||
|
||||
createdAt: timestamp("created_at").defaultNow(),
|
||||
updatedAt: timestamp("updated_at").defaultNow(),
|
||||
});
|
||||
|
||||
export const passengerInfo = pgTable("passenger_info", {
|
||||
id: serial("id").primaryKey(),
|
||||
|
||||
passengerPiiId: integer("passenger_pii_id").references(
|
||||
() => passengerPII.id,
|
||||
{ onDelete: "cascade" },
|
||||
),
|
||||
paymentDetailsId: integer("payment_details_id").references(
|
||||
() => paymentDetails.id,
|
||||
{ onDelete: "set null" },
|
||||
),
|
||||
|
||||
passengerType: varchar("passenger_type", { length: 24 }).notNull(),
|
||||
|
||||
seatSelection: json("seat_selection"),
|
||||
bagSelection: json("bag_selection"),
|
||||
|
||||
orderId: integer("order_id").references(() => order.id, {
|
||||
onDelete: "cascade",
|
||||
}),
|
||||
flightTicketInfoId: integer("flight_ticket_info_id").references(
|
||||
() => flightTicketInfo.id,
|
||||
{ onDelete: "set null" },
|
||||
),
|
||||
agentsInfo: boolean("agents_info").default(false).notNull(),
|
||||
agentId: text("agent_id").references(() => user.id, { onDelete: "set null" }),
|
||||
|
||||
createdAt: timestamp("created_at").defaultNow(),
|
||||
updatedAt: timestamp("updated_at").defaultNow(),
|
||||
@@ -300,27 +268,11 @@ export const checkoutFlowSession = pgTable("checkout_flow_session", {
|
||||
}),
|
||||
});
|
||||
|
||||
export const passengerInfoRelations = relations(passengerInfo, ({ one }) => ({
|
||||
passengerPii: one(passengerPII, {
|
||||
fields: [passengerInfo.passengerPiiId],
|
||||
references: [passengerPII.id],
|
||||
}),
|
||||
paymentDetails: one(paymentDetails, {
|
||||
fields: [passengerInfo.paymentDetailsId],
|
||||
references: [paymentDetails.id],
|
||||
}),
|
||||
export const customerInfoRelations = relations(customerInfo, ({ one }) => ({
|
||||
order: one(order, {
|
||||
fields: [passengerInfo.orderId],
|
||||
fields: [customerInfo.orderId],
|
||||
references: [order.id],
|
||||
}),
|
||||
flightTicketInfo: one(flightTicketInfo, {
|
||||
fields: [passengerInfo.flightTicketInfoId],
|
||||
references: [flightTicketInfo.id],
|
||||
}),
|
||||
parentAgent: one(user, {
|
||||
fields: [passengerInfo.agentId],
|
||||
references: [user.id],
|
||||
}),
|
||||
}));
|
||||
|
||||
export const orderRelations = relations(order, ({ one, many }) => ({
|
||||
@@ -332,7 +284,7 @@ export const orderRelations = relations(order, ({ one, many }) => ({
|
||||
fields: [order.flightTicketInfoId],
|
||||
references: [flightTicketInfo.id],
|
||||
}),
|
||||
passengerInfos: many(passengerInfo),
|
||||
customerInfos: many(customerInfo),
|
||||
}));
|
||||
|
||||
export const inboxRelations = relations(inbox, ({ one }) => ({
|
||||
|
||||
Reference in New Issue
Block a user