% ===== =====
% Use case 2
% ===== =====
\subsection{Σενάριο χρήσης 2: Δημιουργία νέου θέματος} \label{subsection:3-4-use-case-create-topic}

\useCaseTable
{Δημιουργώ νέο θέμα}
{Στόχος του σεναρίου χρήσης είναι ο χρήστης να μπορεί να δημιουργήσει νέο θέμα.}
{TODO}
{TODO}
{Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.}
{Ο χρήστης να έχει συνδεθεί στην εφαρμογή και να βρίσκεται στην αρχική σελίδα.}
{Σενάριο χρήσης 2, δημιουργία νέου θέματος.}
{\label{table:3-4-use-case-create-topic}}

\useCaseBaseFlowTable
{
    1 & Ο χρήστης πατάει το κουμπί δημιουργίας νέου θέματος.             & Το σύστημα εμφανίζει την φόρμα ``Δημιουργία Θέματος''. \\ [0.5ex]
    \midrule
    2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''. & Το σύστημα εισάγει νέο θέμα στο blockchain. \\ [0.5ex]
    \midrule
    3 & -                                                                & Το σύστημα εισάγει τις πληροφορίες του θέματος στην προσωπική βάση OrbitDb του χρήστη. \\ [0.5ex]
}
{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.}
{Σενάριο χρήσης 2 - Βασική ροή}
{\label{table:3-4-use-case-create-topic-base-flow}}

\useCaseAlternateFlowTable
{1}
{Ο χρήστης δημιουργεί ψηφοφορία.}
{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής επιλέξει ``Προσθήκη Ψηφοφορίας'' το σύστημα ανανεώνει την σελίδα προσθέτοντας τα επιπλέον πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''.}
{
    1 & Ο χρήστης, αφού συμπληρώσει τη φόρμα ``Δημιουργία Θέματος'', πατάει το κουμπί ``Προσθήκη ψηφοφορίας'' & Το σύστημα ανανεώνει τη σελίδα με τα πεδία της φόρμας ``Δημιουργία Ψηφοφορίας''. \\ [0.5ex]
    \midrule
    2 & Ο χρήστης συμπληρώνει τα πεδία και πατάει το κουμπί ``Υποβολή''.                                      & Το σύστημα εισάγει το νέο θέμα καθώς και τη νέα ψηφοφορία στο blockchain. \\ [0.5ex]
    \midrule
    3 & -                                                                                                     & Το σύστημα εισάγει τις πληροφορίες του θέματος και της ψηφοφορίας στις προσωπικές βάσεις OrbitDb του χρήστη.
}
{Το σύστημα μεταβαίνει στην σελίδα του νέου θέματος.}
{Σενάριο χρήσης 2 - Εναλλακτική ροή 1}
{\label{table:3-4-use-case-create-topic-alternate-flow-1}}

\useCaseAlternateFlowTable
{2}
{Ο χρήστης πατάει το κουμπί ``Άκυρο''.}
{Εφόσον ο χρήστης στη γραμμή 2 της Βασικής Ροής ή στη γραμμή 2 της Εναλλακτικής Ροής 1 επιλέξει ``Άκυρο'' το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.}
{
    1 & Ο χρήστης πατάει το κουμπί ``Άκυρο'' & Το σύστημα επιστρέφει στην αρχική σελίδα της εφαρμογής.
}
{Το σενάριο χρήσης τερματίζεται.}
{Σενάριο χρήσης 2 - Εναλλακτική ροή 2}
{\label{table:3-4-use-case-create-topic-alternate-flow-2}}

\begin{figure}[H]
    \centering
    \input{tikz/chapter-3/3-4-use-case-create-topic-sequence-diagram}
    \caption{Σενάριο χρήσης 2 - Διάγραμμα βασικής ροής}
    \label{figure:3-4-use-case-create-topic-base-flow-sequence-diagram}
\end{figure}

\begin{figure}[H]
    \centering
    \input{tikz/chapter-3/3-4-use-case-create-topic-alternate-flow-1-sequence-diagram}
    \caption{Σενάριο χρήσης 2 - Διάγραμμα εναλλακτικής ροής 1}
    \label{figure:3-4-use-case-create-topic-alternate-flow-1-sequence-diagram}
\end{figure}
