public NpgsqlConsentStore(NpgsqlConnection conn, NpgsqlSchema schema)
        {
            Preconditions.IsNotNull(conn, nameof(conn));
            Preconditions.IsShortString(schema, nameof(schema));

            _conn = conn;
            _schema = schema;

            _loadAllQuery = "SELECT subject, client_id, scopes " +
                            $"FROM {_schema}.consents " +
                            "WHERE subject = @subject";

            _revokeQuery = $"DELETE FROM {_schema}.consents " +
                           "WHERE subject = @subject AND client_id = @client";

            _loadQuery = "SELECT subject, client_id, scopes " +
                         $"FROM {_schema}.consents " +
                         "WHERE subject = @subject AND client_id = @client";

            _rowExistsQuery = "SELECT COUNT(subject) " +
                              $"FROM {_schema}.consents " +
                              "WHERE subject = @subject AND client_id = @client";

            _insertQuery = $"INSERT INTO {_schema}.consents(subject, client_id, scopes) " +
                           "VALUES (@subject, @client, @scopes)";

            _updateQuery = $"UPDATE {_schema}.consents " +
                           "SET scopes = @scopes " +
                           "WHERE subject = @subject AND client_id = @client";
        }
        public NpgsqlClientStore(NpgsqlConnection conn, NpgsqlSchema schema)
        {
            Preconditions.IsNotNull(conn, nameof(conn));
            Preconditions.IsShortString(schema, nameof(schema));

            _conn = conn;
            _schema = schema;
            _serializer = JsonSerializerFactory.Create();

            _findQuery = "SELECT client_id, model " +
                         $"FROM {_schema}.clients " +
                         "WHERE client_id = @client";
            _insertQuery = $"INSERT INTO {_schema}.clients(client_id, model) " +
                           "VALUES(@client, @model);";
        }
        public NpgsqlScopeStore(NpgsqlConnection conn, NpgsqlSchema schema)
        {
            Preconditions.IsNotNull(conn, nameof(conn));
            Preconditions.IsShortString(schema, nameof(schema));

            _serializer = JsonSerializerFactory.Create();

            _conn = conn;
            _schema = schema;

            _findQuery = "SELECT name, is_public, model " +
                         $"FROM {_schema}.scopes " +
                         "WHERE name = any (@names)";

            _getQuery = "SELECT name, is_public, model " +
                        $"FROM {_schema}.scopes " +
                        "WHERE is_public = @public";
        }