<?php
namespace nur\ldap;

/**
 * Class PersonObject: une personne au sens inetOrg
 *
 * --autogen-properties-and-methods--
 * @property string $dn
 * @property string[] $uid
 * @property string[] $objectClass
 * @property string[] $description
 * @property string[] $seeAlso
 * @property string[] $l
 * @property string[] $o
 * @property string[] $ou
 * @property string[] $host
 * @property string[] $userPassword
 * @method \nur\ldap\LdapAttr dn()
 * @method \nur\ldap\LdapAttr uid()
 * @method \nur\ldap\LdapAttr objectClass()
 * @method \nur\ldap\LdapAttr description()
 * @method \nur\ldap\LdapAttr seeAlso()
 * @method \nur\ldap\LdapAttr l()
 * @method \nur\ldap\LdapAttr o()
 * @method \nur\ldap\LdapAttr ou()
 * @method \nur\ldap\LdapAttr host()
 * @method \nur\ldap\LdapAttr userPassword()
 */
class AccountObject extends LdapObject {
  const OBJECT_CLASSES = [
    "account",
    "simpleSecurityObject",
  ];
  const PARENT_RDN = "ou=People";
  const DN_NAMES = "uid";

  #############################################################################
  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,
    ],
    'uid' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'objectClass' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'description' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'seeAlso' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'l' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'o' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'ou' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'host' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
    'userPassword' => [
      'class' => 'nur\\ldap\\syntaxes\\StringSyntax',
      'flags' => 0,
    ],
  ];
}
