<?php

namespace HiEvents\DomainObjects\Generated;

/**
 * THIS FILE IS AUTOGENERATED - DO NOT EDIT IT DIRECTLY.
 * @package HiEvents\DomainObjects\Generated
 */
abstract class AccountStripePlatformDomainObjectAbstract extends \HiEvents\DomainObjects\AbstractDomainObject
{
    final public const SINGULAR_NAME = 'account_stripe_platform';
    final public const PLURAL_NAME = 'account_stripe_platforms';
    final public const ID = 'id';
    final public const ACCOUNT_ID = 'account_id';
    final public const STRIPE_CONNECT_ACCOUNT_TYPE = 'stripe_connect_account_type';
    final public const STRIPE_CONNECT_PLATFORM = 'stripe_connect_platform';
    final public const STRIPE_ACCOUNT_ID = 'stripe_account_id';
    final public const STRIPE_SETUP_COMPLETED_AT = 'stripe_setup_completed_at';
    final public const STRIPE_ACCOUNT_DETAILS = 'stripe_account_details';
    final public const CREATED_AT = 'created_at';
    final public const UPDATED_AT = 'updated_at';
    final public const DELETED_AT = 'deleted_at';

    protected int $id;
    protected int $account_id;
    protected ?string $stripe_connect_account_type = null;
    protected ?string $stripe_connect_platform = null;
    protected ?string $stripe_account_id = null;
    protected ?string $stripe_setup_completed_at = null;
    protected array|string|null $stripe_account_details = null;
    protected ?string $created_at = null;
    protected ?string $updated_at = null;
    protected ?string $deleted_at = null;

    public function toArray(): array
    {
        return [
                    'id' => $this->id ?? null,
                    'account_id' => $this->account_id ?? null,
                    'stripe_connect_account_type' => $this->stripe_connect_account_type ?? null,
                    'stripe_connect_platform' => $this->stripe_connect_platform ?? null,
                    'stripe_account_id' => $this->stripe_account_id ?? null,
                    'stripe_setup_completed_at' => $this->stripe_setup_completed_at ?? null,
                    'stripe_account_details' => $this->stripe_account_details ?? null,
                    'created_at' => $this->created_at ?? null,
                    'updated_at' => $this->updated_at ?? null,
                    'deleted_at' => $this->deleted_at ?? null,
                ];
    }

    public function setId(int $id): self
    {
        $this->id = $id;
        return $this;
    }

    public function getId(): int
    {
        return $this->id;
    }

    public function setAccountId(int $account_id): self
    {
        $this->account_id = $account_id;
        return $this;
    }

    public function getAccountId(): int
    {
        return $this->account_id;
    }

    public function setStripeConnectAccountType(?string $stripe_connect_account_type): self
    {
        $this->stripe_connect_account_type = $stripe_connect_account_type;
        return $this;
    }

    public function getStripeConnectAccountType(): ?string
    {
        return $this->stripe_connect_account_type;
    }

    public function setStripeConnectPlatform(?string $stripe_connect_platform): self
    {
        $this->stripe_connect_platform = $stripe_connect_platform;
        return $this;
    }

    public function getStripeConnectPlatform(): ?string
    {
        return $this->stripe_connect_platform;
    }

    public function setStripeAccountId(?string $stripe_account_id): self
    {
        $this->stripe_account_id = $stripe_account_id;
        return $this;
    }

    public function getStripeAccountId(): ?string
    {
        return $this->stripe_account_id;
    }

    public function setStripeSetupCompletedAt(?string $stripe_setup_completed_at): self
    {
        $this->stripe_setup_completed_at = $stripe_setup_completed_at;
        return $this;
    }

    public function getStripeSetupCompletedAt(): ?string
    {
        return $this->stripe_setup_completed_at;
    }

    public function setStripeAccountDetails(array|string|null $stripe_account_details): self
    {
        $this->stripe_account_details = $stripe_account_details;
        return $this;
    }

    public function getStripeAccountDetails(): array|string|null
    {
        return $this->stripe_account_details;
    }

    public function setCreatedAt(?string $created_at): self
    {
        $this->created_at = $created_at;
        return $this;
    }

    public function getCreatedAt(): ?string
    {
        return $this->created_at;
    }

    public function setUpdatedAt(?string $updated_at): self
    {
        $this->updated_at = $updated_at;
        return $this;
    }

    public function getUpdatedAt(): ?string
    {
        return $this->updated_at;
    }

    public function setDeletedAt(?string $deleted_at): self
    {
        $this->deleted_at = $deleted_at;
        return $this;
    }

    public function getDeletedAt(): ?string
    {
        return $this->deleted_at;
    }
}
