2025-08-07 18:06:55 +03:00

95 lines
4.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace goodboyalex\php_db_components_pack\models;
use goodboyalex\php_components_pack\classes\Tuple;
use goodboyalex\php_db_components_pack\classes\ConditionBuilder;
use goodboyalex\php_db_components_pack\enums\DBType;
/**
* Класс, описывающий структуру колонки.
*
* @author Александр Бабаев
* @package php_db_components_pack
* @version 1.0
* @since 1.0
*/
final class DataBaseColumn
{
/**
* @var string $Name Имя колонки.
*/
public string $Name;
/**
* @var Tuple $Type Тип данных (DBType тип, int максимальная длина).
*/
public Tuple $Type;
/**
* @var bool $IsNotNull Запрещено ли вставлять пустые (NULL) значения в указанное поле.
*/
public bool $IsNotNull;
/**
* @var bool $IsUnique Обеспечивает уникальность каждого значения в данном поле.
*/
public bool $IsUnique;
/**
* @var bool $IsPrimaryKey Устанавливается на одно или несколько полей, гарантирующих уникальную идентификацию
* каждой записи в таблице.
*/
public bool $IsPrimaryKey;
/**
* @var Tuple $ForeignWith Связь с другой таблицей (string имя_таблицы, string имя_поля).
*/
public Tuple $ForeignWith;
/**
* @var ConditionBuilder $Check Параметры проверки введённого значения на соблюдение некоторого условия.
*/
public ConditionBuilder $Check;
/**
* @var mixed $Default Задаёт значение по умолчанию.
*/
public mixed $Default;
/**
* @var bool $IsAutoIncrement Автоматически генерирует уникальное значение каждый раз при создании новой записи.
*/
public bool $IsAutoIncrement;
/**
* Конструктор.
*
* @param string $name Имя колонки.
* @param Tuple $type Тип данных (DBType тип, int максимальная длина).
* @param bool $isNotNull Запрещено ли вставлять пустые (NULL) значения в указанное поле.
* @param bool $isUnique Обеспечивает уникальность каждого значения в данном поле.
* @param bool $isPrimaryKey Устанавливается на одно или несколько полей, гарантирующих уникальную
* идентификацию каждой записи в таблице.
* @param Tuple $foreignWith Связь с другой таблицей (string имя_таблицы, string имя_поля).
* @param ConditionBuilder $check Параметры проверки введённого значения на соблюдение некоторого условия.
* @param mixed|null $default Задаёт значение по умолчанию.
* @param bool $isAutoIncrement Автоматически генерирует уникальное значение каждый раз при создании новой
* записи.
*/
public function __construct (string $name = "", Tuple $type = new Tuple(DBType::STRING, 255),
bool $isNotNull = false, bool $isUnique = false, bool $isPrimaryKey = false,
Tuple $foreignWith = new Tuple(null, null), ConditionBuilder $check = new ConditionBuilder(),
mixed $default = null, bool $isAutoIncrement = false)
{
$this->Name = $name;
$this->Type = $type;
$this->IsNotNull = $isNotNull;
$this->IsUnique = $isUnique;
$this->IsPrimaryKey = $isPrimaryKey;
$this->ForeignWith = $foreignWith;
$this->Check = $check;
$this->Default = $default;
$this->IsAutoIncrement = $isAutoIncrement;
}
}