update db schema
This commit is contained in:
		@@ -18,10 +18,23 @@ export const db = drizzle(pool)
 | 
			
		||||
 
 | 
			
		||||
export const frequencyEnum = pgEnum("frequency", ["Monthly", "Bi-weekly", "Weekly"])
 | 
			
		||||
export const workOrderStatusEnum = pgEnum("workOrderStatus", ["Pending", "Open", "Closed"])
 | 
			
		||||
export const paymentTypeEnum = pgEnum("paymentType", ["Security Deposit", "Rent", "Late Fee", "Other"])
 | 
			
		||||
export const paymentStatusEnum = pgEnum("paymentStatus", ["Pending", "Complete", "Late", "Refunded"])
 | 
			
		||||
export const preferredDaysofWeekEnum = pgEnum("preferredDaysofWeek", 
 | 
			
		||||
  ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"])
 | 
			
		||||
export const propertyTypeEnum = pgEnum("propertyType", ["Apartment", "Condominium",
 | 
			
		||||
  "Mobile Home", "Multi-Unit Home", "Single-Family Residence", "Townhouse"])
 | 
			
		||||
export const workOrderPriorityEnum = pgEnum("workOrderPriority", ["Low", "High"])
 | 
			
		||||
export const workOrderTypeEnum = pgEnum("workOrderType",
 | 
			
		||||
  ["Appliance Repair", "Carbon Monoxide Detector Installation", "Ceiling Fan Repair", 
 | 
			
		||||
   "Carpentry Repair", "Door Installation/Repair", "Drywall Installation/Repair", 
 | 
			
		||||
   "Electrical Repair", "Extermination", "Fire Alarm Maintenance", "Fencing Repair", 
 | 
			
		||||
   "Gutter Cleaning", "HVAC Repair", "Light Fixture Repair", "Mold Remediation", 
 | 
			
		||||
   "Painting", "Pest Control", "Pool/Hot Tub Maintenance", "Plumbing Repair", 
 | 
			
		||||
   "Roof Repair/Maintenance", "Septic System Maintenance", "Smoke Detector Replacement", 
 | 
			
		||||
   "Tile Flooring", "Tree Trimming/Cutting", "Water Treatment", "Well/Water Testing", 
 | 
			
		||||
   "Window Repair/Installation"]
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
export const users = pgTable(
 | 
			
		||||
  "user",
 | 
			
		||||
@@ -33,7 +46,8 @@ export const users = pgTable(
 | 
			
		||||
    email: text("email").unique().notNull(),
 | 
			
		||||
    emailVerified: timestamp("emailVerified", { mode: "date" }),
 | 
			
		||||
    image: text("image"),
 | 
			
		||||
    tenantID: text("tenantID").references(() => tenants.id, { onDelete: "cascade" }),
 | 
			
		||||
    phoneNumber: text("phoneNumber"),
 | 
			
		||||
    propertyID: text("propertyID").references(() => properties.id, { onDelete: "cascade" }),
 | 
			
		||||
    stripeCustomerID: text("stripeCustomerID"),
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
@@ -127,18 +141,12 @@ export const properties = pgTable(
 | 
			
		||||
    zip: text("zip").notNull(),
 | 
			
		||||
    monthlyRent: numeric("monthlyRent").notNull(),
 | 
			
		||||
    securityDeposit: numeric("securityDeposit"),
 | 
			
		||||
    leaseStartDate: timestamp("leaseStartDate").notNull(),
 | 
			
		||||
    leaseEndDate: timestamp("leaseEndDate").notNull(),
 | 
			
		||||
    propertyType: propertyTypeEnum("propertyType").notNull(),
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
export const tenants = pgTable(
 | 
			
		||||
  "tenant",
 | 
			
		||||
  {
 | 
			
		||||
    id: text("id").primaryKey(),
 | 
			
		||||
    propertyID: text("propertyID").notNull().references(() => properties.id, { onDelete: "cascade" }),
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
export const payments = pgTable(
 | 
			
		||||
  "payment",
 | 
			
		||||
  {
 | 
			
		||||
@@ -147,7 +155,8 @@ export const payments = pgTable(
 | 
			
		||||
    stripePaymentID: text("stripeID"),
 | 
			
		||||
    amount: numeric("amount").notNull(),
 | 
			
		||||
    paymentDate: timestamp("paymentDate").notNull(),
 | 
			
		||||
    status: text("status").notNull(),
 | 
			
		||||
    paymentType: paymentTypeEnum("paymentType").notNull(),
 | 
			
		||||
    paymentStatus: paymentStatusEnum("paymentStatus").notNull(),
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@@ -171,7 +180,9 @@ export const workorders = pgTable(
 | 
			
		||||
    id: text("id").primaryKey(),
 | 
			
		||||
    userID: text("userID").notNull().references(() => users.id, { onDelete: "cascade" }),
 | 
			
		||||
    date: timestamp("date").notNull(),
 | 
			
		||||
    type: workOrderTypeEnum("type").notNull(),
 | 
			
		||||
    status: workOrderStatusEnum("status").notNull().default("Pending"),
 | 
			
		||||
    priority: workOrderPriorityEnum("priority").notNull().default("Low"),
 | 
			
		||||
    title: text("title").notNull(),
 | 
			
		||||
    description: text("description"),
 | 
			
		||||
  }
 | 
			
		||||
@@ -181,9 +192,21 @@ export const documents = pgTable(
 | 
			
		||||
  "document",
 | 
			
		||||
  {
 | 
			
		||||
    id: text("id").primaryKey(),
 | 
			
		||||
    tenantID: text("tenantID").notNull().references(() => tenants.id, { onDelete: "cascade" }),
 | 
			
		||||
    propertyID: text("propertyID").notNull().references(() => properties.id, { onDelete: "cascade" }),
 | 
			
		||||
    name: text("name").notNull(),
 | 
			
		||||
    type: text("type").notNull(),
 | 
			
		||||
    file: text("file").notNull(),
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
export const emergencyContacts = pgTable(
 | 
			
		||||
  "emergencyContact",
 | 
			
		||||
  {
 | 
			
		||||
    id: text("id").primaryKey(),
 | 
			
		||||
    userID: text("userID").notNull().references(() => users.id, { onDelete: "cascade" }),
 | 
			
		||||
    name: text("name").notNull(),
 | 
			
		||||
    mobilePhoneNumber: text("mobilePhoneNumber"),
 | 
			
		||||
    workPhoneNumber: text("workPhoneNumber"),
 | 
			
		||||
    email: text("email"),
 | 
			
		||||
  }
 | 
			
		||||
)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user