Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
87.50% covered (warning)
87.50%
7 / 8
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
InvoiceActivityLogStoreService
87.50% covered (warning)
87.50%
7 / 8
0.00% covered (danger)
0.00%
0 / 1
2.01
0.00% covered (danger)
0.00%
0 / 1
 store
87.50% covered (warning)
87.50%
7 / 8
0.00% covered (danger)
0.00%
0 / 1
2.01
1<?php
2
3namespace Domain\Invoice\Services;
4
5use App\Events\ServiceProcessed;
6use App\Models\Invoice\Invoice;
7use App\Models\Invoice\InvoiceActivetyLog;
8use App\Models\User;
9use Domain\Invoice\DTOs\StoreInvoiceActivityLogDTO;
10
11readonly class InvoiceActivityLogStoreService
12{
13    public function store(StoreInvoiceActivityLogDTO $storeInvoiceActivityLogDTO, Invoice $invoice, User $user)
14    {
15        $invoiceActivetyLog = new InvoiceActivetyLog();
16        $invoiceActivetyLog->fill($storeInvoiceActivityLogDTO->toArray());
17        $invoiceActivetyLog->user()->associate($storeInvoiceActivityLogDTO->user);
18        $invoiceActivetyLog->invoice()->associate($invoice);
19
20        if(is_null($storeInvoiceActivityLogDTO->entity_id)){
21            $invoiceActivetyLog->setAttribute('entity_id', $invoice->getKey());
22        }
23
24        $invoiceActivetyLog->save();
25
26        ServiceProcessed::dispatch(self::class, $user);
27    }
28}
29