use crate::models::page;
use sea_orm::query::Order;
#[derive(Debug, Clone, PartialEq)]
pub struct PageOrder {
pub column: PageOrderColumn,
pub direction: Order,
}
impl Default for PageOrder {
#[inline]
fn default() -> Self {
PageOrder {
column: PageOrderColumn::default(),
direction: Order::Asc,
}
}
}
#[derive(Serialize, Deserialize, Debug, Default, Copy, Clone, PartialEq, Eq)]
pub enum PageOrderColumn {
#[default]
Id,
Creation,
Update,
Slug,
}
impl PageOrderColumn {
#[inline]
pub fn into_column(self) -> page::Column {
self.into()
}
}
impl From<PageOrderColumn> for page::Column {
fn from(order: PageOrderColumn) -> page::Column {
match order {
PageOrderColumn::Id => page::Column::PageId,
PageOrderColumn::Creation => page::Column::CreatedAt,
PageOrderColumn::Update => page::Column::UpdatedAt,
PageOrderColumn::Slug => page::Column::Slug,
}
}
}