package com.orchard.models;

import org.apache.kafka.connect.data.Schema;
import org.apache.kafka.connect.data.SchemaBuilder;
import org.apache.kafka.connect.data.Struct;

public class Stats implements OrchardModel {

    public long followers;

    public long monthlyListeners;

    public long views;

    public long popularity;

    public static final Schema KafkaSchema = SchemaBuilder.struct().optional()
            .field("followers", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("monthlyListeners", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("views", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("popularity", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .build();

    public Struct ToKafkaStruct() {
        return new Struct(KafkaSchema)
                .put("followers", followers)
                .put("monthlyListeners", monthlyListeners)
                .put("views", views)
                .put("popularity", popularity);
    }
}
