dapplication 0.7.1

Ticket management systems for solo players.
Documentation
use std::collections::HashMap;

use crate::dtos::ticket_dto::TicketDTO;
use ddomain::value_objects::app_mode::AppMode;
use ratatui::{Frame, layout::Rect};
use tui_textarea::TextArea;

pub trait TerminalOutputPort {
    fn draw_table(
        &mut self,
        frame: &mut Frame,
        area: Rect,
        selected_index: Option<usize>,
        tickets: &Vec<TicketDTO>,
    );
    fn draw_ticket_detail(&self, frame: &mut Frame, area: Rect, selected_ticket: TicketDTO);
    fn draw_ticket_form(
        &self,
        frame: &mut Frame,
        text_areas: HashMap<String, TextArea>,
        selected_ticket: TicketDTO,
    );

    fn draw_guide(&self, frame: &mut Frame, area: Rect, mode: AppMode);

    fn next_row(&mut self, items_len: usize);
    fn previous_row(&mut self, items_len: usize);
    fn selected_index(&self) -> Option<usize>;
    fn render_scrollbar(&mut self, frame: &mut Frame, area: Rect);
    fn notify(&self, frame: &mut Frame, message: String);
}