<?php

namespace HelpGent\App\DTO;

defined( 'ABSPATH' ) || exit;

use HelpGent\WpMVC\DTO\DTO;

class ElementAnswerDTO extends DTO {
    public int $id = 0;

    private int $response_id;

    private int $form_id;

    private string $element_id;

    private ?string $value = null;

    private string $element_type;

    private ?int $attachment_id = null;

    private ?int $points = null;

    /**
     * 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 response_id
     *
     * @return int
     */
    public function get_response_id(): int {
        return $this->response_id;
    }

    /**
     * Set the value of response_id
     *
     * @param int $response_id 
     * @return self
     */
    public function set_response_id( int $response_id ): self {
        $this->response_id = $response_id;

        return $this;
    }

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

    /**
     * Set the value of form_id
     *
     * @param int $form_id 
     * @return self
     */
    public function set_form_id( int $form_id ): self {
        $this->form_id = $form_id;

        return $this;
    }

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

    /**
     * Set the value of element_id
     *
     * @param string $element_id 
     * @return self
     */
    public function set_element_id( string $element_id ): self {
        $this->element_id = $element_id;

        return $this;
    }

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

    /**
     * Set the value of value
     *
     * @param ?string $value 
     * @return self
     */
    public function set_value( ?string $value ): self {
        $this->value = $value;

        return $this;
    }

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

    /**
     * Set the value of element_type
     *
     * @param string $element_type 
     * @return self
     */
    public function set_element_type( string $element_type ): self {
        $this->element_type = $element_type;

        return $this;
    }

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

    /**
     * Set the value of attachment_id
     *
     * @param ?int $attachment_id 
     * @return self
     */
    public function set_attachment_id( ?int $attachment_id ): self {
        $this->attachment_id = $attachment_id;

        return $this;
    }

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

    /**
     * Set the value of points
     *
     * @param ?int $points
     * @return self
     */
    public function set_points( ?int $points ): self {
        $this->points = $points;

        return $this;
    }
}
