BEGIN;
CREATE TABLE IF NOT EXISTS lnwallets (
  id SERIAL PRIMARY KEY,
  owner_id INT NOT NULL,
  name TEXT UNIQUE NOT NULL,
  domain TEXT NOT NULL,
  wallet TEXT NOT NULL,
  create_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
  update_ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
  CONSTRAINT fk_owner FOREIGN KEY(owner_id) REFERENCES users(id),
  CONSTRAINT ck_name CHECK (name ~ '^[a-z0-9]*$')
);

CREATE  FUNCTION lnwallets_update_ts()
RETURNS TRIGGER AS $$
BEGIN
    NEW.update_ts = now();
    RETURN NEW;
END;
$$ language 'plpgsql';

CREATE TRIGGER update_lnwallets_update_ts
    BEFORE UPDATE
    ON
        lnwallets
    FOR EACH ROW
EXECUTE PROCEDURE lnwallets_update_ts();

COMMIT;