syntax = "proto2";

package maps_adv.adv_store.proto.creative;

message Image {
    required string type = 1;
    required string group_id = 2;
    required string image_name = 3;
    optional string alias_template = 4;
    optional string metadata = 5;
}

message Billboard {
    repeated Image images = 1;
    repeated Image images_v2 = 2;
    optional string title = 3;
    optional string description = 4;
}

message Pin {
    repeated Image images = 1;
    required string title = 2;
    required string subtitle = 3;
}

message PinSearch {
    repeated Image images = 1;
    optional string title = 2;
    repeated uint64 organizations = 3 [packed=true];
}

message LogoAndText {
    repeated Image images = 1;
    optional string text = 2;
}

message Banner {
    repeated Image images = 1;
    required string disclaimer = 2;
    required bool show_ads_label = 3;
    optional string title = 4 [default=""];
    optional string description = 5 [default=""];
    optional string terms = 6 [default=""];
}

message Text {
    required string text = 1;
    required string disclaimer = 2;
}

message Icon {
    repeated Image images = 1;
    required int32 position = 3;
    optional string title = 4 [default=""];
}

message ViaPoint {
    repeated Image images = 1;
    required string button_text_active = 2;
    required string button_text_inactive = 3;
    required string description = 4;
}

message AudioBanner {
    repeated Image images = 1;
    required string left_anchor = 2;
    required string audio_file_url = 3;
}

message Creative {
    oneof creative {
        Billboard billboard = 4;
        Pin pin = 5;
        Banner banner = 6;
        Text text = 7;
        Icon icon = 8;
        PinSearch pin_search = 9;
        LogoAndText logo_and_text = 10;
        ViaPoint via_point = 11;
        AudioBanner audio_banner = 12;
    }
}
