update phone schema
This commit is contained in:
parent
1a7473362b
commit
646a10f45c
3 changed files with 40 additions and 27 deletions
|
|
@ -32,6 +32,7 @@ model User {
|
|||
username String @unique @db.VarChar(50)
|
||||
email String @unique @db.VarChar(255)
|
||||
password String @db.VarChar(255)
|
||||
phone String? @unique @db.VarChar(20)
|
||||
role_id Int
|
||||
email_verified_at DateTime?
|
||||
created_at DateTime @default(now())
|
||||
|
|
|
|||
|
|
@ -7,32 +7,32 @@ async function main() {
|
|||
console.log('🌱 Starting database seeding...');
|
||||
|
||||
// Clear existing data (in development only)
|
||||
// if (process.env.NODE_ENV === 'development') {
|
||||
// console.log('🗑️ Clearing existing data...');
|
||||
// await prisma.quizAttempt.deleteMany();
|
||||
// await prisma.choice.deleteMany();
|
||||
// await prisma.question.deleteMany();
|
||||
// await prisma.quiz.deleteMany();
|
||||
// await prisma.lessonProgress.deleteMany();
|
||||
// await prisma.lessonAttachment.deleteMany();
|
||||
// await prisma.lesson.deleteMany();
|
||||
// await prisma.chapter.deleteMany();
|
||||
// await prisma.announcementAttachment.deleteMany();
|
||||
// await prisma.announcement.deleteMany();
|
||||
// await prisma.certificate.deleteMany();
|
||||
// await prisma.enrollment.deleteMany();
|
||||
// await prisma.courseInstructor.deleteMany();
|
||||
// await prisma.course.deleteMany();
|
||||
// await prisma.category.deleteMany();
|
||||
// await prisma.payment.deleteMany();
|
||||
// await prisma.orderItem.deleteMany();
|
||||
// await prisma.order.deleteMany();
|
||||
// await prisma.withdrawalRequest.deleteMany();
|
||||
// await prisma.instructorBalance.deleteMany();
|
||||
// await prisma.userProfile.deleteMany();
|
||||
// await prisma.user.deleteMany();
|
||||
// await prisma.role.deleteMany();
|
||||
// }
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
console.log('🗑️ Clearing existing data...');
|
||||
await prisma.quizAttempt.deleteMany();
|
||||
await prisma.choice.deleteMany();
|
||||
await prisma.question.deleteMany();
|
||||
await prisma.quiz.deleteMany();
|
||||
await prisma.lessonProgress.deleteMany();
|
||||
await prisma.lessonAttachment.deleteMany();
|
||||
await prisma.lesson.deleteMany();
|
||||
await prisma.chapter.deleteMany();
|
||||
await prisma.announcementAttachment.deleteMany();
|
||||
await prisma.announcement.deleteMany();
|
||||
await prisma.certificate.deleteMany();
|
||||
await prisma.enrollment.deleteMany();
|
||||
await prisma.courseInstructor.deleteMany();
|
||||
await prisma.course.deleteMany();
|
||||
await prisma.category.deleteMany();
|
||||
await prisma.payment.deleteMany();
|
||||
await prisma.orderItem.deleteMany();
|
||||
await prisma.order.deleteMany();
|
||||
await prisma.withdrawalRequest.deleteMany();
|
||||
await prisma.instructorBalance.deleteMany();
|
||||
await prisma.userProfile.deleteMany();
|
||||
await prisma.user.deleteMany();
|
||||
await prisma.role.deleteMany();
|
||||
}
|
||||
|
||||
// Seed Roles
|
||||
console.log('👥 Seeding roles...');
|
||||
|
|
@ -79,6 +79,7 @@ async function main() {
|
|||
password: hashedPassword,
|
||||
role_id: roles[0].id,
|
||||
email_verified_at: new Date(),
|
||||
phone: '0812345678',
|
||||
profile: {
|
||||
create: {
|
||||
prefix: { th: 'นาย', en: 'Mr.' },
|
||||
|
|
@ -98,6 +99,7 @@ async function main() {
|
|||
password: hashedPassword,
|
||||
role_id: roles[1].id,
|
||||
email_verified_at: new Date(),
|
||||
phone: '0812345679',
|
||||
profile: {
|
||||
create: {
|
||||
prefix: { th: 'นาย', en: 'Mr.' },
|
||||
|
|
@ -117,6 +119,7 @@ async function main() {
|
|||
password: hashedPassword,
|
||||
role_id: roles[2].id,
|
||||
email_verified_at: new Date(),
|
||||
phone: '0812345680',
|
||||
profile: {
|
||||
create: {
|
||||
prefix: { th: 'นางสาว', en: 'Ms.' },
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ export class AuthService {
|
|||
* User registration
|
||||
*/
|
||||
async register(data: RegisterRequest): Promise<RegisterResponse> {
|
||||
const { username, email, password, first_name, last_name, prefix } = data;
|
||||
const { username, email, password, first_name, last_name, prefix, phone } = data;
|
||||
|
||||
// Check if username already exists
|
||||
const existingUsername = await prisma.user.findUnique({
|
||||
|
|
@ -78,6 +78,15 @@ export class AuthService {
|
|||
throw new ValidationError('Email already exists');
|
||||
}
|
||||
|
||||
// Check if phone number already exists
|
||||
const existingPhone = await prisma.user.findUnique({
|
||||
where: { phone }
|
||||
});
|
||||
|
||||
if (existingPhone) {
|
||||
throw new ValidationError('Phone number already exists');
|
||||
}
|
||||
|
||||
// Get STUDENT role
|
||||
const studentRole = await prisma.role.findUnique({
|
||||
where: { code: 'STUDENT' }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue