<?php

declare(strict_types=1);

namespace Mirakl\MMP\Shop\Domain\Shop\Billing;

use Mirakl\Core\Domain\MiraklObject;

/**
 * @method CorporateInformation getCorporateInformation()
 * @method $this                setCorporateInformation(array|CorporateInformation $corporateInformation)
 * @method string               getDefaultLanguage()
 * @method $this                setDefaultLanguage(string $defaultLanguage)
 * @method FiscalInformation    getFiscalInformation()
 * @method $this                setFiscalInformation(array|FiscalInformation $fiscalInformation)
 * @method FiscalRepresentative getFiscalRepresentative()
 * @method $this                setFiscalRepresentative(array|FiscalRepresentative $fiscalRepresentative)
 * @method string               getId()
 * @method $this                setId(string $id)
 * @method PersonalInformation  getPersonalInformation()
 * @method $this                setPersonalInformation(array|PersonalInformation $personalInformation)
 * @method RegistrationAddress  getRegistrationAddress()
 * @method $this                setRegistrationAddress(array|RegistrationAddress $registrationAddress)
 */
class DefaultBillingInformation extends MiraklObject
{
    /**
     * @var array
     */
    protected static $dataTypes = [
        'corporate_information' => [CorporateInformation::class, 'create'],
        'fiscal_information'    => [FiscalInformation::class, 'create'],
        'fiscal_representative' => [FiscalRepresentative::class, 'create'],
        'personal_information'  => [PersonalInformation::class, 'create'],
        'registration_address'  => [RegistrationAddress::class, 'create'],
    ];
}
