| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- const { PrismaClient } = require('@prisma/client');
- const { hash } = require('bcryptjs');
- function getInitialStylistFromEnv(env = process.env) {
- return {
- id: BigInt(env.INITIAL_STYLIST_ID || '1'),
- username: env.INITIAL_STYLIST_USERNAME || 'Ogawa',
- email: env.INITIAL_STYLIST_EMAIL || 'stylist@example.com',
- password: env.INITIAL_STYLIST_PASSWORD || 'Passw0rd!',
- };
- }
- async function seedInitialStylist(prisma, initialStylist, hashPassword) {
- const existing = await prisma.hairstylistUser.findUnique({
- where: { id: initialStylist.id },
- });
- if (existing) {
- return 'existing';
- }
- const password = await hashPassword(initialStylist.password, 10);
- await prisma.hairstylistUser.create({
- data: {
- id: initialStylist.id,
- username: initialStylist.username,
- email: initialStylist.email,
- password,
- isDeleted: 0,
- },
- });
- return 'created';
- }
- async function seedInitialData(prisma, options = {}) {
- const env = options.env || process.env;
- const hashPassword = options.hashPassword || hash;
- const initialStylist = getInitialStylistFromEnv(env);
- const stylist = await seedInitialStylist(prisma, initialStylist, hashPassword);
- return {
- stylist,
- stylistUsername: initialStylist.username,
- stylistEmail: initialStylist.email,
- };
- }
- async function main() {
- const prisma = new PrismaClient();
- try {
- const result = await seedInitialData(prisma);
- console.log(
- `Initial account ensured: stylist=${result.stylist}, account=${result.stylistUsername} <${result.stylistEmail}>`,
- );
- } finally {
- await prisma.$disconnect();
- }
- }
- if (require.main === module) {
- main().catch((error) => {
- console.error(error);
- process.exitCode = 1;
- });
- }
- module.exports = {
- getInitialStylistFromEnv,
- seedInitialData,
- };
|