{
  "users": [
    { "id": "u-001", "name": "Budi Santoso", "position": "Kepala IT", "department": "PTI", "email": "budi@pdam-semarang.co.id", "isActive": true, "createdAt": "2026-01-10T08:00:00.000Z" },
    { "id": "u-002", "name": "Siti Nurhaliza", "position": "Senior Developer", "department": "PTI", "email": "siti@pdam-semarang.co.id", "isActive": true, "createdAt": "2026-01-10T08:01:00.000Z" },
    { "id": "u-003", "name": "Agus Pratama", "position": "DevOps Engineer", "department": "PTI", "email": "agus@pdam-semarang.co.id", "isActive": true, "createdAt": "2026-01-10T08:02:00.000Z" },
    { "id": "u-004", "name": "Dewi Lestari", "position": "Project Manager", "department": "PMO", "email": "dewi@pdam-semarang.co.id", "isActive": true, "createdAt": "2026-01-10T08:03:00.000Z" },
    { "id": "u-005", "name": "Hendra Wijaya", "position": "Security Officer", "department": "PTI", "email": "hendra@pdam-semarang.co.id", "isActive": true, "createdAt": "2026-01-10T08:04:00.000Z" }
  ],
  "vendors": [
    {
      "id": "v-001",
      "name": "PT Maju Digital",
      "legalName": "PT Maju Digital Indonesia",
      "npwp": "01.234.567.8-901.000",
      "address": "Jl. Sudirman No. 12",
      "city": "Jakarta",
      "pic": { "name": "Andi", "position": "Project Manager", "email": "andi@majudigital.com", "phone": "08123456789" },
      "yearEstablished": 2018,
      "employeeCount": 25,
      "previousProjects": ["Sistem Billing PLN Area", "Aplikasi PDAM Kota Bandung"],
      "website": "https://majudigital.com",
      "notes": "Vendor dengan pengalaman utility sector",
      "createdAt": "2026-01-15T08:00:00.000Z",
      "updatedAt": "2026-01-15T08:00:00.000Z"
    },
    {
      "id": "v-002",
      "name": "CV Tech Nusantara",
      "legalName": "CV Tech Nusantara Sejahtera",
      "npwp": "02.345.678.9-012.000",
      "address": "Jl. Gatot Subroto No. 88",
      "city": "Bandung",
      "pic": { "name": "Rina", "position": "Business Development", "email": "rina@technusantara.id", "phone": "08234567890" },
      "yearEstablished": 2020,
      "employeeCount": 12,
      "previousProjects": ["Sistem Inventory Toko Buku", "App Reservasi Hotel"],
      "website": "https://technusantara.id",
      "notes": "Vendor baru, masih membangun portofolio government",
      "createdAt": "2026-01-15T08:05:00.000Z",
      "updatedAt": "2026-01-15T08:05:00.000Z"
    },
    {
      "id": "v-003",
      "name": "PT Digital Indonesia",
      "legalName": "PT Digital Indonesia Pratama",
      "npwp": "03.456.789.0-123.000",
      "address": "Jl. MH Thamrin No. 5",
      "city": "Jakarta",
      "pic": { "name": "Bagas", "position": "Account Manager", "email": "bagas@digitalindo.co.id", "phone": "08345678901" },
      "yearEstablished": 2015,
      "employeeCount": 60,
      "previousProjects": ["Sistem ERP BUMN", "Aplikasi e-Government Kota X", "Portal PDAM Surabaya"],
      "website": "https://digitalindo.co.id",
      "notes": "Vendor besar dengan track record di sektor publik",
      "createdAt": "2026-01-15T08:10:00.000Z",
      "updatedAt": "2026-01-15T08:10:00.000Z"
    }
  ],
  "sessions": [
    {
      "id": "s-001",
      "vendorId": "v-001",
      "title": "Presentasi PT Maju Digital - Sistem Billing",
      "description": "Sesi presentasi pitch vendor untuk proyek billing pelanggan PDAM Kota Semarang",
      "projectScope": "Pengembangan sistem billing pelanggan PDAM (BE Laravel, FE Nuxt 3)",
      "scheduledAt": "2026-02-01T03:00:00.000Z",
      "createdBy": "u-001",
      "invitedEvaluators": ["u-001", "u-002", "u-003", "u-005"],
      "status": "closed",
      "createdAt": "2026-01-25T08:00:00.000Z",
      "closedAt": "2026-02-01T08:00:00.000Z",
      "finalizedAt": null,
      "finalDecision": null,
      "finalNotes": null
    }
  ],
  "evaluations": [
    {
      "id": "e-001",
      "sessionId": "s-001",
      "vendorId": "v-001",
      "evaluatorId": "u-001",
      "status": "submitted",
      "answers": {
        "A1": { "status": "yes", "score": 100, "note": "Vendor konfirmasi Laravel 11" },
        "A2": { "status": "partial", "score": 50, "note": "Masih Nuxt 2, akan migrasi" },
        "A3": { "status": "yes", "score": 100, "note": "MySQL 8.0" },
        "A4": { "status": "yes", "score": 100, "note": "" },
        "A5": { "status": "yes", "score": 100, "note": "" },
        "B1": { "status": "yes", "score": 100, "note": "" },
        "B2": { "status": "yes", "score": 100, "note": "" },
        "B3": { "status": "partial", "score": 50, "note": "Saat ini level 4" },
        "B4": { "status": "partial", "score": 50, "note": "Sekitar 50% saat ini" },
        "B5": { "status": "yes", "score": 100, "note": "" },
        "B6": { "status": "yes", "score": 100, "note": "" },
        "B7": { "status": "yes", "score": 100, "note": "" },
        "C1": { "status": "yes", "score": 100, "note": "Repo akan dibuat di GitHub PDAM" },
        "C2": { "status": "yes", "score": 100, "note": "" },
        "C3": { "status": "yes", "score": 100, "note": "" },
        "C4": { "status": "yes", "score": 100, "note": "" },
        "C5": { "status": "yes", "score": 100, "note": "" },
        "C6": { "status": "partial", "score": 50, "note": "Manual rollback saat ini" },
        "D1": { "status": "yes", "score": 100, "note": "" },
        "D2": { "status": "yes", "score": 100, "note": "" },
        "D3": { "status": "partial", "score": 50, "note": "Cypress baru sebagian flow" },
        "D4": { "status": "yes", "score": 100, "note": "" },
        "D5": { "status": "yes", "score": 100, "note": "" },
        "D6": { "status": "yes", "score": 100, "note": "" },
        "E1": { "status": "yes", "score": 100, "note": "" },
        "E2": { "status": "yes", "score": 100, "note": "" },
        "E3": { "status": "yes", "score": 100, "note": "" },
        "E4": { "status": "yes", "score": 100, "note": "" },
        "E5": { "status": "yes", "score": 100, "note": "" },
        "E6": { "status": "yes", "score": 100, "note": "" },
        "E7": { "status": "yes", "score": 100, "note": "" },
        "E8": { "status": "yes", "score": 100, "note": "" },
        "E9": { "status": "yes", "score": 100, "note": "Bersedia pentest" },
        "E10": { "status": "yes", "score": 100, "note": "" },
        "F1": { "status": "yes", "score": 100, "note": "" },
        "F2": { "status": "yes", "score": 100, "note": "" },
        "F3": { "status": "yes", "score": 100, "note": "" },
        "F4": { "status": "partial", "score": 50, "note": "" },
        "F5": { "status": "yes", "score": 100, "note": "" },
        "F6": { "status": "yes", "score": 100, "note": "" },
        "F7": { "status": "yes", "score": 100, "note": "" },
        "G1": { "status": "yes", "score": 100, "note": "" },
        "G2": { "status": "yes", "score": 100, "note": "" },
        "G3": { "status": "yes", "score": 100, "note": "" },
        "G4": { "status": "yes", "score": 100, "note": "" },
        "G5": { "status": "yes", "score": 100, "note": "" },
        "G6": { "status": "partial", "score": 50, "note": "" },
        "G7": { "status": "yes", "score": 100, "note": "" },
        "G8": { "status": "yes", "score": 100, "note": "" },
        "H1": { "status": "yes", "score": 100, "note": "" },
        "H2": { "status": "yes", "score": 100, "note": "" },
        "H3": { "status": "yes", "score": 100, "note": "" },
        "H4": { "status": "yes", "score": 100, "note": "" },
        "H5": { "status": "yes", "score": 100, "note": "" },
        "I1": { "status": "yes", "score": 100, "note": "" },
        "I2": { "status": "yes", "score": 100, "note": "" },
        "I3": { "status": "yes", "score": 100, "note": "" },
        "I4": { "status": "yes", "score": 100, "note": "" },
        "I5": { "status": "yes", "score": 100, "note": "" },
        "I6": { "status": "yes", "score": 100, "note": "" },
        "J1": { "status": "yes", "score": 100, "note": "" },
        "J2": { "status": "yes", "score": 100, "note": "" },
        "J3": { "status": "yes", "score": 100, "note": "" },
        "J4": { "status": "yes", "score": 100, "note": "" },
        "J5": { "status": "yes", "score": 100, "note": "" },
        "J6": { "status": "yes", "score": 100, "note": "" },
        "K1": { "status": "yes", "score": 100, "note": "" },
        "K2": { "status": "yes", "score": 100, "note": "" },
        "K3": { "status": "yes", "score": 100, "note": "" },
        "K4": { "status": "partial", "score": 50, "note": "Dalam diskusi" },
        "K5": { "status": "yes", "score": 100, "note": "" },
        "K6": { "status": "yes", "score": 100, "note": "" }
      },
      "categoryScores": { "A": 90, "B": 85.71, "C": 91.67, "D": 91.67, "E": 100, "F": 92.86, "G": 93.75, "H": 100, "I": 100, "J": 100, "K": 91.67 },
      "totalScore": 94.21,
      "redFlagsTriggered": [],
      "strengths": "Tim experienced, portofolio kuat di utility sector",
      "weaknesses": "Belum familiar Nuxt 3 sepenuhnya",
      "risks": "Risiko keterlambatan migrasi Nuxt 2 → 3",
      "negotiationItems": "Minta komitmen tertulis migrasi Nuxt 3 sebelum kickoff",
      "personalDecision": "conditional",
      "startedAt": "2026-02-01T04:00:00.000Z",
      "submittedAt": "2026-02-01T05:30:00.000Z"
    },
    {
      "id": "e-002",
      "sessionId": "s-001",
      "vendorId": "v-001",
      "evaluatorId": "u-002",
      "status": "submitted",
      "answers": {
        "A1": { "status": "yes", "score": 100, "note": "" },
        "A2": { "status": "no", "score": 0, "note": "Masih Nuxt 2" },
        "A3": { "status": "yes", "score": 100, "note": "" },
        "A4": { "status": "yes", "score": 100, "note": "" },
        "A5": { "status": "yes", "score": 100, "note": "" },
        "B1": { "status": "yes", "score": 100, "note": "" },
        "B2": { "status": "yes", "score": 100, "note": "" },
        "B3": { "status": "no", "score": 0, "note": "Belum pakai PHPStan" },
        "B4": { "status": "no", "score": 0, "note": "Coverage <30%" },
        "B5": { "status": "yes", "score": 100, "note": "" },
        "B6": { "status": "partial", "score": 50, "note": "" },
        "B7": { "status": "yes", "score": 100, "note": "" },
        "C1": { "status": "yes", "score": 100, "note": "" },
        "C2": { "status": "yes", "score": 100, "note": "" },
        "C3": { "status": "yes", "score": 100, "note": "" },
        "C4": { "status": "partial", "score": 50, "note": "" },
        "C5": { "status": "yes", "score": 100, "note": "" },
        "C6": { "status": "no", "score": 0, "note": "" },
        "D1": { "status": "yes", "score": 100, "note": "" },
        "D2": { "status": "partial", "score": 50, "note": "" },
        "D3": { "status": "no", "score": 0, "note": "" },
        "D4": { "status": "yes", "score": 100, "note": "" },
        "D5": { "status": "yes", "score": 100, "note": "" },
        "D6": { "status": "partial", "score": 50, "note": "" },
        "E1": { "status": "yes", "score": 100, "note": "" },
        "E2": { "status": "yes", "score": 100, "note": "" },
        "E3": { "status": "yes", "score": 100, "note": "" },
        "E4": { "status": "yes", "score": 100, "note": "" },
        "E5": { "status": "partial", "score": 50, "note": "" },
        "E6": { "status": "yes", "score": 100, "note": "" },
        "E7": { "status": "yes", "score": 100, "note": "" },
        "E8": { "status": "yes", "score": 100, "note": "" },
        "E9": { "status": "yes", "score": 100, "note": "" },
        "E10": { "status": "partial", "score": 50, "note": "" },
        "F1": { "status": "yes", "score": 100, "note": "" },
        "F2": { "status": "yes", "score": 100, "note": "" },
        "F3": { "status": "yes", "score": 100, "note": "" },
        "F4": { "status": "no", "score": 0, "note": "" },
        "F5": { "status": "yes", "score": 100, "note": "" },
        "F6": { "status": "yes", "score": 100, "note": "" },
        "F7": { "status": "partial", "score": 50, "note": "" },
        "G1": { "status": "yes", "score": 100, "note": "" },
        "G2": { "status": "yes", "score": 100, "note": "" },
        "G3": { "status": "yes", "score": 100, "note": "" },
        "G4": { "status": "yes", "score": 100, "note": "" },
        "G5": { "status": "yes", "score": 100, "note": "" },
        "G6": { "status": "no", "score": 0, "note": "" },
        "G7": { "status": "partial", "score": 50, "note": "" },
        "G8": { "status": "yes", "score": 100, "note": "" },
        "H1": { "status": "yes", "score": 100, "note": "" },
        "H2": { "status": "yes", "score": 100, "note": "" },
        "H3": { "status": "yes", "score": 100, "note": "" },
        "H4": { "status": "yes", "score": 100, "note": "" },
        "H5": { "status": "yes", "score": 100, "note": "" },
        "I1": { "status": "yes", "score": 100, "note": "" },
        "I2": { "status": "yes", "score": 100, "note": "" },
        "I3": { "status": "yes", "score": 100, "note": "" },
        "I4": { "status": "yes", "score": 100, "note": "" },
        "I5": { "status": "yes", "score": 100, "note": "" },
        "I6": { "status": "yes", "score": 100, "note": "" },
        "J1": { "status": "yes", "score": 100, "note": "" },
        "J2": { "status": "yes", "score": 100, "note": "" },
        "J3": { "status": "yes", "score": 100, "note": "" },
        "J4": { "status": "yes", "score": 100, "note": "" },
        "J5": { "status": "yes", "score": 100, "note": "" },
        "J6": { "status": "yes", "score": 100, "note": "" },
        "K1": { "status": "yes", "score": 100, "note": "" },
        "K2": { "status": "yes", "score": 100, "note": "" },
        "K3": { "status": "partial", "score": 50, "note": "" },
        "K4": { "status": "no", "score": 0, "note": "" },
        "K5": { "status": "yes", "score": 100, "note": "" },
        "K6": { "status": "yes", "score": 100, "note": "" }
      },
      "categoryScores": { "A": 80, "B": 64.29, "C": 75, "D": 66.67, "E": 90, "F": 78.57, "G": 81.25, "H": 100, "I": 100, "J": 100, "K": 75 },
      "totalScore": 83.07,
      "redFlagsTriggered": [],
      "strengths": "Stack backend solid, tim besar",
      "weaknesses": "QA coverage rendah, static analysis belum diterapkan",
      "risks": "Risiko bug masuk produksi tinggi",
      "negotiationItems": "Wajib commit PHPStan level 6 dalam 1 bulan setelah kickoff",
      "personalDecision": "conditional",
      "startedAt": "2026-02-01T04:05:00.000Z",
      "submittedAt": "2026-02-01T06:00:00.000Z"
    },
    {
      "id": "e-003",
      "sessionId": "s-001",
      "vendorId": "v-001",
      "evaluatorId": "u-005",
      "status": "submitted",
      "answers": {
        "A1": { "status": "yes", "score": 100, "note": "" },
        "A2": { "status": "partial", "score": 50, "note": "" },
        "A3": { "status": "yes", "score": 100, "note": "" },
        "A4": { "status": "yes", "score": 100, "note": "" },
        "A5": { "status": "yes", "score": 100, "note": "" },
        "B1": { "status": "yes", "score": 100, "note": "" },
        "B2": { "status": "yes", "score": 100, "note": "" },
        "B3": { "status": "partial", "score": 50, "note": "" },
        "B4": { "status": "partial", "score": 50, "note": "" },
        "B5": { "status": "yes", "score": 100, "note": "" },
        "B6": { "status": "yes", "score": 100, "note": "" },
        "B7": { "status": "yes", "score": 100, "note": "" },
        "C1": { "status": "yes", "score": 100, "note": "" },
        "C2": { "status": "yes", "score": 100, "note": "" },
        "C3": { "status": "yes", "score": 100, "note": "" },
        "C4": { "status": "yes", "score": 100, "note": "" },
        "C5": { "status": "yes", "score": 100, "note": "" },
        "C6": { "status": "partial", "score": 50, "note": "" },
        "D1": { "status": "yes", "score": 100, "note": "" },
        "D2": { "status": "yes", "score": 100, "note": "" },
        "D3": { "status": "partial", "score": 50, "note": "" },
        "D4": { "status": "yes", "score": 100, "note": "" },
        "D5": { "status": "yes", "score": 100, "note": "" },
        "D6": { "status": "yes", "score": 100, "note": "" },
        "E1": { "status": "yes", "score": 100, "note": "Audit pentest oke" },
        "E2": { "status": "yes", "score": 100, "note": "" },
        "E3": { "status": "yes", "score": 100, "note": "" },
        "E4": { "status": "yes", "score": 100, "note": "" },
        "E5": { "status": "yes", "score": 100, "note": "" },
        "E6": { "status": "yes", "score": 100, "note": "" },
        "E7": { "status": "yes", "score": 100, "note": "" },
        "E8": { "status": "yes", "score": 100, "note": "" },
        "E9": { "status": "yes", "score": 100, "note": "" },
        "E10": { "status": "yes", "score": 100, "note": "" },
        "F1": { "status": "yes", "score": 100, "note": "" },
        "F2": { "status": "yes", "score": 100, "note": "" },
        "F3": { "status": "yes", "score": 100, "note": "" },
        "F4": { "status": "partial", "score": 50, "note": "" },
        "F5": { "status": "yes", "score": 100, "note": "" },
        "F6": { "status": "yes", "score": 100, "note": "" },
        "F7": { "status": "yes", "score": 100, "note": "" },
        "G1": { "status": "yes", "score": 100, "note": "" },
        "G2": { "status": "yes", "score": 100, "note": "" },
        "G3": { "status": "yes", "score": 100, "note": "" },
        "G4": { "status": "yes", "score": 100, "note": "" },
        "G5": { "status": "yes", "score": 100, "note": "" },
        "G6": { "status": "partial", "score": 50, "note": "" },
        "G7": { "status": "yes", "score": 100, "note": "" },
        "G8": { "status": "yes", "score": 100, "note": "" },
        "H1": { "status": "yes", "score": 100, "note": "" },
        "H2": { "status": "yes", "score": 100, "note": "" },
        "H3": { "status": "yes", "score": 100, "note": "" },
        "H4": { "status": "yes", "score": 100, "note": "" },
        "H5": { "status": "yes", "score": 100, "note": "" },
        "I1": { "status": "yes", "score": 100, "note": "" },
        "I2": { "status": "yes", "score": 100, "note": "" },
        "I3": { "status": "yes", "score": 100, "note": "" },
        "I4": { "status": "yes", "score": 100, "note": "" },
        "I5": { "status": "yes", "score": 100, "note": "" },
        "I6": { "status": "yes", "score": 100, "note": "" },
        "J1": { "status": "yes", "score": 100, "note": "" },
        "J2": { "status": "yes", "score": 100, "note": "" },
        "J3": { "status": "yes", "score": 100, "note": "" },
        "J4": { "status": "yes", "score": 100, "note": "" },
        "J5": { "status": "yes", "score": 100, "note": "" },
        "J6": { "status": "yes", "score": 100, "note": "" },
        "K1": { "status": "yes", "score": 100, "note": "" },
        "K2": { "status": "yes", "score": 100, "note": "" },
        "K3": { "status": "yes", "score": 100, "note": "" },
        "K4": { "status": "partial", "score": 50, "note": "" },
        "K5": { "status": "yes", "score": 100, "note": "" },
        "K6": { "status": "yes", "score": 100, "note": "" }
      },
      "categoryScores": { "A": 90, "B": 85.71, "C": 91.67, "D": 91.67, "E": 100, "F": 92.86, "G": 93.75, "H": 100, "I": 100, "J": 100, "K": 91.67 },
      "totalScore": 94.21,
      "redFlagsTriggered": [],
      "strengths": "Keamanan dan kepatuhan baik",
      "weaknesses": "Arsitektur dokumentasi C4 belum",
      "risks": "Minor",
      "negotiationItems": "Bisa langsung lanjut, minor revisi",
      "personalDecision": "pass",
      "startedAt": "2026-02-01T04:10:00.000Z",
      "submittedAt": "2026-02-01T06:30:00.000Z"
    }
  ]
}
