sui_indexer_alt_framework/models/
watermarks.rsuse chrono::naive::NaiveDateTime;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use crate::db::Connection;
use crate::schema::watermarks;
use crate::FieldCount;
#[derive(Insertable, Selectable, Queryable, Debug, Clone, FieldCount)]
#[diesel(table_name = watermarks)]
pub struct StoredWatermark {
pub pipeline: String,
pub epoch_hi_inclusive: i64,
pub checkpoint_hi_inclusive: i64,
pub tx_hi: i64,
pub timestamp_ms_hi_inclusive: i64,
pub reader_lo: i64,
pub pruner_timestamp: NaiveDateTime,
pub pruner_hi: i64,
}
impl StoredWatermark {
pub(crate) async fn get(
conn: &mut Connection<'_>,
pipeline: &'static str,
) -> QueryResult<Option<Self>> {
watermarks::table
.select(StoredWatermark::as_select())
.filter(watermarks::pipeline.eq(pipeline))
.first(conn)
.await
.optional()
}
}