sqlx_ledger/entry/
entity.rs1use chrono::{DateTime, Utc};
2use derive_builder::Builder;
3use rust_decimal::Decimal;
4
5use crate::primitives::*;
6
7pub struct Entry {
9 pub id: EntryId,
10 pub version: u32,
11 pub transaction_id: TransactionId,
12 pub account_id: AccountId,
13 pub journal_id: JournalId,
14 pub entry_type: String,
15 pub layer: Layer,
16 pub units: Decimal,
17 pub currency: Currency,
18 pub direction: DebitOrCredit,
19 pub sequence: u32,
20 pub description: Option<String>,
21 pub created_at: DateTime<Utc>,
22 pub modified_at: DateTime<Utc>,
23}
24
25#[derive(Debug, Builder)]
26pub(crate) struct NewEntry {
27 pub(super) account_id: AccountId,
28 pub(super) entry_type: String,
29 pub(super) layer: Layer,
30 pub(super) units: Decimal,
31 pub(super) currency: Currency,
32 pub(super) direction: DebitOrCredit,
33 #[builder(setter(strip_option), default)]
34 pub(super) description: Option<String>,
35}
36
37impl NewEntry {
38 pub fn builder() -> NewEntryBuilder {
39 NewEntryBuilder::default()
40 }
41}