---
type: object
properties:
  patron_id:
    type: integer
    description: Internal patron identifier
  cardnumber:
    type:
      - string
      - "null"
    description: library assigned user identifier
    maxLength: 32
  surname:
    type:
      - string
      - "null"
    description: patron's last name
  firstname:
    type:
      - string
      - "null"
    description: patron's first name
  preferred_name:
    type:
      - string
      - "null"
    description: patron's preferred name
  middle_name:
    type:
      - string
      - "null"
    description: patron's middle name
  title:
    type:
      - string
      - "null"
    description: patron's title
  other_name:
    type:
      - string
      - "null"
    description: any other names associated with the patron
  initials:
    type:
      - string
      - "null"
    description: initials of the patron
  pronouns:
    type:
      - string
      - "null"
    description: pronouns of the patron
  street_number:
    type:
      - string
      - "null"
    description: street number of patron's primary address
  street_type:
    type:
      - string
      - "null"
    description: street type of patron's primary address
  address:
    type:
      - string
      - "null"
    description: first address line of patron's primary address
  address2:
    type:
      - string
      - "null"
    description: second address line of patron's primary address
  city:
    type:
      - string
      - "null"
    description: city or town of patron's primary address
  state:
    type:
      - string
      - "null"
    description: state or province of patron's primary address
  postal_code:
    type:
      - string
      - "null"
    description: zip or postal code of patron's primary address
  country:
    type:
      - string
      - "null"
    description: country of patron's primary address
  email:
    type:
      - string
      - "null"
    description: primary email address for patron's primary address
  phone:
    type:
      - string
      - "null"
    description: primary phone number for patron's primary address
  mobile:
    type:
      - string
      - "null"
    description: the other phone number for patron's primary address
  fax:
    type:
      - string
      - "null"
    description: fax number for patron's primary address
  secondary_email:
    type:
      - string
      - "null"
    description: secondary email address for patron's primary address
  secondary_phone:
    type:
      - string
      - "null"
    description: secondary phone number for patron's primary address
  altaddress_street_number:
    type:
      - string
      - "null"
    description: street number of patron's alternate address
  altaddress_street_type:
    type:
      - string
      - "null"
    description: street type of patron's alternate address
  altaddress_address:
    type:
      - string
      - "null"
    description: first address line of patron's alternate address
  altaddress_address2:
    type:
      - string
      - "null"
    description: second address line of patron's alternate address
  altaddress_city:
    type:
      - string
      - "null"
    description: city or town of patron's alternate address
  altaddress_state:
    type:
      - string
      - "null"
    description: state or province of patron's alternate address
  altaddress_postal_code:
    type:
      - string
      - "null"
    description: zip or postal code of patron's alternate address
  altaddress_country:
    type:
      - string
      - "null"
    description: country of patron's alternate address
  altaddress_email:
    type:
      - string
      - "null"
    description: email address for patron's alternate address
  altaddress_phone:
    type:
      - string
      - "null"
    description: phone number for patron's alternate address
  date_of_birth:
    type:
      - string
      - "null"
    format: date
    description: patron's date of birth
  library_id:
    type: string
    description: Internal identifier for the patron's home library
    maxLength: 10
  category_id:
    type: string
    description: Internal identifier for the patron's category
    maxLength: 10
  date_enrolled:
    type:
      - string
      - "null"
    format: date
    description: date the patron was added to Koha
  expiry_date:
    type:
      - string
      - "null"
    format: date
    description: date the patron's card is set to expire
  date_renewed:
    type:
      - string
      - "null"
    format: date
    description: date the patron's card was last renewed
  incorrect_address:
    type:
      - boolean
      - "null"
    description: set to 1 if library marked this patron as having an unconfirmed address
  patron_card_lost:
    type:
      - boolean
      - "null"
    description: set to 1 if library marked this patron as having lost his card
  expired:
    type: boolean
    readOnly: true
    description: If patron is expired
  restricted:
    type: boolean
    readOnly: true
    description: If any restriction applies to the patron
  staff_notes:
    type:
      - string
      - "null"
    description: a note on the patron's account
  relationship_type:
    type:
      - string
      - "null"
    description: used for children to include the relationship to their guarantor
    maxLength: 100
  gender:
    type:
      - string
      - "null"
    description: patron's gender
    maxLength: 1
  userid:
    type:
      - string
      - "null"
    description: patron's login
    maxLength: 75
  opac_notes:
    type:
      - string
      - "null"
    description: a note on the patron's account visible in OPAC and staff interface
  altaddress_notes:
    type:
      - string
      - "null"
    description: a note related to patron's alternate address
    maxLength: 255
  statistics_1:
    type:
      - string
      - "null"
    description: a field that can be used for any information unique to the library
    maxLength: 80
  statistics_2:
    type:
      - string
      - "null"
    description: a field that can be used for any information unique to the library
    maxLength: 80
  autorenew_checkouts:
    type: boolean
    description: indicate whether auto-renewal is allowed for patron
  altcontact_firstname:
    type:
      - string
      - "null"
    description: first name of alternate contact for the patron
  altcontact_surname:
    type:
      - string
      - "null"
    description: surname or last name of the alternate contact for the patron
  altcontact_address:
    type:
      - string
      - "null"
    description: the first address line for the alternate contact for the patron
  altcontact_address2:
    type:
      - string
      - "null"
    description: the second address line for the alternate contact for the patron
  altcontact_city:
    type:
      - string
      - "null"
    description: the city for the alternate contact for the patron
  altcontact_state:
    type:
      - string
      - "null"
    description: the state for the alternate contact for the patron
  altcontact_postal_code:
    type:
      - string
      - "null"
    description: the zipcode for the alternate contact for the patron
  altcontact_country:
    type:
      - string
      - "null"
    description: the country for the alternate contact for the patron
  altcontact_phone:
    type:
      - string
      - "null"
    description: the phone number for the alternate contact for the patron
  sms_number:
    type:
      - string
      - "null"
    description: the mobile phone number where the patron would like to receive notices (if
      SMS turned on)
    maxLength: 50
  sms_provider_id:
    type:
      - integer
      - "null"
    description: the provider of the mobile phone number defined in smsalertnumber
  privacy:
    type: integer
    description: patron's privacy settings related to their checkout history
  privacy_guarantor_checkouts:
    type: boolean
    description: controls if relatives can see this patron's checkouts
  privacy_guarantor_fines:
    type: boolean
    description: controls if relatives can see this patron's fines
  check_previous_checkout:
    type: string
    enum:
      - yes
      - no
      - inherit
    description: produce a warning for this patron if this item has previously been checked
      out to this patron if 'yes', not if 'no', defer to category setting if
      'inherit'
  updated_on:
    type: string
    format: date-time
    description: time of last change could be useful for synchronization with external
      systems (among others)
  last_seen:
    type:
      - string
      - "null"
    format: date-time
    description: last time a patron has been seen (connected at the OPAC or staff interface)
  lang:
    type: string
    description: lang to use to send notices to this patron
    maxLength: 25
  login_attempts:
    type:
      - integer
      - "null"
    description: number of failed login attemps
  overdrive_auth_token:
    type:
      - string
      - "null"
    description: persist OverDrive auth token
  anonymized:
    type: boolean
    readOnly: true
    description: If the patron has been anonymized
  extended_attributes:
    type: array
    description: patron's extended attributes
    items:
      $ref: "patron_extended_attribute.yaml"
  checkouts_count:
    type:
      - integer
      - "null"
    description: Number of checkouts
  overdues_count:
    type:
      - integer
      - "null"
    description: Number of overdued checkouts
  account_balance:
    type:
      - number
      - "null"
    description: Balance of the patron's account
  library:
    type:
      - object
      - "null"
    description: Library of the patron
  protected:
    type:
      - boolean
    description: Protected status of the patron
  primary_contact_method:
    type:
      - string
      - "null"
    description: patron's primary contact method
    maxLength: 45
  _strings:
    type:
      - object
      - "null"
    description: A list of stringified coded values
additionalProperties: false
required:
  - surname
  - library_id
  - category_id
