CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

CREATE TYPE "Audience" AS ENUM (
    'web',
    'mobile',
    'feed',
    'admin_panel'
    );

CREATE TYPE "Role" AS ENUM (
    'admin',
    'user'
    );

CREATE TABLE tokens
(
    id              integer                                                            NOT NULL,
    customer_id     uuid                                                               NOT NULL,
    role            "Role"                                                             NOT NULL,
    issuer          character varying           DEFAULT 'myco'::character varying    NOT NULL,
    subject         integer                                                            NOT NULL,
    audience        "Audience"                  DEFAULT 'web'::"Audience"              NOT NULL,
    expiration_time timestamp without time zone DEFAULT (now() + '14 days'::interval)  NOT NULL,
    not_before_time timestamp without time zone DEFAULT (now() - '00:01:00'::interval) NOT NULL,
    issued_at_time  timestamp without time zone DEFAULT now()                          NOT NULL,
    jwt_id          uuid                        DEFAULT gen_random_uuid()              NOT NULL
);
