import { PrismaClient } from '@prisma/client';
import bcrypt from 'bcryptjs';

const prisma = new PrismaClient();

async function main() {
    console.log('Start seeding...');

    // 1. Seed User (Admin)
    const salt = await bcrypt.genSalt(10);
    const hashedPassword = await bcrypt.hash('hmf123', salt);

    const admin = await prisma.user.upsert({
        where: { username: 'admin' },
        update: {},
        create: {
            username: 'admin',
            password: hashedPassword,
            name: 'Administrator',
            shortlink_quota: 100,
        },
    });
    console.log('Created admin user:', admin.username);

    // 2. Seed Profil
    const profil = await prisma.profil.findFirst();
    if (!profil) {
        await prisma.profil.create({
            data: {
                sejarah_p1: 'Sejarah HMF FPMIPA UPI dimulai...',
                sejarah_p2: 'Himpunan pertama kali lahir...',
                sejarah_card1: 'Dari tahun ke tahun...',
                sejarah_card2: 'Untuk mengetahui perkembangan HMF...',
                lambang_desc: 'Lambang HMF terdiri dari...',
                lambang_tulisan: 'Tulisan Himpunan Mahasiswa Fisika...',
                lambang_mahkota: 'Mahkota segilima...',
                lambang_lingkaran: 'Lingkaran...',
                lambang_sayap: 'Sayap...',
                lambang_elektron: 'Elektron...',
                lambang_segitiga: 'Segitiga...',
                warna_biru: 'Biru melambangkan...',
                warna_merah: 'Merah melambangkan...',
                warna_putih: 'Putih melambangkan...',
                mars_ciptaan: 'Doni Nurdiansyah',
                mars_lirik: 'Kibarkan bakti di jiwa...',
                hymne_ciptaan: 'Doni Nurdiansyah',
                hymne_lirik: 'Fisika bumi siliwangi...',
                isAktif: true,
            }
        });
        console.log('Created default Profil');
    }

    // 3. Seed Kabinet
    const kabinet = await prisma.kabinet.findFirst();
    if (!kabinet) {
        await prisma.kabinet.create({
            data: {
                namaKabinet: 'Niskala Cakra Murni',
                periode: '2026-2027',
                visi: 'Mewujudkan HMF FPMIPA UPI sebagai tempat pengembangan yang unggul.',
                misi: 'Mendorong Prestasi Mahasiswa\nMengembangkan SDM',
                isAktif: true,
            }
        });
        console.log('Created default Kabinet');
    }

    console.log('Seeding finished.');
}

main()
    .catch((e) => {
        console.error(e);
        process.exit(1);
    })
    .finally(async () => {
        await prisma.$disconnect();
    });
