lnd/sqldb/sqlc/migrations/000003_invoice_events.up.sql
2023-07-10 17:56:27 -07:00

59 lines
2.3 KiB
SQL

-- invoice_event_types stores the different types of events that can be emitted
-- for invoices.
CREATE TABLE IF NOT EXISTS invoice_event_types(
id INTEGER PRIMARY KEY,
description TEXT NOT NULL
);
-- invoice_events stores all events related to the node invoices.
CREATE TABLE IF NOT EXISTS invoice_events (
id INTEGER PRIMARY KEY,
-- created_at is the creation time of this event.
created_at TIMESTAMP NOT NULL,
-- invoice_id is the reference to the invoice this event was emitted for.
invoice_id INTEGER NOT NULL REFERENCES invoices(id),
-- htlc_id is the reference to the htlc this event was emitted for, may be
-- null.
htlc_id BIGINT REFERENCES invoice_htlcs(htlc_id),
-- set_id is the reference to the set_id this event was emitted for, may be
-- null.
set_id BLOB NOT NULL REFERENCES amp_invoice_payments(set_id),
-- event_type is the type of this event.
event_type INTEGER NOT NULL REFERENCES invoice_event_types(id),
-- event_metadata is a TLV encoding any relevant information for this kind
-- of events.
event_metadata BLOB
);
CREATE INDEX IF NOT EXISTS invoice_events_created_at_idx ON invoice_events(created_at);
CREATE INDEX IF NOT EXISTS invoice_events_invoice_id_idx ON invoice_events(invoice_id);
CREATE INDEX IF NOT EXISTS invoice_events_htlc_id_idx ON invoice_events(htlc_id);
CREATE INDEX IF NOT EXISTS invoice_events_set_id_idx ON invoice_events(set_id);
CREATE INDEX IF NOT EXISTS invoice_events_event_type_idx ON invoice_events(event_type);
-- invoice_event_types defines the different types of events that can be emitted
-- for an invoice.
INSERT INTO invoice_event_types (id, description)
VALUES
-- invoice_created is the event emitted when an invoice is created.
(0, 'invoice_created'),
-- invoice_canceled is the event emitted when an invoice is canceled.
(1, "invoice_canceled"),
-- invoice_settled is the event emitted when an invoice is settled.
(2, "invoice_settled"),
-- setid_created is the event emitted when the first htlc for the set_id is
-- received.
(3, "setid_created"),
-- setid_canceled is the event emitted when the set_id is canceled.
(4, "setid_canceled"),
-- setid_settled is the event emitted when the set_id is settled.
(5, "setid_settled");