import { BaseSeeder } from '@adonisjs/lucid/seeders';
import { DateTime } from 'luxon';
import User from '#models/user';
import Information from '#models/information';
import Music from '#models/music';
import Category from '#models/category';
import Tag from '#models/tag';
import Training from '#models/training';
import Project from '#models/project';
import hash from '@adonisjs/core/services/hash';
export default class extends BaseSeeder {
    async run() {
        await User.updateOrCreate({ email: 'admin@portfolio.local' }, {
            email: 'admin@portfolio.local',
            password: await hash.make('admin123'),
            fullName: 'Admin',
        });
        const info = await Information.first();
        if (!info) {
            await Information.create({
                name: 'John Doe',
                headline: 'Développeur Full Stack',
                contact: 'john@example.com',
                linkedin: 'https://linkedin.com/in/johndoe',
                github: 'https://github.com/johndoe',
                birthday: DateTime.fromISO('1990-01-15'),
            });
        }
        else {
            await info.merge({
                name: 'John Doe',
                headline: 'Développeur Full Stack',
                contact: 'john@example.com',
                linkedin: 'https://linkedin.com/in/johndoe',
                github: 'https://github.com/johndoe',
                birthday: DateTime.fromISO('1990-01-15'),
            }).save();
        }
        const catWeb = await Category.updateOrCreate({ name: 'Web' }, { name: 'Web' });
        await Category.updateOrCreate({ name: 'Mobile' }, { name: 'Mobile' });
        const tagJs = await Tag.updateOrCreate({ name: 'JavaScript' }, { name: 'JavaScript', color: '#f7df1e' });
        const tagTs = await Tag.updateOrCreate({ name: 'TypeScript' }, { name: 'TypeScript', color: '#3178c6' });
        const training1 = await Training.updateOrCreate({ name: 'Formation AdonisJS' }, {
            name: 'Formation AdonisJS',
            start: DateTime.fromISO('2024-01-01'),
            end: DateTime.fromISO('2024-06-01'),
            skill: 'Backend',
            place: 'En ligne',
        });
        const project1 = await Project.updateOrCreate({ title: 'Mon Portfolio' }, {
            title: 'Mon Portfolio',
            content: '# Mon Portfolio\n\nUn site portfolio moderne.',
            start: DateTime.fromISO('2024-01-01'),
            end: DateTime.fromISO('2024-03-01'),
            thumbnailUrl: '/uploads/thumb1.jpg',
            categoryId: catWeb.id,
        });
        await project1.related('tags').sync([tagJs.id, tagTs.id]);
        await project1.related('trainings').sync([training1.id]);
        await Music.updateOrCreate({ name: 'Track 1' }, { name: 'Track 1', url: '/music/track1.mp3' });
        await Music.updateOrCreate({ name: 'Track 2' }, { name: 'Track 2', url: '/music/track2.mp3' });
    }
}
//# sourceMappingURL=main_seeder.js.map