<?php

namespace HelpGent\App\DTO;

defined( 'ABSPATH' ) || exit;

class AttachmentReadQueryDTO {
    private int $per_page = 10;

    private int $page = 1;

    private string $order_by = 'latest';

    private ?string $title = null;

    private ?string $mime_type = null;

    private ?int $file_size = null;

    private ?string $storage = null;

    private string $storage_operator = '=';

    private ?string $file_id = null;

    private ?int $created_by = null;

    private ?string $status = null;

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }

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

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

        return $this;
    }
}