use serde::Serialize;
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
pub enum StatementType {
Daily = 1,
Monthly = 2,
}
impl From<StatementType> for i32 {
#[inline]
fn from(value: StatementType) -> Self {
value as i32
}
}
#[derive(Debug, Serialize, Clone)]
pub struct GetStatementListOptions {
statement_type: i32,
start_date: i32,
limit: i32,
}
impl GetStatementListOptions {
#[inline]
pub fn new(statement_type: StatementType) -> Self {
Self {
statement_type: statement_type.into(),
start_date: 1,
limit: 20,
}
}
#[inline]
#[must_use]
pub fn page(self, page: i32) -> Self {
Self {
start_date: page,
..self
}
}
#[inline]
#[must_use]
pub fn page_size(self, page_size: i32) -> Self {
Self {
limit: page_size,
..self
}
}
}