import { DeviceModelConfig, FeatureDependencies, RegisterModel } from "../baseDeviceFeatures";
import { Q7VacuumFeatures } from "./b01/Q7VacuumFeatures";
import { BASE_FAN, BASE_MOP, BASE_WATER, VacuumProfile } from "./v1VacuumFeatures";

const PROFILE_SC01: VacuumProfile = {
	name: "Roborock Q7 L5 (sc01)",
	features: {
		maxSuctionValue: 108
	},
	mappings: {
		fan_power: { ...BASE_FAN, 108: "Max+" },
		water_box_mode: BASE_WATER,
		mop_mode: BASE_MOP
	}
};

const sc01Config: DeviceModelConfig = {
	// B01 devices should strict to B01 protocol capabilities only.
	// We clear these to prevent standard Vacuum logic from adding incompatible commands.
	staticFeatures: []
};

@RegisterModel("roborock.vacuum.sc01")
export class SC01Features extends Q7VacuumFeatures {
	constructor(dependencies: FeatureDependencies, duid: string, ..._args: unknown[]) {
		super(dependencies, duid, "roborock.vacuum.sc01", sc01Config, PROFILE_SC01);
		// Prevent linter error for unused args
		void _args;
		dependencies.adapter.rLog("System", duid, "Info", "SC01", undefined, `Constructing SC01Features`, "info");
	}
}
