- added settings page and function

- add Role Ring for avatar and display role for user nav
This commit is contained in:
2026-01-06 21:37:53 +07:00
parent 8146565d2c
commit a4e96fe045
64 changed files with 2828 additions and 726 deletions

View File

@@ -1,25 +1,42 @@
import { PrismaPg } from '@prisma/adapter-pg'
import { PrismaClient } from '../src/generated/prisma/client.js'
import { auth } from '@/lib/auth'
import { auth } from '@/lib/auth';
import { PrismaPg } from '@prisma/adapter-pg';
import { PrismaClient } from '../src/generated/prisma/client.js';
import { settingsData } from './data.js';
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL!,
})
});
const prisma = new PrismaClient({ adapter })
const prisma = new PrismaClient({ adapter });
async function main() {
console.log('🌱 Seeding database...')
console.log('🌱 Seeding database...');
// add admin user
await auth.api.createUser({
body: {
// check mail exists
const mailExists = await prisma.user.findFirst({
where: {
email: 'luu.dat.tham@gmail.com',
password: 'Th@m!S@m!040390',
name: 'Sam',
role: 'admin',
},
})
});
if (!mailExists) {
// add admin user
await auth.api.createUser({
body: {
email: 'luu.dat.tham@gmail.com',
password: 'Th@m!S@m!040390',
name: 'Sam',
role: 'admin',
},
});
}
console.log('---------------Created admin user-----------------');
await prisma.setting.deleteMany();
await prisma.setting.createMany({
data: settingsData,
skipDuplicates: true,
});
// // Clear existing todos
// await prisma.todo.deleteMany()
@@ -38,9 +55,9 @@ async function main() {
main()
.catch((e) => {
console.error('❌ Error seeding database:', e)
process.exit(1)
console.error('❌ Error seeding database:', e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect()
})
await prisma.$disconnect();
});