option app_label = "simpleexampleservice";
option name = "simpleexampleservice";

message SimpleExampleService (Service){
    option verbose_name = "Simple Example Service";
    required string service_message = 1 [help_text = "Service Message to Display", max_length = 254, null = False, db_index = False, blank = False];
    optional string service_secret = 2 [help_text = "Service Secret to place in a file", null = False, db_index = False, blank = True];
}

message ColorNew (XOSBase){
     option verbose_name = "Color";
     required string name = 1 [help_text = "Name for this color", db_index = False, max_length = 256, null = False, blank = False];
     required string html_code = 2 [help_text = "Code for this color", db_index = False, max_length = 256, null = False, blank = False];
}

message ServiceInstanceWithCompute (ServiceInstance) {
    optional manytoone compute_instance->ComputeServiceInstance:service_instance_with_computes = 1:1001 [db_index=True, null=True, blank=True];
}

message SimpleExampleServiceInstance (ServiceInstanceWithCompute){
     option verbose_name = "Example Service Instance";
     required string tenant_message = 1 [help_text = "Tenant Message to Display", max_length = 254, null = False, db_index = False, blank = False];
     optional manytoone foreground_color->ColorNew:serviceinstance_foreground_colors = 2:1001 [db_index = True, null = True, blank = True];
     optional manytoone background_color->ColorNew:serviceinstance_background_colors = 3:1002 [db_index = True, null = True, blank = True];
     optional string tenant_secret = 4 [help_text = "Tenant Secret to place in a file", null = False, db_index = False, blank = True];
}

message EmbeddedImageNew (XOSBase){
     option verbose_name = "Embedded Image";
     required string name = 1 [help_text = "Name for this image", db_index = False, max_length = 256, null = False, blank = False];
     required string url = 2 [help_text = "URL for this image", db_index = False, max_length = 256, null = False, blank = False];
     optional manytoone serviceinstance->SimpleExampleServiceInstance:embedded_images = 3:1001 [db_index = True, null = True, blank = True];
}
