syntax = "proto3"; package ticket; // golang option go_package = "./ticket"; // java option java_package = "com.gshopper.crm.ticket"; option java_outer_classname = "proto"; enum MessageProvider { UnknownMessageProvider = 0; EmailMessageProvider = 1; ChatMessageProvider = 2; GptMessageProvider = 3; ApiMessageProvider = 4; FunctionProvider = 5; } message Message { message Header { string key = 1; string value = 2; } message Attachment { message Upload { string bucket = 1; string key = 2; string etag = 3; int64 size = 4; int64 last_modified = 5; string location = 6; string version = 7; } string id = 1; string filename = 2; string content_type = 3; string content_encoding = 4; Upload upload = 5; } string ticket_id = 1 [json_name = "ticket_id"]; MessageProvider provider = 2 [json_name = "provider"]; string body = 3 [json_name = "body"]; int64 date = 4 [json_name = "date"]; string raw = 5 [json_name = "raw"]; string id = 6 [json_name = "id"]; bytes flags = 7 [json_name = "flags"]; repeated Header headers = 10 [json_name = "headers"]; repeated Attachment attachments = 11 [json_name = "attachments"]; } message Ticket { string id = 1 [json_name= "id"]; repeated Message thread = 10 [json_name = "thread"]; }