<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     * Остатки продукта, каждый продукт уникален, то есть если добавили в заказ 5 одинаковых лавок,
     * то здесь создаётся 5 записей и привязываются к заказу
     */
    public function up(): void
    {
        Schema::create('products_sku', function (Blueprint $table) {
            $table->id();
            $table->unsignedInteger('year');
            $table->foreignId('product_id')                             // id продукта
                ->constrained('products')
                ->restrictOnDelete();

            $table->foreignId('order_id')                               // id заказа
                ->constrained('orders')
                ->restrictOnDelete();

            $table->foreignId('maf_order_id')
                ->nullable()
                ->constrained('maf_orders')
                ->restrictOnDelete();

            $table->string('status')->nullable();                       // ordered, shipped, stock
            $table->string('rfid')->nullable();                         // номер RFID метки
            $table->string('factory_number')->nullable();               // номер заказа на фабрике
            $table->date('manufacture_date')->nullable();               // дата производства
            $table->unsignedInteger('service_life')->nullable();        // срок эксплуатации, месяцев
            $table->string('certificate_number')->nullable();           // номер сертификата
            $table->date('certificate_date')->nullable();               // дата выдачи сертификата
            $table->string('certificate_issuer')->nullable();           // орган сертификации
            $table->string('certificate_type')->nullable();             // декларация, сертификат, отказное письмо
            $table->string('statement_number')->nullable();             // номер ведомости
            $table->date('statement_date')->nullable();                 // дата ведомости
            $table->string('upd_number')->nullable();                   // номер УПД
            $table->text('comment')->nullable();                        // примечания
            $table->timestamps();
            $table->softDeletes();
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('products_sku');
    }
};
