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];
}

// Note: Named ServiceInstanceWithCompute2 to prevent name collision with ExampleService.ServiceInstanceWithCompute.
//       Expect this model to eventually move to the core.

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

message SimpleExampleServiceInstance (ServiceInstanceWithCompute2){
     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];
}
