Handle lastSeen column and all the discontinued items.
This commit was merged in pull request #35.
This commit is contained in:
@@ -38,7 +38,7 @@ class Migrate extends Command
|
||||
$this->createProductsTable();
|
||||
$this->createPricesTable();
|
||||
$this->createStocksTable();
|
||||
$this->updateProductsTableAddPrices();
|
||||
$this->addColumns();
|
||||
|
||||
return Command::SUCCESS;
|
||||
}
|
||||
@@ -95,7 +95,7 @@ class Migrate extends Command
|
||||
}
|
||||
}
|
||||
|
||||
public function updateProductsTableAddPrices(): void
|
||||
public function addColumns(): void
|
||||
{
|
||||
if (!Capsule::schema()->hasColumn('products', 'priceCurrent')) {
|
||||
Capsule::schema()->table('products', function (Blueprint $table) {
|
||||
@@ -120,5 +120,11 @@ class Migrate extends Command
|
||||
$table->float('lowestProductPrice30Days')->default(0);
|
||||
});
|
||||
}
|
||||
|
||||
if (!Capsule::schema()->hasColumn('products', 'lastSeen')) {
|
||||
Capsule::schema()->table('products', function (Blueprint $table) {
|
||||
$table->date('last_seen')->nullable();
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace Krzysiej\RyobiCrawler\Command;
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Exception\GuzzleException;
|
||||
use Illuminate\Database\Capsule\Manager as Capsule;
|
||||
use Illuminate\Support\Facades\Date;
|
||||
use Krzysiej\RyobiCrawler\Models\Price;
|
||||
use Krzysiej\RyobiCrawler\Models\Product;
|
||||
use Krzysiej\RyobiCrawler\Models\Stock;
|
||||
@@ -51,10 +52,12 @@ class ScrapeWebsite extends Command
|
||||
$progress->setMaxSteps(count($products));
|
||||
$progress->start();
|
||||
foreach($products as $product) {
|
||||
$product->priceCurrent = $product->newestPrice->price;
|
||||
$product->productStandardPrice = $product->newestPrice->productStandardPrice;
|
||||
$product->lowestProductPrice30Days = $product->newestPrice->lowestProductPrice30Days;
|
||||
$newestPrice = $product->newestPrice;
|
||||
$product->priceCurrent = $newestPrice->price;
|
||||
$product->productStandardPrice = $newestPrice->productStandardPrice;
|
||||
$product->lowestProductPrice30Days = $newestPrice->lowestProductPrice30Days;
|
||||
$product->priceLowest = $product->lowestPrice->price;
|
||||
$product->lastSeen = $newestPrice->created_at->format('Y-m-d');
|
||||
$product->save(['timestamps' => false]);
|
||||
$progress->advance();
|
||||
}
|
||||
@@ -106,6 +109,7 @@ class ScrapeWebsite extends Command
|
||||
$productModel->variantCode = $product->variantCode;
|
||||
$productModel->modelCode = $product->modelCode;
|
||||
$productModel->url = $product->url;
|
||||
$productModel->lastSeen = date("Y-m-d");
|
||||
$productModel->touch('updated_at');
|
||||
$productModel->save();
|
||||
$priceExists = $productModel->price()->whereRaw("strftime('%Y-%m-%d', created_at) = ?", [date('Y-m-d')])->exists();
|
||||
|
||||
Reference in New Issue
Block a user