use std::sync::Arc;
use serde::{Deserialize, Serialize};
use crate::stela::{Image, Motion};
#[derive(Debug, Deserialize, Serialize)]
pub struct SectionTiles {
pub tiles: Vec<Tile>,
pub layout: TilesLayout,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Tile {
pub header: Option<Arc<str>>,
pub subheader: Option<Arc<str>>,
pub motion: Option<Motion>,
pub image: Option<Image>,
pub body_text: Option<Arc<str>>,
}
#[derive(Clone, Copy, Debug, Default, Deserialize, Serialize, PartialEq, Eq)]
pub enum TilesLayout {
HorizontalList,
VerticalList,
Grid,
#[default]
#[serde(other)]
Unknown,
}