aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/entities/sra_order_observed_timestamp.ts
blob: cbec1c6d0e73c7f706a39304170fe230de84b539 (plain) (blame)
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
30
31
32
33
34
35
import { Entity, PrimaryColumn } from 'typeorm';

import { numberToBigIntTransformer } from '../utils';

import { SraOrder } from './sra_order';

@Entity({ name: 'sra_orders_observed_timestamps', schema: 'raw' })
export class SraOrdersObservedTimeStamp {
    @PrimaryColumn({ name: 'exchange_address' })
    public exchangeAddress!: string;
    @PrimaryColumn({ name: 'order_hash_hex' })
    public orderHashHex!: string;
    @PrimaryColumn({ name: 'source_url' })
    public sourceUrl!: string;

    @PrimaryColumn({ name: 'observed_timestamp', transformer: numberToBigIntTransformer })
    public observedTimestamp!: number;
}

/**
 * Returns a new SraOrdersObservedTimeStamp for the given order based on the
 * current time.
 * @param order The order to generate a timestamp for.
 */
export function createObservedTimestampForOrder(
    order: SraOrder,
    observedTimestamp: number,
): SraOrdersObservedTimeStamp {
    const observed = new SraOrdersObservedTimeStamp();
    observed.exchangeAddress = order.exchangeAddress;
    observed.orderHashHex = order.orderHashHex;
    observed.sourceUrl = order.sourceUrl;
    observed.observedTimestamp = observedTimestamp;
    return observed;
}