{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.demiton.io/registers/attendance_record/v1.json",
  "title": "attendance_record contract v1",
  "type": "object",
  "required": [
    "project",
    "signed_in_at"
  ],
  "properties": {
    "worker": {
      "type": "string",
      "description": "the worker who signed in",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "project": {
      "type": "string",
      "description": "the project whose site was entered",
      "x-demiton-requiredness": "required",
      "x-demiton-reference": true
    },
    "employer": {
      "type": "string",
      "description": "the company the worker attended for",
      "x-demiton-requiredness": "optional",
      "x-demiton-reference": true
    },
    "external_id": {
      "type": "string",
      "description": "the source system's own sign-in id",
      "x-demiton-requiredness": "optional"
    },
    "signed_in_at": {
      "type": "string",
      "description": "when the person arrived on site",
      "x-demiton-requiredness": "required",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "visitor_name": {
      "type": "string",
      "description": "the visitor's name, when the person is not a registered worker",
      "x-demiton-requiredness": "optional"
    },
    "signed_out_at": {
      "type": "string",
      "description": "when the person left site",
      "x-demiton-requiredness": "optional",
      "format": "date-time",
      "x-demiton-type": "datetime"
    },
    "sign_in_device": {
      "type": "string",
      "description": "the device the sign-in was recorded on",
      "x-demiton-requiredness": "optional"
    },
    "sign_in_method": {
      "type": "string",
      "description": "whether the time was captured by a sign-in device or entered by a user",
      "x-demiton-requiredness": "optional"
    },
    "visitor_reason": {
      "type": "string",
      "description": "why the visitor attended",
      "x-demiton-requiredness": "optional"
    },
    "visitor_employer": {
      "type": "string",
      "description": "the company a visitor came from",
      "x-demiton-requiredness": "optional"
    },
    "signed_out_automatically": {
      "type": "boolean",
      "description": "whether the sign-out was set by the system rather than the person",
      "x-demiton-requiredness": "optional"
    }
  },
  "x-demiton-register-type": "attendance_record",
  "x-demiton-contract-version": "1.0.3",
  "x-demiton-store": "tenant",
  "x-demiton-axes": [],
  "x-demiton-measures": [],
  "x-demiton-provenance": {
    "standards": [
      {
        "code": "Privacy Act 1988 (Cth)",
        "title": "Privacy Act 1988 - Australian Privacy Principles; employee-records exemption; health information s.6FA",
        "access": "public_summary",
        "region": "Australia",
        "edition": "current",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Regulation (EU) 2016/679 (GDPR)",
        "title": "General Data Protection Regulation",
        "access": "full_text_verified",
        "region": "European Union",
        "edition": "2016",
        "checked_on": "2026-09-14"
      },
      {
        "code": "Privacy Act 2020 (NZ)",
        "title": "Privacy Act 2020 and Health Information Privacy Code 2020",
        "access": "public_summary",
        "region": "New Zealand",
        "edition": "Act 2020; HIPC version as at 1 May 2026",
        "checked_on": "2026-09-14"
      },
      {
        "code": "UK GDPR",
        "title": "UK GDPR and Data Protection Act 2018",
        "access": "public_summary",
        "region": "United Kingdom",
        "edition": "current",
        "checked_on": "2026-09-14"
      }
    ]
  },
  "description": "Who actually attended site, and when, as distinct from planned allocation.",
  "x-demiton-contract-url": "https://docs.demiton.io/registers/attendance_record/",
  "x-demiton-register-catalog": "https://docs.demiton.io/concepts/register-catalog"
}