Files
desa-darmasaba/src/app/api/[[...slugs]]/_lib/kependudukan/migrasi-penduduk/create.ts
nico 04001c905b fix(kependudukan): remove jenisKelamin field and align MigrasiPenduduk with database schema
- Remove jenisKelamin field from API, state, and UI components
- Fix MigrasiPenduduk API to use null instead of undefined for optional fields
- Update create/edit forms to properly handle asal/tujuan fields based on jenis
- Fix DatePickerInput type handling with valueFormat prop
- Update list page to display asal or tujuan conditionally
- Add proper select statements in API responses
- Fix TypeScript type errors in migrasi-penduduk module

Closes: Schema mismatch causing errors when inputting migrasi penduduk data

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-14 11:03:11 +08:00

42 lines
1.0 KiB
TypeScript

import prisma from "@/lib/prisma";
import { Context } from "elysia";
type FormCreate = {
jenis: string;
nama: string;
tanggal: string;
asalTujuan: string;
alasan: string | null;
}
export default async function migrasiPendudukCreate(context: Context) {
const body = context.body as FormCreate;
const isMasuk = body.jenis === 'MASUK';
const created = await prisma.migrasiPenduduk.create({
data: {
jenis: body.jenis as 'MASUK' | 'KELUAR',
nama: body.nama,
tanggal: new Date(body.tanggal),
asal: isMasuk ? body.asalTujuan : null,
tujuan: !isMasuk ? body.asalTujuan : null,
alasan: body.alasan,
},
select: {
id: true,
jenis: true,
nama: true,
tanggal: true,
asal: true,
tujuan: true,
alasan: true,
}
});
return {
success: true,
message: "Sukses menambahkan migrasi penduduk",
data: created,
};
}