feat(keamanan): tambah modul CCTV — schema, API, admin UI, seeder
- Tambah model CctvKeamanan + enum StatusCctv ke prisma schema - Tambah status Baru ke enum StatusLaporan - Migration: add_cctv_keamanan_model - API CRUD + stats endpoint di /api/keamanan/cctv/... - Admin state (valtio proxy) dengan create/findMany/edit/delete/stats - Admin pages: list, create, detail (peta Leaflet), edit (peta picker) - Seeder 8 data CCTV lokasi Darmasaba - Tambah submenu CCTV di sidebar nav keamanan - Bump version 0.1.57 → 0.1.58 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
35
prisma/_seeder_list/keamanan/seed_cctv.ts
Normal file
35
prisma/_seeder_list/keamanan/seed_cctv.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import prisma from "@/lib/prisma";
|
||||
import { loadJsonData } from "../../load-json";
|
||||
|
||||
const cctvData = loadJsonData("keamanan/cctv/cctv.json");
|
||||
|
||||
export async function seedCctv() {
|
||||
console.log("🔄 Seeding CCTV Keamanan...");
|
||||
|
||||
for (const c of cctvData) {
|
||||
await prisma.cctvKeamanan.upsert({
|
||||
where: { id: c.id },
|
||||
update: {
|
||||
kode: c.kode,
|
||||
nama: c.nama,
|
||||
lokasi: c.lokasi,
|
||||
latitude: c.latitude ?? null,
|
||||
longitude: c.longitude ?? null,
|
||||
status: c.status,
|
||||
lastActive: new Date(c.lastActive),
|
||||
},
|
||||
create: {
|
||||
id: c.id,
|
||||
kode: c.kode,
|
||||
nama: c.nama,
|
||||
lokasi: c.lokasi,
|
||||
latitude: c.latitude ?? null,
|
||||
longitude: c.longitude ?? null,
|
||||
status: c.status,
|
||||
lastActive: new Date(c.lastActive),
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
console.log(`✅ CCTV Keamanan seeded: ${cctvData.length} data`);
|
||||
}
|
||||
Reference in New Issue
Block a user