Improve user registration and data handling for new features

Improves password hashing and adds schema relations for appointments, connections, reviews, and availability.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 556aa286-edd2-4cea-8583-f4fc3cfd119b
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/81470e0d-8ae8-4335-9301-cd9a69e670fa/8e77b04a-d19f-45af-9f57-84d64672fc92.jpg
This commit is contained in:
ghaddaditw
2025-05-30 17:23:53 +00:00
parent 1f6e5f5374
commit 1d2adb38eb
2 changed files with 22 additions and 2 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ export const authController = {
// Hash password
const saltRounds = 12;
const hashedPassword = await bcrypt.hash(validatedData.password, saltRounds);
const hashedPassword = await bcrypt.hash(validatedData.password as string, saltRounds);
// Determine role - special handling for admin user
let userRole = "standard";
+21 -1
View File
@@ -1,4 +1,4 @@
import { pgTable, text, serial, integer, boolean, timestamp, numeric, varchar, uuid, json } from "drizzle-orm/pg-core";
import { pgTable, text, serial, integer, boolean, timestamp, numeric, varchar, uuid, json, pgEnum, time, decimal } from "drizzle-orm/pg-core";
import { relations } from "drizzle-orm";
import { createInsertSchema, createSelectSchema } from "drizzle-zod";
import { z } from "zod";
@@ -167,6 +167,26 @@ export const userPreferencesRelations = relations(userPreferences, ({ one }) =>
user: one(users, { fields: [userPreferences.userId], references: [users.id] }),
}));
export const availabilityRelations = relations(availability, ({ one }) => ({
professional: one(users, { fields: [availability.professionalId], references: [users.id] }),
}));
export const appointmentsRelations = relations(appointments, ({ one }) => ({
professional: one(users, { fields: [appointments.professionalId], references: [users.id] }),
client: one(users, { fields: [appointments.clientId], references: [users.id] }),
}));
export const connectionsRelations = relations(connections, ({ one }) => ({
requester: one(users, { fields: [connections.requesterId], references: [users.id] }),
receiver: one(users, { fields: [connections.receiverId], references: [users.id] }),
}));
export const reviewsRelations = relations(reviews, ({ one }) => ({
professional: one(users, { fields: [reviews.professionalId], references: [users.id] }),
client: one(users, { fields: [reviews.clientId], references: [users.id] }),
appointment: one(appointments, { fields: [reviews.appointmentId], references: [appointments.id] }),
}));
// Zod schemas for validation
export const insertUserSchema = createInsertSchema(users).omit({
id: true,