From 1df74b3a7192a7df90da0809808df34e5e3d9709 Mon Sep 17 00:00:00 2001
From: Piotr Potrebka <piotr.potrebka@wpdesk.net>
Date: Mon, 23 Jan 2023 13:54:14 +0100
Subject: [PATCH] init

---
 ...lAbstract.php => EmailGettersAbstract.php} | 25 ++++++++++++++++++-
 ...nterface.php => EmailGettersInterface.php} |  2 +-
 src/EmailSender.php                           |  6 ++---
 src/Emails/Email.php                          |  4 +--
 src/Integration.php                           |  1 +
 5 files changed, 31 insertions(+), 7 deletions(-)
 rename src/Abstracts/{EmailAbstract.php => EmailGettersAbstract.php} (82%)
 rename src/Abstracts/{EmailInterface.php => EmailGettersInterface.php} (97%)

diff --git a/src/Abstracts/EmailAbstract.php b/src/Abstracts/EmailGettersAbstract.php
similarity index 82%
rename from src/Abstracts/EmailAbstract.php
rename to src/Abstracts/EmailGettersAbstract.php
index 5aba38c..a510234 100644
--- a/src/Abstracts/EmailAbstract.php
+++ b/src/Abstracts/EmailGettersAbstract.php
@@ -4,13 +4,22 @@ namespace WPDesk\Library\WPEmail\Abstracts;
 
 use WPDesk\View\Renderer\Renderer;
 
-abstract class EmailAbstract implements EmailInterface {
+abstract class EmailGettersAbstract implements EmailGettersInterface, EmailSettersInterface {
 
     /**
      * @var Renderer
      */
     private $renderer;
 
+    /**
+     * @var string
+     */
+    private $subject;
+    /**
+     * @var string
+     */
+    private $heading;
+
     public function __construct( Renderer $renderer, array $recipients ) {
         $this->renderer   = $renderer;
         $this->recipients = $recipients;
@@ -45,6 +54,13 @@ abstract class EmailAbstract implements EmailInterface {
         return '';
     }
 
+
+    public function set_subject( string $subject ): self {
+        $this->subject = $subject;
+
+        return $this;
+    }
+
     /**
      * Get email heading.
      *
@@ -54,6 +70,13 @@ abstract class EmailAbstract implements EmailInterface {
         return '';
     }
 
+
+    public function set_heading( string $heading ): self {
+        $this->heading = $heading;
+
+        return $this;
+    }
+
     /**
      * Get valid recipients.
      *
diff --git a/src/Abstracts/EmailInterface.php b/src/Abstracts/EmailGettersInterface.php
similarity index 97%
rename from src/Abstracts/EmailInterface.php
rename to src/Abstracts/EmailGettersInterface.php
index 8439a44..f55967b 100644
--- a/src/Abstracts/EmailInterface.php
+++ b/src/Abstracts/EmailGettersInterface.php
@@ -2,7 +2,7 @@
 
 namespace WPDesk\Library\WPEmail\Abstracts;
 
-interface EmailInterface {
+interface EmailGettersInterface {
 
     /**
      * Define unique email ID.
diff --git a/src/EmailSender.php b/src/EmailSender.php
index f249ad9..2f5ea76 100644
--- a/src/EmailSender.php
+++ b/src/EmailSender.php
@@ -2,12 +2,12 @@
 
 namespace WPDesk\Library\WPEmail\Emails;
 
-use WPDesk\Library\WPEmail\Abstracts\EmailInterface;
+use WPDesk\Library\WPEmail\Abstracts\EmailGettersInterface;
 
 class EmailSender {
 
     /**
-     * @var EmailInterface[]
+     * @var EmailGettersInterface[]
      */
     private $emails = [];
 
@@ -30,7 +30,7 @@ class EmailSender {
         $this->from_name = $from_name;
     }
 
-    public function add_email( EmailInterface $email ) {
+    public function add_email( Email $email ) {
         $this->emails[ $email->get_id() ] = $email;
     }
 
diff --git a/src/Emails/Email.php b/src/Emails/Email.php
index e5b4991..1decb4d 100644
--- a/src/Emails/Email.php
+++ b/src/Emails/Email.php
@@ -2,9 +2,9 @@
 
 namespace WPDesk\Library\WPEmail\Emails;
 
-use WPDesk\Library\WPEmail\Abstracts\EmailAbstract;
+use WPDesk\Library\WPEmail\Abstracts\EmailGettersAbstract;
 
-class Email extends EmailAbstract {
+class Email extends EmailGettersAbstract {
 
     const ID = 'email';
 
diff --git a/src/Integration.php b/src/Integration.php
index 087e0fe..9d33b70 100644
--- a/src/Integration.php
+++ b/src/Integration.php
@@ -22,6 +22,7 @@ class Integration {
 
         $email_sender = new EmailSender( 'email@mojastron.pl', 'Moj sklep' );
         $email        = new Email( $renderer, [] );
+        $email->set_subject( 'Tytuł')->set_heading( 'Nowa wiadomość' );
 
         $email_sender->add_email( $email );
         $email_sender->send();
-- 
GitLab