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 StreamsStats implements OrchardModel {

    public long streams1Day;

    public long streams1DayPrev;

    public long streams7Days;

    public long streams7DaysPrev;

    public long streams28Days;

    public long streams28DaysPrev;

    public long streamsAllTime;

    public static final Schema KafkaSchema = SchemaBuilder.struct().optional()
            .field("streams1Day", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("streams1DayPrev", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("streams7Days", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("streams7DaysPrev", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("streams28Days", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("streams28DaysPrev", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .field("streamsAllTime", org.apache.kafka.connect.data.Schema.OPTIONAL_INT64_SCHEMA)
            .build();

    public Struct ToKafkaStruct() {
        return new Struct(KafkaSchema)
                .put("streams1Day", streams1Day)
                .put("streams1DayPrev", streams1DayPrev)
                .put("streams7Days", streams7Days)
                .put("streams7DaysPrev", streams7DaysPrev)
                .put("streams28Days", streams28Days)
                .put("streams28DaysPrev", streams28DaysPrev)
                .put("streamsAllTime", streamsAllTime);
    }
}
