// (c) 2025 ANSYS, Inc. Unauthorized use, distribution, or duplication is prohibited.
syntax = "proto3";

package ansys.api.speos.intensity_distributions.v1.eulumdat;

// service to manage eulumdat file
service EulumdatIntensityService {
	// Load CEulumdat from filename
	rpc Load(Load_Request) returns (Load_Response) {}
	// Save CEulumdat to filename
	rpc Save(Save_Request) returns (Save_Response) {}

	// import EulumdatIntensityDistribution to CEulumdat
	rpc Import(EulumdatIntensityDistribution) returns (Import_Response) {}
	// export CEulumdat to EulumdatIntensityDistribution
	rpc Export(Export_Request) returns (EulumdatIntensityDistribution) {}
}

message EulumdatIntensityData {
	int32 number_lamps = 1;
	string type_lamps = 2;
	double total_luminous_flux = 3;
	string color_temperature = 4;
	string color_rendering_index = 5;
	double wattage_including_ballast = 6;
}

message EulumdatFileInformation {
	string company_identification = 1;
	string measurement_report_number = 2;
	string luminaire_name = 3;
	string luminaire_number = 4;
	string file_name = 5;
	string date = 6;
}

message EulumdatIntensityDistribution {
	string description = 1;
	EulumdatFileInformation file_info = 2;
	int32 type_indicator = 3;
	int32 symmetry_indicator = 4;
	int32 c_plane_number = 5;
	double distance_c_planes = 6;
	int32 g_angle_number = 7;
	double distance_g_angle = 8;
	double diameter_luminaire = 9;
	double width_luminaire = 10;
	double height_luminaire = 11;
	double diameter_luminous_area = 12;
	double width_luminous_area = 13;
	double height_luminous_area_c0 = 14;
	double height_luminous_area_c90 = 15;
	double height_luminous_area_c180 = 16;
	double height_luminous_area_c270 = 17;
	double downward_flux_fraction = 18;
	double light_ouput_ratio = 19;
	double conversion_factor = 20;
	double measurement_tilt = 21;
	int32 number_standard_set_lamps = 22;
	repeated EulumdatIntensityData lamp_distribution = 23;
	repeated double direct_ratio = 24;
	repeated double c_plane = 25;
	repeated double g_angle = 26;
	repeated double luminous_intensity_per_klm = 27;
}

message Load_Request {
	string file_uri = 1;
}

message Save_Request {
	string file_uri = 1;
}

message Load_Response{
}

message Save_Response{
}

message Import_Response{
}

message Export_Request{
}