use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IdReq {
pub id: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct IdsReq {
pub ids: Vec<i64>,
}
pub trait Pagination {
fn page_num(&self) -> u64;
fn page_size(&self) -> u64;
#[cfg(feature = "rbatis")]
fn to_rb_page(&self) -> rbatis::PageRequest {
rbatis::PageRequest::new(self.page_num(), self.page_size())
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PageReq {
pub page_num: u64,
pub page_size: u64,
}
impl Default for PageReq {
fn default() -> Self {
PageReq {
page_num: 1,
page_size: 10,
}
}
}
#[macro_export]
macro_rules! impl_pagination {
($s:ty) => {
impl $crate::common::req::Pagination for $s {
fn page_num(&self) -> u64 {
self.page.page_num
}
fn page_size(&self) -> u64 {
self.page.page_size
}
}
};
}