<?php
namespace nur\ldap;

/**
 * Class PersonObject: une personne au sens inetOrg
 *
 * --autogen-properties-and-methods--
 * @property string $dn
 * @property string[] $o
 * @property string[] $objectClass
 * @property string[] $userPassword
 * @property string[] $searchGuide
 * @property string[] $seeAlso
 * @property string[] $businessCategory
 * @property int[] $x121Address
 * @property string[] $registeredAddress
 * @property string[] $destinationIndicator
 * @property string $preferredDeliveryMethod
 * @property string[] $telexNumber
 * @property string[] $teletexTerminalIdentifier
 * @property string[] $telephoneNumber
 * @property int[] $internationaliSDNNumber
 * @property string[] $facsimileTelephoneNumber
 * @property string[] $street
 * @property string[] $postOfficeBox
 * @property string[] $postalCode
 * @property string[] $postalAddress
 * @property string[] $physicalDeliveryOfficeName
 * @property string[] $st
 * @property string[] $l
 * @property string[] $description
 * @method \nur\ldap\LdapAttr dn()
 * @method \nur\ldap\LdapAttr o()
 * @method \nur\ldap\LdapAttr objectClass()
 * @method \nur\ldap\LdapAttr userPassword()
 * @method \nur\ldap\LdapAttr searchGuide()
 * @method \nur\ldap\LdapAttr seeAlso()
 * @method \nur\ldap\LdapAttr businessCategory()
 * @method \nur\ldap\LdapAttr x121Address()
 * @method \nur\ldap\LdapAttr registeredAddress()
 * @method \nur\ldap\LdapAttr destinationIndicator()
 * @method \nur\ldap\LdapAttr preferredDeliveryMethod()
 * @method \nur\ldap\LdapAttr telexNumber()
 * @method \nur\ldap\LdapAttr teletexTerminalIdentifier()
 * @method \nur\ldap\LdapAttr telephoneNumber()
 * @method \nur\ldap\LdapAttr internationaliSDNNumber()
 * @method \nur\ldap\LdapAttr facsimileTelephoneNumber()
 * @method \nur\ldap\LdapAttr street()
 * @method \nur\ldap\LdapAttr postOfficeBox()
 * @method \nur\ldap\LdapAttr postalCode()
 * @method \nur\ldap\LdapAttr postalAddress()
 * @method \nur\ldap\LdapAttr physicalDeliveryOfficeName()
 * @method \nur\ldap\LdapAttr st()
 * @method \nur\ldap\LdapAttr l()
 * @method \nur\ldap\LdapAttr description()
 */
class OrganizationObject extends LdapObject {
  const OBJECT_CLASSES = [
    "organization",
  ];
  const PARENT_RDN = "ou=People";
  const DN_NAMES = "o";

  #############################################################################
  const _AUTOGEN_CONSTS = ["SCHEMA"];
  const _AUTOGEN_PROPERTIES = [[self::class, "_AUTOGEN_PROPERTIES"]];
  const _AUTOGEN_METHODS = [[self::class, "_AUTOGEN_METHODS"]];
  const SCHEMA = /*autogen*/[
    'dn' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 1,
    ],
    'o' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'objectClass' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'userPassword' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'searchGuide' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'seeAlso' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'businessCategory' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'x121Address' => [
      'class' => 'nur\\ldap\\syntaxes\\IntegerSyntax',
      'flags' => 0,
    ],
    'registeredAddress' => [
      'class' => 'nur\\ldap\\syntaxes\\PostalAddressSyntax',
      'flags' => 0,
    ],
    'destinationIndicator' => [
      'class' => 'nur\\ldap\\syntaxes\\PrintableSyntax',
      'flags' => 0,
    ],
    'preferredDeliveryMethod' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 1,
    ],
    'telexNumber' => [
      'class' => 'nur\\ldap\\syntaxes\\TelephoneSyntax',
      'flags' => 0,
    ],
    'teletexTerminalIdentifier' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'telephoneNumber' => [
      'class' => 'nur\\ldap\\syntaxes\\TelephoneSyntax',
      'flags' => 0,
    ],
    'internationaliSDNNumber' => [
      'class' => 'nur\\ldap\\syntaxes\\IntegerSyntax',
      'flags' => 0,
    ],
    'facsimileTelephoneNumber' => [
      'class' => 'nur\\ldap\\syntaxes\\TelephoneSyntax',
      'flags' => 0,
    ],
    'street' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'postOfficeBox' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'postalCode' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'postalAddress' => [
      'class' => 'nur\\ldap\\syntaxes\\PostalAddressSyntax',
      'flags' => 0,
    ],
    'physicalDeliveryOfficeName' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'st' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'l' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'description' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
  ];
}