<?php

namespace HelpGent\App\DTO;

defined( 'ABSPATH' ) || exit;

use HelpGent\WpMVC\DTO\DTO;
use DateTime;

class GuestDTO extends DTO {
    private int $id;

    private string $email;

    private ?string $name;

    private ?string $number;

    private ?string $company;

    private string $token = '';

    private int $acceptance = 0;

    private ?DateTime $token_expires_at;

    /**
     * Get the value of id
     *
     * @return int
     */
    public function get_id(): int {
        return $this->id;
    }

    /**
     * Set the value of id
     *
     * @param int $id 

     * @return self
     */
    public function set_id( int $id ): self {
        $this->id = $id;

        return $this;
    }

    /**
     * Get the value of email
     *
     * @return string
     */
    public function get_email(): string {
        return $this->email;
    }

    /**
     * Set the value of email
     *
     * @param string $email 

     * @return self
     */
    public function set_email( string $email ): self {
        $this->email = $email;

        return $this;
    }

    /**
     * Get the value of name
     *
     * @return ?string
     */
    public function get_name(): ?string {
        return $this->name;
    }

    /**
     * Set the value of name
     *
     * @param ?string $name 

     * @return self
     */
    public function set_name( ?string $name ): self {
        $this->name = $name;

        return $this;
    }

    /**
     * Get the value of number
     *
     * @return ?string
     */
    public function get_number(): ?string {
        return $this->number;
    }

    /**
     * Set the value of number
     *
     * @param ?string $number 

     * @return self
     */
    public function set_number( ?string $number ): self {
        $this->number = $number;

        return $this;
    }

    /**
     * Get the value of company
     *
     * @return ?string
     */
    public function get_company(): ?string {
        return $this->company;
    }

    /**
     * Set the value of company
     *
     * @param ?string $company 

     * @return self
     */
    public function set_company( ?string $company ): self {
        $this->company = $company;

        return $this;
    }

    /**
     * Get the value of token
     *
     * @return string
     */
    public function get_token(): string {
        return $this->token;
    }

    /**
     * Set the value of token
     *
     * @param string $token 

     * @return self
     */
    public function set_token( string $token ): self {
        $this->token = $token;

        return $this;
    }

    /**
     * Get the value of acceptance
     *
     * @return int
     */
    public function get_acceptance(): int {
        return $this->acceptance;
    }

    /**
     * Set the value of acceptance
     *
     * @param int $acceptance 

     * @return self
     */
    public function set_acceptance( int $acceptance ): self {
        $this->acceptance = $acceptance;

        return $this;
    }

    /**
     * Get the value of token_expires_at
     *
     * @return ?DateTime
     */
    public function get_token_expires_at(): ?DateTime {
        return $this->token_expires_at;
    }

    /**
     * Set the value of token_expires_at
     *
     * @param ?DateTime $token_expires_at 

     * @return self
     */
    public function set_token_expires_at( ?DateTime $token_expires_at ): self {
        $this->token_expires_at = $token_expires_at;

        return $this;
    }
}