aboutsummaryrefslogtreecommitdiffstats
path: root/crates/pseudonyms/migrations/20250810112945_transaction_relationship.sql
blob: b28b61c35304a4dc3d9feb51ca6a2956b5fa3afd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
create table transaction_relationship (
    source varchar references account(id),
    destination varchar references account(id),
    amt_unit bigint not null,
    amt_ccy varchar(3) not null,
    amt_nanos integer not null,
    cre_dt_tm timestamptz not null,
    end_to_end_id varchar not null check (trim(end_to_end_id) <> ''),
    msg_id varchar not null check (trim(msg_id) <> ''),
    pmt_inf_id varchar not null check (trim(pmt_inf_id) <> ''),
    tx_tp varchar not null check (trim(tx_tp) <> ''),
    lat float8,
    lon float8,
    tx_sts varchar,
    primary key (msg_id, end_to_end_id, tx_tp, pmt_inf_id)
);

create index idx_transaction_status_range
  on transaction_relationship (tx_tp, tx_sts, cre_dt_tm desc);

create index idx_transaction_e2eid_tp_sts
  on transaction_relationship (end_to_end_id, tx_tp, tx_sts);

create index idx_transaction_accc_only
  on transaction_relationship (cre_dt_tm)
  where tx_sts = 'ACCC';

create index idx_transaction_source_time
  on transaction_relationship (source, cre_dt_tm desc);