1syntax = "proto2";
2
3import "playlist4meta.proto";
4import "playlist4content.proto";
5
6message Add {
7    optional int32 fromIndex = 0x1;
8    repeated Item items = 0x2;
9    optional ListChecksum list_checksum = 0x3;
10    optional bool addLast = 0x4;
11    optional bool addFirst = 0x5;
12}
13
14message Rem {
15    optional int32 fromIndex = 0x1;
16    optional int32 length = 0x2;
17    repeated Item items = 0x3;
18    optional ListChecksum list_checksum = 0x4;
19    optional ListChecksum items_checksum = 0x5;
20    optional ListChecksum uris_checksum = 0x6;
21    optional bool itemsAsKey = 0x7;
22}
23
24message Mov {
25    optional int32 fromIndex = 0x1;
26    optional int32 length = 0x2;
27    optional int32 toIndex = 0x3;
28    optional ListChecksum list_checksum = 0x4;
29    optional ListChecksum items_checksum = 0x5;
30    optional ListChecksum uris_checksum = 0x6;
31}
32
33message ItemAttributesPartialState {
34    optional ItemAttributes values = 0x1;
35    repeated ItemAttributeKind no_value = 0x2;
36
37    enum ItemAttributeKind {
38        ITEM_UNKNOWN = 0x0;
39        ITEM_ADDED_BY = 0x1;
40        ITEM_TIMESTAMP = 0x2;
41        ITEM_MESSAGE = 0x3;
42        ITEM_SEEN = 0x4;
43        ITEM_DOWNLOAD_COUNT = 0x5;
44        ITEM_DOWNLOAD_FORMAT = 0x6;
45        ITEM_SEVENDIGITAL_ID = 0x7;
46        ITEM_SEVENDIGITAL_LEFT = 0x8;
47        ITEM_SEEN_AT = 0x9;
48        ITEM_PUBLIC = 0xa;
49    }
50}
51
52message ListAttributesPartialState {
53    optional ListAttributes values = 0x1;
54    repeated ListAttributeKind no_value = 0x2;
55
56    enum ListAttributeKind {
57        LIST_UNKNOWN = 0x0;
58        LIST_NAME = 0x1;
59        LIST_DESCRIPTION = 0x2;
60        LIST_PICTURE = 0x3;
61        LIST_COLLABORATIVE = 0x4;
62        LIST_PL3_VERSION = 0x5;
63        LIST_DELETED_BY_OWNER = 0x6;
64        LIST_RESTRICTED_COLLABORATIVE = 0x7;
65    }
66}
67
68message UpdateItemAttributes {
69    optional int32 index = 0x1;
70    optional ItemAttributesPartialState new_attributes = 0x2;
71    optional ItemAttributesPartialState old_attributes = 0x3;
72    optional ListChecksum list_checksum = 0x4;
73    optional ListChecksum old_attributes_checksum = 0x5;
74}
75
76message UpdateListAttributes {
77    optional ListAttributesPartialState new_attributes = 0x1;
78    optional ListAttributesPartialState old_attributes = 0x2;
79    optional ListChecksum list_checksum = 0x3;
80    optional ListChecksum old_attributes_checksum = 0x4;
81}
82
83message Op {
84    optional Kind kind = 0x1;
85    enum Kind {
86        KIND_UNKNOWN = 0x0;
87        ADD = 0x2;
88        REM = 0x3;
89        MOV = 0x4;
90        UPDATE_ITEM_ATTRIBUTES = 0x5;
91        UPDATE_LIST_ATTRIBUTES = 0x6;
92    }
93    optional Add add = 0x2;
94    optional Rem rem = 0x3;
95    optional Mov mov = 0x4;
96    optional UpdateItemAttributes update_item_attributes = 0x5;
97    optional UpdateListAttributes update_list_attributes = 0x6;
98}
99
100message OpList {
101    repeated Op ops = 0x1;
102}
103
104