use chrono::NaiveDateTime;
use crate::tables::*;
pub trait MergeEntity {
fn entity_id(&self) -> i64;
fn entity_updated_at(&self) -> NaiveDateTime;
fn should_update(&self, incoming: &Self) -> bool {
incoming.entity_updated_at() > self.entity_updated_at()
}
}
impl MergeEntity for ProvenTx {
fn entity_id(&self) -> i64 {
self.proven_tx_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for OutputBasket {
fn entity_id(&self) -> i64 {
self.basket_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for Transaction {
fn entity_id(&self) -> i64 {
self.transaction_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for Output {
fn entity_id(&self) -> i64 {
self.output_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for TxLabel {
fn entity_id(&self) -> i64 {
self.tx_label_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for TxLabelMap {
fn entity_id(&self) -> i64 {
self.tx_label_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for OutputTag {
fn entity_id(&self) -> i64 {
self.output_tag_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for OutputTagMap {
fn entity_id(&self) -> i64 {
self.output_tag_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for Certificate {
fn entity_id(&self) -> i64 {
self.certificate_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for CertificateField {
fn entity_id(&self) -> i64 {
self.certificate_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for Commission {
fn entity_id(&self) -> i64 {
self.commission_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}
impl MergeEntity for ProvenTxReq {
fn entity_id(&self) -> i64 {
self.proven_tx_req_id
}
fn entity_updated_at(&self) -> NaiveDateTime {
self.updated_at
}
}