{
  "info": {
    "name": "BE-Absensi Public API",
    "description": "Public API Collection untuk Mobile App Integration - Attendance Management System",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "1. Get Employee Info",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/public/employee?email=john@example.com",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "public",
            "employee"
          ],
          "query": [
            {
              "key": "email",
              "value": "john@example.com",
              "description": "Email karyawan yang akan dicari"
            }
          ]
        },
        "description": "Mendapatkan informasi karyawan berdasarkan email.\n\nResponse akan menampilkan:\n- ID karyawan\n- Nama\n- Email\n- Perusahaan\n- Departemen\n- Status fingerprint (apakah sudah terdaftar)"
      },
      "response": [
        {
          "name": "Success Response",
          "originalRequest": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/public/employee?email=john@example.com",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "public",
                "employee"
              ],
              "query": [
                {
                  "key": "email",
                  "value": "john@example.com"
                }
              ]
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"success\": true,\n  \"message\": \"Employee found\",\n  \"data\": {\n    \"id\": 1,\n    \"name\": \"John Doe\",\n    \"email\": \"john@example.com\",\n    \"company\": \"PT. Coe Dev Indonesia\",\n    \"department\": \"Engineering\",\n    \"fingerprint_registered\": false\n  }\n}"
        }
      ]
    },
    {
      "name": "2. Register Fingerprint",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"john@example.com\",\n  \"fingerprint_data\": \"base64_encoded_fingerprint_string_here\"\n}"
        },
        "url": {
          "raw": "{{base_url}}/public/attendance/register-fingerprint",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "public",
            "attendance",
            "register-fingerprint"
          ]
        },
        "description": "Mendaftar fingerprint karyawan untuk pertama kalinya.\n\nParameter:\n- email (required): Email karyawan\n- fingerprint_data (required): Data fingerprint dalam format string/base64\n\nHanya perlu dilakukan sekali untuk setiap karyawan."
      },
      "response": [
        {
          "name": "Success Response",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"john@example.com\",\n  \"fingerprint_data\": \"base64_encoded_fingerprint_string_here\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/public/attendance/register-fingerprint",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "public",
                "attendance",
                "register-fingerprint"
              ]
            }
          },
          "status": "Created",
          "code": 201,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"success\": true,\n  \"message\": \"Fingerprint registered\",\n  \"data\": {\n    \"employee_id\": 1,\n    \"fingerprint_registered\": true,\n    \"message\": \"Fingerprint registered successfully\"\n  }\n}"
        }
      ]
    },
    {
      "name": "3. Check-In (Attendance Join)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"john@example.com\",\n  \"fingerprint_data\": \"base64_encoded_fingerprint_string_here\",\n  \"type\": \"check_in\",\n  \"location_latitude\": -6.2088,\n  \"location_longitude\": 106.8456\n}"
        },
        "url": {
          "raw": "{{base_url}}/public/attendance/join",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "public",
            "attendance",
            "join"
          ]
        },
        "description": "Check-in karyawan dengan verifikasi fingerprint.\n\nParameter:\n- email (required): Email karyawan\n- fingerprint_data (required): Data fingerprint dalam format string/base64\n- type (optional): 'check_in' atau 'check_out' (default: 'check_in')\n- location_latitude (optional): Koordinat latitude\n- location_longitude (optional): Koordinat longitude\n- photo (optional): File foto (max 5MB)\n\nRespn akan menampilkan:\n- Waktu check-in\n- Lokasi GPS\n- Status kehadiran\n- Persentase kesamaan fingerprint"
      },
      "response": [
        {
          "name": "Check-In Success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"john@example.com\",\n  \"fingerprint_data\": \"base64_encoded_fingerprint_string_here\",\n  \"type\": \"check_in\",\n  \"location_latitude\": -6.2088,\n  \"location_longitude\": 106.8456\n}"
            },
            "url": {
              "raw": "{{base_url}}/public/attendance/join",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "public",
                "attendance",
                "join"
              ]
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"success\": true,\n  \"message\": \"Check-in successful\",\n  \"data\": {\n    \"attendance\": {\n      \"id\": 15,\n      \"id_employee\": 1,\n      \"date\": \"2024-11-11\",\n      \"check_in\": \"08:30:45\",\n      \"check_out\": null,\n      \"location_in\": \"-6.2088,106.8456\",\n      \"location_out\": null,\n      \"photo_check_in\": \"attendances/1/photo_123.jpg\",\n      \"photo_check_out\": null,\n      \"status\": \"present\",\n      \"created_at\": \"2024-11-11T08:30:45.000000Z\",\n      \"updated_at\": \"2024-11-11T08:30:45.000000Z\"\n    },\n    \"working_hours\": {\n      \"start\": \"08:00\",\n      \"end\": \"17:00\",\n      \"is_working_time\": true\n    },\n    \"fingerprint_similarity\": \"92%\"\n  }\n}"
        }
      ]
    },
    {
      "name": "4. Check-Out (Attendance Join)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"email\": \"john@example.com\",\n  \"fingerprint_data\": \"base64_encoded_fingerprint_string_here\",\n  \"type\": \"check_out\",\n  \"location_latitude\": -6.2090,\n  \"location_longitude\": 106.8457\n}"
        },
        "url": {
          "raw": "{{base_url}}/public/attendance/join",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "public",
            "attendance",
            "join"
          ]
        },
        "description": "Check-out karyawan dengan verifikasi fingerprint.\n\nParameter:\n- email (required): Email karyawan\n- fingerprint_data (required): Data fingerprint dalam format string/base64\n- type (required): 'check_out'\n- location_latitude (optional): Koordinat latitude\n- location_longitude (optional): Koordinat longitude\n- photo (optional): File foto (max 5MB)\n\nCatatan:\n- Karyawan harus check-in terlebih dahulu sebelum bisa check-out\n- Tidak bisa check-out dua kali dalam satu hari"
      },
      "response": [
        {
          "name": "Check-Out Success",
          "originalRequest": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"john@example.com\",\n  \"fingerprint_data\": \"base64_encoded_fingerprint_string_here\",\n  \"type\": \"check_out\",\n  \"location_latitude\": -6.2090,\n  \"location_longitude\": 106.8457\n}"
            },
            "url": {
              "raw": "{{base_url}}/public/attendance/join",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "public",
                "attendance",
                "join"
              ]
            }
          },
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"success\": true,\n  \"message\": \"Check-out successful\",\n  \"data\": {\n    \"attendance\": {\n      \"id\": 15,\n      \"id_employee\": 1,\n      \"date\": \"2024-11-11\",\n      \"check_in\": \"08:30:45\",\n      \"check_out\": \"17:45:30\",\n      \"location_in\": \"-6.2088,106.8456\",\n      \"location_out\": \"-6.2090,106.8457\",\n      \"photo_check_in\": \"attendances/1/photo_123.jpg\",\n      \"photo_check_out\": \"attendances/1/photo_456.jpg\",\n      \"status\": \"present\",\n      \"created_at\": \"2024-11-11T08:30:45.000000Z\",\n      \"updated_at\": \"2024-11-11T17:45:30.000000Z\"\n    },\n    \"working_hours\": {\n      \"start\": \"08:00\",\n      \"end\": \"17:00\",\n      \"is_working_time\": false\n    },\n    \"fingerprint_similarity\": \"89%\"\n  }\n}"
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "base_url",
      "value": "http://localhost:8000/api",
      "type": "string"
    }
  ]
}
