64 lines
2.9 KiB
JavaScript
64 lines
2.9 KiB
JavaScript
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
|