CREATE TABLE users
(
    id              UUID UNIQUE PRIMARY KEY             NOT NULL,
    createdAt       TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
    updatedAt       TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
    username        TEXT UNIQUE                         NOT NULL,
    email           TEXT UNIQUE,
    authHash        TEXT,
    authSalt        TEXT,
    lastLoggedIn    TIMESTAMP DEFAULT NULL,
    creatorIp       TEXT      DEFAULT '0.0.0.0',
    role            TEXT      DEFAULT 'user'            NOT NULL,
    state           SMALLINT  DEFAULT 0                 NOT NULL,
    connectionGroup UUID      DEFAULT NULL,
    friendGroup     UUID      DEFAULT NULL,
    language        TEXT      DEFAULT 'en'
);

CREATE TRIGGER users_updated_at
    BEFORE UPDATE
    ON users
    FOR EACH ROW
EXECUTE PROCEDURE updated_at_timestamp();
