# Clubs - Memberships

# Events

--- CLUB_MEMBERSHIP_CREATED ---
{
    "event": "CLUB_MEMBERSHIP_CREATED",
    "data": {
        "club_id": 123,
        "person_id": 999,
        "year": 2021
    }
}
--- CLUB_MEMBERSHIP_DELETED ---
{
    "event": "CLUB_MEMBERSHIP_DELETED",
    "data": {
        "club_id": 123,
        "person_id": 999,
        "year": 2021
    }
}

# Validation

{
    "year": [
        "required",
        "unique per club and person_id"
    ],
    "person_id": [
        "required",
        "a valid person"    
    ]
}

# List

--- ENDPOINT ---

Domain: equidata 
Paginated: true
Url: /clubs/123/members?page=2&year=2020
Method: GET

# Filters

filter value required info
year numeric optional Use this to only fetch memberships for a given year
--- EXAMPLE RESPONSE ---
{
  // pagination meta,
  "data": [
      {
          "year": 2021,
          "person_id": 999
      },
      /* other entries */ 
    ]
}

# Create

--- ENDPOINT ---

Domain: equidata 
Url: /clubs/123/members
Method: POST

--- EXAMPLE PAYLOAD ---
{
    "year": 2021,
    "person_id": 999
}
--- EXAMPLE RESPONSE ---
{
    "year": 2021,
    "person_id": 999
}

# Delete

--- ENDPOINT ---

Domain: equidata 
Url: /clubs/123/members
Method: DELETE

--- EXAMPLE PAYLOAD ---
{
    "year": 2021,
    "person_id": 999
}
--- EXAMPLE RESPONSE ---
// empty, simply a HTTP 200 status code