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