41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import { PrismaClient } from '@prisma/client';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
function daysAgo(n: number) {
|
|
const d = new Date();
|
|
d.setDate(d.getDate() - n);
|
|
d.setHours(0,0,0,0);
|
|
return d;
|
|
}
|
|
|
|
async function main() {
|
|
const employees = await prisma.employees.findMany({
|
|
include: { user: true },
|
|
take: 10, // archive 10
|
|
});
|
|
|
|
for (const e of employees) {
|
|
await prisma.employeesArchive.create({
|
|
data: {
|
|
employee_id: e.id,
|
|
user_id: e.user_id,
|
|
first_name: e.user.first_name,
|
|
last_name: e.user.last_name,
|
|
external_payroll_id: e.external_payroll_id,
|
|
company_code: e.company_code,
|
|
first_work_day: e.first_work_day,
|
|
last_work_day: daysAgo(30),
|
|
supervisor_id: e.supervisor_id ?? null,
|
|
job_title: e.job_title,
|
|
is_supervisor: e.is_supervisor,
|
|
},
|
|
});
|
|
}
|
|
|
|
const total = await prisma.employeesArchive.count();
|
|
console.log(`✓ EmployeesArchive: ${total} rows (added 10)`);
|
|
}
|
|
|
|
main().finally(() => prisma.$disconnect());
|