create table peers
(
    federated_address    varchar(256)                    not null comment 'The standard federated address of the peer'
        primary key,
    client_first_seen    varchar(36)                     not null comment 'The UUID of the client that first discovered the peer',
    client_last_seen     varchar(36)                     not null comment 'The UUID of the client that last saw this peer',
    active_restriction   varchar(36)                     null comment 'Optional. The UUID of the restriction that is currently active on the peer',
    discovered_timestamp bigint default unix_timestamp() not null comment 'The Unix Timestamp for when this peer was first discovered',
    seen_timestamp       bigint default unix_timestamp() not null comment 'The Unix Timestamp for when this peer was last seen',
    constraint discovered_peers_federated_address_uindex
        unique (federated_address),
    constraint discovered_peers_clients_uuid_fk
        foreign key (client_first_seen) references clients (uuid),
    constraint discovered_peers_clients_uuid_fk2
        foreign key (client_last_seen) references clients (uuid),
    constraint peers_restrictions_uuid_fk
        foreign key (active_restriction) references restrictions (uuid)
)
    comment 'The table for housing all the discovered peers';

create index discovered_peers_client_first_seen_index
    on peers (client_first_seen);

create index discovered_peers_client_last_seen_index
    on peers (client_last_seen);

create index peers_active_restriction_index
    on peers (active_restriction);

