protected function readTableDefinition(Worksheet $worksheet)
{
$checks = Config::get('laravel-migrate-build::build.available_sheet_check');
$cellFeed = $worksheet->getCellFeed();
if ($this->getCellString($cellFeed, $checks['row'], $checks['col']) != $checks['value']) {
return false;
}
$definition = [];
$definition['tableName'] = $this->getCellString($cellFeed, 2, 15);
$definition['increments'] = $this->getCellFlag($cellFeed, 4, 5);
$definition['timestamps'] = $this->getCellFlag($cellFeed, 4, 10);
$definition['publishes'] = $this->getCellFlag($cellFeed, 4, 15);
$definition['softDeletes'] = $this->getCellFlag($cellFeed, 4, 20);
$definition['engine'] = $this->getCellString($cellFeed, 4, 29);
$definition['rowFormat'] = $this->getCellString($cellFeed, 4, 43);
$columns = [];
foreach (range(7, $worksheet->getRowCount()) as $row) {
$no = $this->getCellNumber($cellFeed, $row, 1);
if ($no == 0) {
break;
}
$ignore = $this->getCellFlag($cellFeed, $row, 37);
if ($ignore) {
continue;
}
$columns[] = ['label' => $this->getCellString($cellFeed, $row, 3), 'name' => $this->getCellString($cellFeed, $row, 12), 'type' => $this->getCellString($cellFeed, $row, 21), 'size' => $this->getCellNumber($cellFeed, $row, 26, null), 'default' => $this->getCellValue($cellFeed, $row, 28), 'index' => $this->getCellFlag($cellFeed, $row, 31), 'unique' => $this->getCellFlag($cellFeed, $row, 33), 'nullable' => $this->getCellFlag($cellFeed, $row, 35)];
}
$definition['columns'] = $columns;
$definition['keyName'] = sprintf("create_%s_table", $definition['tableName']);
$definition['className'] = sprintf("Create%sTable", studly_case($definition['tableName']));
return $definition;
}