import "google/protobuf/descriptor.proto";
extend google.protobuf.FieldOptions {
    optional bool sql_primary_key = 32382 [ default = false];
    optional bool sql_ignore      = 32383 [ default = false];
}

import "@CONCRETE_INJECTION_POINT@";

message DatabaseCampaignMessage {
    required uint32 pilot_id                 = 1 [(sql_primary_key) = true];
    required uint32 variant_id               = 2 [(sql_ignore) = true];
    required uint32 fspmethod_id             = 3 [(sql_ignore) = true];

    // ToDo: injection_instr can be deleted if all experiments switched to
    // using generic InjectionPointMessage
    required uint32 injection_instr          = 4 [(sql_ignore) = true];
    optional uint32 injection_instr_absolute = 5 [(sql_ignore) = true];
    required uint32 data_address             = 6 [(sql_ignore) = true];
    required uint32 data_width               = 7 [(sql_ignore) = true];
    required string variant                  = 8 [(sql_ignore) = true];
    required string benchmark                = 9 [(sql_ignore) = true];

    required InjectionPointMessage injection_point	= 10 [(sql_ignore) = true];
}