# People

# Events

--- PERSON_CREATED ---
{
    "event": "PERSON_CREATED",
    "data": {
        "person_id": 123
    }
}
--- PERSON_UPDATED ---
{
    "event": "PERSON_UPDATED",
    "data": {
        "person_id": 123
    }
}

# Validation

{
    "first_name": [
        "required",
        "max:50",
    ],
    "last_name": [
        "required",
        "max:50",
    ],
    "country_id": [
        "required",
        "valid country id",
    ],
    "domicile_address": [
        "required",
        "valid address"
    ],
    "correspondence_address": [
        "nullable",
        "valid address",    
    ],
    "language_code": [
        "required",
        "in: nl, fr, en, de",
    ],
    "birth_date": [
        "required",
        "date:Y-m-d",
        "before:now"
    ],
    "deceased": "boolean",
    "gender": [
        "required",
        "in: M, F, X",
    ],
    "national_register_number": [
        "nullable",
        "regex:/^\d{6}-\d{3}-\d{2}$/", // Format: 000000-000-00
        "unique for people per country"
    ],
    "phone_number": "max:20",
    "phone_number_info": "max:255",
    "phone_number_2": "max:20",
    "phone_number_2_info": "max:255",
    "phone_number_3": "max:20",
    "phone_number_3_info": "max:255",
    "phone_number_4": "max:20",
    "phone_number_4_info": "max:255",
    "fax_number": "max:20",
    "fax_number_info": "max:255",
    "fax_number_2": "max:20",
    "fax_number_2_info": "max:255",
    "email": [
        "nullable",
        "email",
        "max:50"
    ],
    "email_info": "max:255",
    "email_2": [
        "nullable",
        "email",
        "max:50",
    ],
    "email_2_info": "max:255",
    "email_3": [
        "nullable",
        "email",
        "max:64"
    ],
    "email_3_info": "max:255",
    "external_data_sharing_allowed": "boolean",
    "subscribed_to_kbrsf_newsletter": "boolean",
    "subscribed_to_league_newsletter": "boolean",
    "website": [
        "nullable",
        "url",
        "max:180"
    ],
    "remarks": [
        "nullable",
        "max:50"
    ],
}

# List

--- ENDPOINT ---

Domain: equidata 
Paginated: true
Url: /people?page=2
Method: GET

--- EXAMPLE RESPONSE ---
{
  // pagination meta,
  "data": [
      {
        "id": 123,
        "first_name": "Elise",
        "last_name": "Jansen",
        "national_register_number": "95012037854",
        "deceased": false,
        "birth_date": "1998-11-14",
        "gender": "X",
        "language_code": "fr",
        "phone_number": "+32(0)315 572018",
        "phone_number_info": null,
        "phone_number_2": null,
        "phone_number_2_info": null,
        "phone_number_3": "+9631389685416",
        "phone_number_3_info": null,
        "phone_number_4": null,
        "phone_number_4_info": null,
        "fax_number": null,
        "fax_number_info": null,
        "fax_number_2": "05 0348195",
        "fax_number_2_info": null,
        "email": "celik.marie@schmitz.com",
        "email_info": null,
        "email_2": null,
        "email_2_info": null,
        "email_3": null,
        "email_3_info": null,
        "website": null,
        "external_data_sharing_allowed": false,
        "subscribed_to_kbrsf_newsletter": false,
        "subscribed_to_league_newsletter": false,
        "remarks": "Vel vel ullam eum quibusdam eligendi assumenda.",
        "country": {}, // a country entity
        "domicile_address": {}, // an address entity
        "correspondence_address": null // OR an address entity
    }

      /* other entries */ 
    ]
}

# Show

--- ENDPOINT ---

Domain: equidata 
Url: /people/123
Method: GET

--- EXAMPLE RESPONSE ---
{
    "id": 123,
    "first_name": "Elise",
    "last_name": "Jansen",
    "national_register_number": "95012037854",
    "deceased": false,
    "birth_date": "1998-11-14",
    "gender": "X",
    "language_code": "fr",
    "phone_number": "+32(0)315 572018",
    "phone_number_info": null,
    "phone_number_2": null,
    "phone_number_2_info": null,
    "phone_number_3": "+9631389685416",
    "phone_number_3_info": null,
    "phone_number_4": null,
    "phone_number_4_info": null,
    "fax_number": null,
    "fax_number_info": null,
    "fax_number_2": "05 0348195",
    "fax_number_2_info": null,
    "email": "celik.marie@schmitz.com",
    "email_info": null,
    "email_2": null,
    "email_2_info": null,
    "email_3": null,
    "email_3_info": null,
    "website": null,
    "external_data_sharing_allowed": false,
    "subscribed_to_kbrsf_newsletter": false,
    "subscribed_to_league_newsletter": false,
    "remarks": "Vel vel ullam eum quibusdam eligendi assumenda.",
    "country": {}, // a country entity
    "domicile_address": {}, // an address entity
    "correspondence_address": null // OR an address entity
}

# Create

--- ENDPOINT ---

Domain: equidata 
Url: /people
Method: POST

--- EXAMPLE PAYLOAD ---
{
    "first_name": "Elise",
    "last_name": "Jansen",
    "national_register_number": "950120-378-54",
    "deceased": false,
    "birth_date": "1998-11-14",
    "gender": "X",
    "language_code": "fr",
    "phone_number": "+32(0)315 572018",
    "phone_number_info": null,
    "phone_number_2": null,
    "phone_number_2_info": null,
    "phone_number_3": "+9631389685416",
    "phone_number_3_info": null,
    "phone_number_4": null,
    "phone_number_4_info": null,
    "fax_number": null,
    "fax_number_info": null,
    "fax_number_2": "05 0348195",
    "fax_number_2_info": null,
    "email": "celik.marie@schmitz.com",
    "email_info": null,
    "email_2": null,
    "email_2_info": null,
    "email_3": null,
    "email_3_info": null,
    "website": null,
    "external_data_sharing_allowed": false,
    "subscribed_to_kbrsf_newsletter": false,
    "subscribed_to_league_newsletter": false,
    "remarks": "Vel vel ullam eum quibusdam eligendi assumenda.",
    "country_id": 91,
    "domicile_address": {
        "street": "Bertranddreef",
        "house_number": "11",
        "box": "51",
        "city": "Herstal",
        "postal_code": "2630",
        "region": "Waals-Brabant",
        "country_id": 21
    },
    "correspondence_address": {
        "street": "Maeshof",
        "house_number": "94",
        "box": "75",
        "city": "Eupen",
        "postal_code": "4280",
        "region": "Luik",
        "country_id": 113
    }
}
--- EXAMPLE RESPONSE ---
{
    "id": 123,
    "first_name": "Elise",
    "last_name": "Jansen",
    "national_register_number": "95012037854",
    "deceased": false,
    "birth_date": "1998-11-14",
    "gender": "X",
    "language_code": "fr",
    "phone_number": "+32(0)315 572018",
    "phone_number_info": null,
    "phone_number_2": null,
    "phone_number_2_info": null,
    "phone_number_3": "+9631389685416",
    "phone_number_3_info": null,
    "phone_number_4": null,
    "phone_number_4_info": null,
    "fax_number": null,
    "fax_number_info": null,
    "fax_number_2": "05 0348195",
    "fax_number_2_info": null,
    "email": "celik.marie@schmitz.com",
    "email_info": null,
    "email_2": null,
    "email_2_info": null,
    "email_3": null,
    "email_3_info": null,
    "website": null,
    "external_data_sharing_allowed": false,
    "subscribed_to_kbrsf_newsletter": false,
    "subscribed_to_league_newsletter": false,
    "remarks": "Vel vel ullam eum quibusdam eligendi assumenda.",
    "country": {}, // a country entity
    "domicile_address": {}, // an address entity
    "correspondence_address": null // OR an address entity
}

# Update

--- ENDPOINT ---

Domain: equidata 
Url: /people/123
Method: PUT

--- EXAMPLE PAYLOAD ---
{
    "first_name": "Elise",
    "last_name": "Jansen",
    "national_register_number": "950120-378-54",
    "deceased": false,
    "birth_date": "1998-11-14",
    "gender": "X",
    "language_code": "fr",
    "phone_number": "+32(0)315 572018",
    "phone_number_info": null,
    "phone_number_2": null,
    "phone_number_2_info": null,
    "phone_number_3": "+9631389685416",
    "phone_number_3_info": null,
    "phone_number_4": null,
    "phone_number_4_info": null,
    "fax_number": null,
    "fax_number_info": null,
    "fax_number_2": "05 0348195",
    "fax_number_2_info": null,
    "email": "celik.marie@schmitz.com",
    "email_info": null,
    "email_2": null,
    "email_2_info": null,
    "email_3": null,
    "email_3_info": null,
    "website": null,
    "external_data_sharing_allowed": false,
    "subscribed_to_kbrsf_newsletter": false,
    "subscribed_to_league_newsletter": false,
    "remarks": "Vel vel ullam eum quibusdam eligendi assumenda.",
    "country_id": 91,
    "domicile_address": {
        "street": "Bertranddreef",
        "house_number": "11",
        "box": "51",
        "city": "Herstal",
        "postal_code": "2630",
        "region": "Waals-Brabant",
        "country_id": 21
    },
    "correspondence_address": {
        "street": "Maeshof",
        "house_number": "94",
        "box": "75",
        "city": "Eupen",
        "postal_code": "4280",
        "region": "Luik",
        "country_id": 113
    }
}
--- EXAMPLE RESPONSE ---
{
    "id": 123,
    "first_name": "Elise",
    "last_name": "Jansen",
    "national_register_number": "95012037854",
    "deceased": false,
    "birth_date": "1998-11-14",
    "gender": "X",
    "language_code": "fr",
    "phone_number": "+32(0)315 572018",
    "phone_number_info": null,
    "phone_number_2": null,
    "phone_number_2_info": null,
    "phone_number_3": "+9631389685416",
    "phone_number_3_info": null,
    "phone_number_4": null,
    "phone_number_4_info": null,
    "fax_number": null,
    "fax_number_info": null,
    "fax_number_2": "05 0348195",
    "fax_number_2_info": null,
    "email": "celik.marie@schmitz.com",
    "email_info": null,
    "email_2": null,
    "email_2_info": null,
    "email_3": null,
    "email_3_info": null,
    "website": null,
    "external_data_sharing_allowed": false,
    "subscribed_to_kbrsf_newsletter": false,
    "subscribed_to_league_newsletter": false,
    "remarks": "Vel vel ullam eum quibusdam eligendi assumenda.",
    "country": {}, // a country entity
    "domicile_address": {}, // an address entity
    "correspondence_address": null // OR an address entity
}