diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 5a5f2227..55cf932c 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -4,7 +4,7 @@ namespace App\Console; use App\Initialize\Actions\InitializeAction; use App\Initialize\InitializeMembers; -use App\Letter\Actions\LetterSendAction; +use App\Invoice\Actions\InvoiceSendAction; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Laravel\Telescope\Console\PruneCommand; @@ -17,7 +17,7 @@ class Kernel extends ConsoleKernel * @var array */ protected $commands = [ - LetterSendAction::class, + InvoiceSendAction::class, InitializeAction::class, InitializeMembers::class, ]; diff --git a/app/Invoice/Actions/InvoiceSendAction.php b/app/Invoice/Actions/InvoiceSendAction.php new file mode 100644 index 00000000..8b7a1d0b --- /dev/null +++ b/app/Invoice/Actions/InvoiceSendAction.php @@ -0,0 +1,48 @@ +getTypes() as $type) { + $invoices = app(DocumentFactory::class)->invoiceCollection($type, new BillKindQuery(BillKind::EMAIL)); + + foreach ($invoices as $invoice) { + $invoicePath = Storage::disk('temp')->path(Tex::compile($invoice)->storeIn('', 'temp')); + Mail::to($invoice->getRecipient()) + ->send(new PaymentMail($invoice, $invoicePath)); + app(DocumentFactory::class)->afterSingle($invoice); + } + } + + return 0; + } +} diff --git a/app/Letter/BillDocument.php b/app/Invoice/BillDocument.php similarity index 95% rename from app/Letter/BillDocument.php rename to app/Invoice/BillDocument.php index f8d6a160..707a1ac0 100644 --- a/app/Letter/BillDocument.php +++ b/app/Invoice/BillDocument.php @@ -1,11 +1,11 @@ > + * @var array> */ private array $types = [ BillDocument::class, @@ -16,7 +16,7 @@ class DocumentFactory ]; /** - * @return Collection> + * @return Collection> */ public function getTypes(): Collection { @@ -24,9 +24,9 @@ class DocumentFactory } /** - * @param class-string $type + * @param class-string $type */ - public function singleLetter(string $type, LetterMemberQuery $query): ?Letter + public function singleInvoice(string $type, InvoiceMemberQuery $query): ?Invoice { $pages = $query->getPages($type); @@ -38,29 +38,29 @@ class DocumentFactory } /** - * @param class-string $type + * @param class-string $type * - * @return Collection + * @return Collection */ - public function letterCollection(string $type, LetterMemberQuery $query): Collection + public function invoiceCollection(string $type, InvoiceMemberQuery $query): Collection { return $query ->getPages($type) ->map(fn ($page) => $this->resolve($type, collect([$page]))); } - public function afterSingle(Letter $letter): void + public function afterSingle(Invoice $invoice): void { - foreach ($letter->allPayments() as $payment) { - $letter->afterSingle($payment); + foreach ($invoice->allPayments() as $payment) { + $invoice->afterSingle($payment); } } /** - * @param class-string $type + * @param class-string $type * @param Collection $pages */ - private function resolve(string $type, Collection $pages): Letter + private function resolve(string $type, Collection $pages): Invoice { return new $type($pages); } diff --git a/app/Letter/Letter.php b/app/Invoice/Invoice.php similarity index 94% rename from app/Letter/Letter.php rename to app/Invoice/Invoice.php index e0a17597..ec508367 100644 --- a/app/Letter/Letter.php +++ b/app/Invoice/Invoice.php @@ -1,6 +1,6 @@ $pages @@ -55,7 +55,7 @@ abstract class Letter extends Document $this->subject = $this->getSubject(); $this->until = now()->addWeeks(2)->format('d.m.Y'); $this->setFilename(Str::slug("{$this->getSubject()} für {$pages->first()?->familyName}")); - $this->settings = app(LetterSettings::class); + $this->settings = app(InvoiceSettings::class); } public function number(int $number): string diff --git a/app/Letter/LetterSettings.php b/app/Invoice/InvoiceSettings.php similarity index 91% rename from app/Letter/LetterSettings.php rename to app/Invoice/InvoiceSettings.php index 6ba55fec..c61cbbea 100644 --- a/app/Letter/LetterSettings.php +++ b/app/Invoice/InvoiceSettings.php @@ -1,10 +1,10 @@ @@ -18,7 +18,7 @@ abstract class LetterMemberQuery abstract protected function getQuery(): Builder; /** - * @param class-string $type + * @param class-string $type * * @return Collection */ @@ -32,7 +32,7 @@ abstract class LetterMemberQuery } /** - * @param class-string $type + * @param class-string $type * * @return EloquentCollection */ diff --git a/app/Letter/Queries/SingleMemberQuery.php b/app/Invoice/Queries/SingleMemberQuery.php similarity index 81% rename from app/Letter/Queries/SingleMemberQuery.php rename to app/Invoice/Queries/SingleMemberQuery.php index 8e5d6520..882108f3 100644 --- a/app/Letter/Queries/SingleMemberQuery.php +++ b/app/Invoice/Queries/SingleMemberQuery.php @@ -1,11 +1,11 @@ */ - public function handle(LetterSettings $settings): array + public function handle(InvoiceSettings $settings): array { return [ 'from_long' => $settings->from_long, @@ -29,7 +29,7 @@ class SettingIndexAction ]; } - public function asController(LetterSettings $settings): Response + public function asController(InvoiceSettings $settings): Response { session()->put('menu', 'setting'); session()->put('title', 'Rechnungs-Einstellungen'); diff --git a/app/Letter/SettingSaveAction.php b/app/Invoice/SettingSaveAction.php similarity index 93% rename from app/Letter/SettingSaveAction.php rename to app/Invoice/SettingSaveAction.php index 7c6d19a2..37db4931 100644 --- a/app/Letter/SettingSaveAction.php +++ b/app/Invoice/SettingSaveAction.php @@ -1,6 +1,6 @@ fill([ 'from_long' => $input['from_long'] ?? '', diff --git a/app/Letter/Actions/LetterSendAction.php b/app/Letter/Actions/LetterSendAction.php deleted file mode 100644 index 312aa1e7..00000000 --- a/app/Letter/Actions/LetterSendAction.php +++ /dev/null @@ -1,48 +0,0 @@ -getTypes() as $type) { - $letters = app(DocumentFactory::class)->letterCollection($type, new BillKindQuery(BillKind::EMAIL)); - - foreach ($letters as $letter) { - $letterPath = Storage::disk('temp')->path(Tex::compile($letter)->storeIn('', 'temp')); - Mail::to($letter->getRecipient()) - ->send(new PaymentMail($letter, $letterPath)); - app(DocumentFactory::class)->afterSingle($letter); - } - } - - return 0; - } -} diff --git a/app/Member/FilterScope.php b/app/Member/FilterScope.php index 26bd8172..6ca8ea5f 100644 --- a/app/Member/FilterScope.php +++ b/app/Member/FilterScope.php @@ -2,7 +2,7 @@ namespace App\Member; -use App\Letter\BillKind; +use App\Invoice\BillKind; use App\Lib\Filter; use Illuminate\Database\Eloquent\Builder; use Spatie\LaravelData\Attributes\MapInputName; diff --git a/app/Member/Member.php b/app/Member/Member.php index 3a6f22be..212d23e9 100644 --- a/app/Member/Member.php +++ b/app/Member/Member.php @@ -7,7 +7,7 @@ use App\Country; use App\Course\Models\CourseMember; use App\Gender; use App\Group; -use App\Letter\BillKind; +use App\Invoice\BillKind; use App\Nami\HasNamiField; use App\Nationality; use App\Payment\Payment; diff --git a/app/Member/MemberController.php b/app/Member/MemberController.php index 1d4b208e..fdaf36ac 100644 --- a/app/Member/MemberController.php +++ b/app/Member/MemberController.php @@ -8,7 +8,7 @@ use App\Country; use App\Gender; use App\Http\Controllers\Controller; use App\Http\Views\MemberView; -use App\Letter\BillKind; +use App\Invoice\BillKind; use App\Nationality; use App\Payment\Subscription; use App\Region; diff --git a/app/Member/MemberRequest.php b/app/Member/MemberRequest.php index d5515eed..cd273587 100644 --- a/app/Member/MemberRequest.php +++ b/app/Member/MemberRequest.php @@ -4,7 +4,7 @@ namespace App\Member; use App\Activity; use App\Group; -use App\Letter\BillKind; +use App\Invoice\BillKind; use App\Member\Actions\NamiPutMemberAction; use App\Setting\NamiSettings; use App\Subactivity; @@ -72,7 +72,7 @@ class MemberRequest extends FormRequest 'send_newspaper' => 'boolean', 'main_phone' => ['nullable', new ValidPhoneRule('Telefon (Eltern)')], 'mobile_phone' => ['nullable', new ValidPhoneRule('Handy (Eltern)')], - 'letter_address' => '', + 'invoice_address' => '', 'gender_id' => 'nullable|exists:genders,id', 'region_id' => 'nullable|exists:regions,id', 'nationality_id' => 'required|exists:nationalities,id', diff --git a/app/Payment/ActionFactory.php b/app/Payment/ActionFactory.php index 4502b785..cd7716d5 100644 --- a/app/Payment/ActionFactory.php +++ b/app/Payment/ActionFactory.php @@ -2,7 +2,7 @@ namespace App\Payment; -use App\Letter\DocumentFactory; +use App\Invoice\DocumentFactory; use Illuminate\Support\Collection; class ActionFactory diff --git a/app/Payment/PaymentMail.php b/app/Payment/PaymentMail.php index 2fad5612..afdd1bcd 100644 --- a/app/Payment/PaymentMail.php +++ b/app/Payment/PaymentMail.php @@ -2,7 +2,7 @@ namespace App\Payment; -use App\Letter\Letter; +use App\Invoice\Invoice; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; @@ -12,7 +12,7 @@ class PaymentMail extends Mailable use Queueable; use SerializesModels; - public Letter $letter; + public Invoice $invoice; public string $filename; public string $salutation; @@ -21,11 +21,11 @@ class PaymentMail extends Mailable * * @return void */ - public function __construct(Letter $letter, string $filename) + public function __construct(Invoice $invoice, string $filename) { - $this->letter = $letter; + $this->invoice = $invoice; $this->filename = $filename; - $this->salutation = 'Liebe Familie '.$letter->pages->first()->familyName; + $this->salutation = 'Liebe Familie '.$invoice->pages->first()->familyName; } /** @@ -35,9 +35,9 @@ class PaymentMail extends Mailable */ public function build() { - return $this->markdown($this->letter->mailView()) + return $this->markdown($this->invoice->mailView()) ->attach($this->filename) ->replyTo('kasse@stamm-silva.de') - ->subject($this->letter->getSubject().' | DPSG Stamm Silva'); + ->subject($this->invoice->getSubject().' | DPSG Stamm Silva'); } } diff --git a/app/Payment/SendpaymentController.php b/app/Payment/SendpaymentController.php index 2c97df47..5036777d 100644 --- a/app/Payment/SendpaymentController.php +++ b/app/Payment/SendpaymentController.php @@ -3,9 +3,9 @@ namespace App\Payment; use App\Http\Controllers\Controller; -use App\Letter\BillKind; -use App\Letter\DocumentFactory; -use App\Letter\Queries\BillKindQuery; +use App\Invoice\BillKind; +use App\Invoice\DocumentFactory; +use App\Invoice\Queries\BillKindQuery; use Illuminate\Contracts\Support\Responsable; use Illuminate\Http\Request; use Illuminate\Http\Response; @@ -30,14 +30,14 @@ class SendpaymentController extends Controller */ public function send(Request $request) { - $letter = app(DocumentFactory::class)->singleLetter($request->type, new BillKindQuery(BillKind::POST)); + $invoice = app(DocumentFactory::class)->singleInvoice($request->type, new BillKindQuery(BillKind::POST)); - if (is_null($letter)) { + if (is_null($invoice)) { return response()->noContent(); } - $pdfFile = Tex::compile($letter); - app(DocumentFactory::class)->afterSingle($letter); + $pdfFile = Tex::compile($invoice); + app(DocumentFactory::class)->afterSingle($invoice); return $pdfFile; } diff --git a/app/Pdf/MemberPdfController.php b/app/Pdf/MemberPdfController.php index dc997a75..d6b85e02 100644 --- a/app/Pdf/MemberPdfController.php +++ b/app/Pdf/MemberPdfController.php @@ -3,8 +3,8 @@ namespace App\Pdf; use App\Http\Controllers\Controller; -use App\Letter\DocumentFactory; -use App\Letter\Queries\SingleMemberQuery; +use App\Invoice\DocumentFactory; +use App\Invoice\Queries\SingleMemberQuery; use App\Member\Member; use Illuminate\Contracts\Support\Responsable; use Illuminate\Http\Request; @@ -18,10 +18,10 @@ class MemberPdfController extends Controller */ public function __invoke(Request $request, Member $member) { - $letter = app(DocumentFactory::class)->singleLetter($request->type, new SingleMemberQuery($member)); + $invoice = app(DocumentFactory::class)->singleInvoice($request->type, new SingleMemberQuery($member)); - return null === $letter + return null === $invoice ? response()->noContent() - : Tex::compile($letter); + : Tex::compile($invoice); } } diff --git a/app/Setting/SettingServiceProvider.php b/app/Setting/SettingServiceProvider.php index a8e59cf7..24e14ac9 100644 --- a/app/Setting/SettingServiceProvider.php +++ b/app/Setting/SettingServiceProvider.php @@ -2,7 +2,7 @@ namespace App\Setting; -use App\Letter\LetterSettings; +use App\Invoice\InvoiceSettings; use App\Mailman\MailmanSettings; use Illuminate\Support\ServiceProvider; @@ -25,7 +25,7 @@ class SettingServiceProvider extends ServiceProvider */ public function boot() { - app(SettingFactory::class)->register(LetterSettings::class); + app(SettingFactory::class)->register(InvoiceSettings::class); app(SettingFactory::class)->register(MailmanSettings::class); } } diff --git a/database/factories/Member/MemberFactory.php b/database/factories/Member/MemberFactory.php index 93d8ff2a..81c1b860 100644 --- a/database/factories/Member/MemberFactory.php +++ b/database/factories/Member/MemberFactory.php @@ -5,7 +5,7 @@ namespace Database\Factories\Member; use App\Country; use App\Fee; use App\Group; -use App\Letter\BillKind; +use App\Invoice\BillKind; use App\Member\Member; use App\Nationality; use App\Payment\Payment; diff --git a/phpstan.neon b/phpstan.neon index 78807771..8d6a12a3 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -630,7 +630,7 @@ parameters: path: app/Contribution/ContributionFactory.php - - message: "#^Return type of call to method Illuminate\\\\Support\\\\Collection\\\\>\\:\\:map\\(\\) contains unresolvable type\\.$#" + message: "#^Return type of call to method Illuminate\\\\Support\\\\Collection\\\\>\\:\\:map\\(\\) contains unresolvable type\\.$#" count: 1 path: app/Payment/ActionFactory.php diff --git a/tests/Feature/Bill/SettingTest.php b/tests/Feature/Bill/SettingTest.php index 7cf32b00..0a491307 100644 --- a/tests/Feature/Bill/SettingTest.php +++ b/tests/Feature/Bill/SettingTest.php @@ -2,7 +2,7 @@ namespace Tests\Feature\Bill; -use App\Letter\LetterSettings; +use App\Invoice\InvoiceSettings; use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; @@ -13,7 +13,7 @@ class SettingTest extends TestCase public function testSettingIndex(): void { $this->withoutExceptionHandling()->login()->loginNami(); - LetterSettings::fake([ + InvoiceSettings::fake([ 'from_long' => 'DPSG Stamm Muster', 'from' => 'Stamm Muster', 'mobile' => '+49 176 55555', @@ -80,7 +80,7 @@ class SettingTest extends TestCase ]); $response->assertRedirect('/setting/bill'); - $settings = app(LetterSettings::class); + $settings = app(InvoiceSettings::class); $this->assertEquals('DPSG Stamm Muster', $settings->from_long); $this->assertEquals('DE05', $settings->iban); $this->assertEquals('SOLSDE', $settings->bic); diff --git a/tests/Feature/Letter/DocumentFactoryTest.php b/tests/Feature/Invoice/DocumentFactoryTest.php similarity index 75% rename from tests/Feature/Letter/DocumentFactoryTest.php rename to tests/Feature/Invoice/DocumentFactoryTest.php index 5fcf9825..319c0250 100644 --- a/tests/Feature/Letter/DocumentFactoryTest.php +++ b/tests/Feature/Invoice/DocumentFactoryTest.php @@ -1,13 +1,13 @@ defaults()->create(); - $letter = app(DocumentFactory::class)->singleLetter(BillDocument::class, $this->query($member)); - $this->assertNull($letter); + $invoice = app(DocumentFactory::class)->singleInvoice(BillDocument::class, $this->query($member)); + $this->assertNull($invoice); } public function testItDisplaysMemberInformation(): void @@ -47,9 +47,9 @@ class DocumentFactoryTest extends TestCase ])) ->create(); - $letter = app(DocumentFactory::class)->singleLetter(BillDocument::class, $this->query($member)); + $invoice = app(DocumentFactory::class)->singleInvoice(BillDocument::class, $this->query($member)); - $letter->assertHasAllContent([ + $invoice->assertHasAllContent([ 'Rechnung', '15.00', '::subName:: 1995 für ::firstname:: ::lastname::', @@ -72,9 +72,9 @@ class DocumentFactoryTest extends TestCase ], ['split' => true])) ->create(); - $letter = app(DocumentFactory::class)->singleLetter(BillDocument::class, $this->query($member)); + $invoice = app(DocumentFactory::class)->singleInvoice(BillDocument::class, $this->query($member)); - $letter->assertHasAllContent([ + $invoice->assertHasAllContent([ 'Rechnung', '10.00', '5.00', @@ -92,9 +92,9 @@ class DocumentFactoryTest extends TestCase ->has(Payment::factory()->notPaid()->nr('1995')) ->create(); - $letter = app(DocumentFactory::class)->singleLetter(BillDocument::class, $this->query($member)); + $invoice = app(DocumentFactory::class)->singleInvoice(BillDocument::class, $this->query($member)); - $this->assertEquals('rechnung-fur-lastname.pdf', $letter->compiledFilename()); + $this->assertEquals('rechnung-fur-lastname.pdf', $invoice->compiledFilename()); } public function testRememberSetsFilename(): void @@ -105,9 +105,9 @@ class DocumentFactoryTest extends TestCase ->has(Payment::factory()->notPaid()) ->create(); - $letter = app(DocumentFactory::class)->singleLetter(RememberDocument::class, $this->query($member)); + $invoice = app(DocumentFactory::class)->singleInvoice(RememberDocument::class, $this->query($member)); - $this->assertEquals('zahlungserinnerung-fur-lastname.pdf', $letter->compiledFilename()); + $this->assertEquals('zahlungserinnerung-fur-lastname.pdf', $invoice->compiledFilename()); } public function testItCreatesOneFileForFamilyMembers(): void @@ -123,18 +123,18 @@ class DocumentFactoryTest extends TestCase ->has(Payment::factory()->notPaid()->nr('nr2')) ->create(); - $letter = app(DocumentFactory::class)->singleLetter(BillDocument::class, $this->query($firstMember)); + $invoice = app(DocumentFactory::class)->singleInvoice(BillDocument::class, $this->query($firstMember)); - $letter->assertHasAllContent(['Max1', 'Max2', 'nr1', 'nr2']); + $invoice->assertHasAllContent(['Max1', 'Max2', 'nr1', 'nr2']); } /** - * @testWith ["App\\Letter\\BillDocument"] - * ["App\\Letter\\RememberDocument"] + * @testWith ["App\\Invoice\\BillDocument"] + * ["App\\Invoice\\RememberDocument"] */ public function testItDisplaysSettings(string $type): void { - LetterSettings::fake([ + InvoiceSettings::fake([ 'from_long' => 'langer Stammesname', 'from' => 'Stammeskurz', 'mobile' => '+49 176 55555', @@ -151,9 +151,9 @@ class DocumentFactoryTest extends TestCase ->has(Payment::factory()->notPaid()->nr('nr2')) ->create(); - $letter = app(DocumentFactory::class)->singleLetter($type, $this->query($member)); + $invoice = app(DocumentFactory::class)->singleInvoice($type, $this->query($member)); - $letter->assertHasAllContent([ + $invoice->assertHasAllContent([ 'langer Stammesname', 'Stammeskurz', '+49 176 55555', @@ -185,7 +185,7 @@ class DocumentFactoryTest extends TestCase $this->assertEquals('inline; filename="rechnung-fur-lastname.pdf"', $response->headers->get('content-disposition')); } - private function query(Member $member): LetterMemberQuery + private function query(Member $member): InvoiceMemberQuery { return new SingleMemberQuery($member); } diff --git a/tests/Feature/Letter/LetterSendActionTest.php b/tests/Feature/Invoice/InvoiceSendActionTest.php similarity index 87% rename from tests/Feature/Letter/LetterSendActionTest.php rename to tests/Feature/Invoice/InvoiceSendActionTest.php index 3c019f26..b71cb164 100644 --- a/tests/Feature/Letter/LetterSendActionTest.php +++ b/tests/Feature/Invoice/InvoiceSendActionTest.php @@ -1,9 +1,9 @@ Storage::disk('temp')->path('rechnung-fur-mom.pdf') === $mail->filename && Storage::disk('temp')->exists('rechnung-fur-mom.pdf')); } @@ -51,7 +51,7 @@ class LetterSendActionTest extends TestCase Mail::fake(); Tex::spy(); - LetterSendAction::run(); + InvoiceSendAction::run(); Tex::assertCompiled(BillDocument::class, fn ($document) => 'Mom' === $document->pages->first()->familyName && $document->pages->first()->getPositions() === ['tollerbeitrag 1997 für Lah Mom' => '54.00'] diff --git a/tests/Feature/Sendpayment/SendpaymentTest.php b/tests/Feature/Sendpayment/SendpaymentTest.php index 4453c160..52ae2aef 100644 --- a/tests/Feature/Sendpayment/SendpaymentTest.php +++ b/tests/Feature/Sendpayment/SendpaymentTest.php @@ -2,14 +2,14 @@ namespace Tests\Feature\Sendpayment; -use App\Letter\BillDocument; -use App\Letter\LetterSettings; +use App\Invoice\BillDocument; +use App\Invoice\InvoiceSettings; use App\Member\Member; use App\Payment\Payment; use App\Payment\Status; use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\RequestFactories\Child; -use Tests\RequestFactories\LetterSettingsFake; +use Tests\RequestFactories\InvoiceSettingsFake; use Tests\TestCase; use Zoomyboy\Tex\Tex; @@ -32,7 +32,7 @@ class SendpaymentTest extends TestCase public function testItCanCreatePdfPayments(): void { - LetterSettings::fake(LetterSettingsFake::new()->create()); + InvoiceSettings::fake(InvoiceSettingsFake::new()->create()); Tex::spy(); $this->withoutExceptionHandling(); $this->login()->loginNami(); @@ -43,7 +43,7 @@ class SendpaymentTest extends TestCase ->postBillKind() ->create(); - $response = $this->call('GET', route('sendpayment.pdf'), ['type' => 'App\\Letter\\BillDocument']); + $response = $this->call('GET', route('sendpayment.pdf'), ['type' => 'App\\Invoice\\BillDocument']); $response->assertOk(); $this->assertEquals(Status::firstWhere('name', 'Rechnung gestellt')->id, $member->payments->firstWhere('nr', '1997')->status_id); @@ -64,7 +64,7 @@ class SendpaymentTest extends TestCase ->emailBillKind() ->create(); - $response = $this->call('GET', route('sendpayment.pdf'), ['type' => 'App\\Letter\\BillDocument']); + $response = $this->call('GET', route('sendpayment.pdf'), ['type' => 'App\\Invoice\\BillDocument']); $response->assertStatus(204); Tex::assertNotCompiled(BillDocument::class); diff --git a/tests/RequestFactories/LetterSettingsFake.php b/tests/RequestFactories/InvoiceSettingsFake.php similarity index 91% rename from tests/RequestFactories/LetterSettingsFake.php rename to tests/RequestFactories/InvoiceSettingsFake.php index bc504733..a0ee76fd 100644 --- a/tests/RequestFactories/LetterSettingsFake.php +++ b/tests/RequestFactories/InvoiceSettingsFake.php @@ -4,7 +4,7 @@ namespace Tests\RequestFactories; use Worksome\RequestFactories\RequestFactory; -class LetterSettingsFake extends RequestFactory +class InvoiceSettingsFake extends RequestFactory { public function definition(): array {