mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-06-30 10:35:32 +02:00
sqldb: add invoice events SQL schema
This commit is contained in:
9
sqldb/sqlc/migrations/000003_invoice_events.down.sql
Normal file
9
sqldb/sqlc/migrations/000003_invoice_events.down.sql
Normal file
@ -0,0 +1,9 @@
|
||||
DROP TABLE IF EXISTS invoice_events;
|
||||
|
||||
DROP INDEX IF EXISTS invoice_events_created_at_idx;
|
||||
DROP INDEX IF EXISTS invoice_events_invoice_id_idx;
|
||||
DROP INDEX IF EXISTS invoice_events_htlc_id_idx;
|
||||
DROP INDEX IF EXISTS invoice_events_set_id_idx;
|
||||
DROP INDEX IF EXISTS invoice_events_event_type_idx;
|
||||
|
||||
DROP TABLE IF EXISTS invoice_event_types;
|
59
sqldb/sqlc/migrations/000003_invoice_events.up.sql
Normal file
59
sqldb/sqlc/migrations/000003_invoice_events.up.sql
Normal file
@ -0,0 +1,59 @@
|
||||
-- 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");
|
||||
|
Reference in New Issue
Block a user