import React, { useState } from 'react';
import { PackageTier, VehicleType } from '../types';
const DetailRealityCheck: React.FC = () => {
const [vehicleType, setVehicleType] = useState(VehicleType.CAR_4DR);
const [dirtiness, setDirtiness] = useState(5);
const [hasHair, setHasHair] = useState(false);
const [hasStains, setHasStains] = useState(false);
const [hasOdors, setHasOdors] = useState(false);
const [year, setYear] = useState(new Date().getFullYear());
const [result, setResult] = useState<{ tier: PackageTier; price: string; reason: string } | null>(null);
const calculate = () => {
const isNew = (new Date().getFullYear() - year) <= 5;
const isCar = vehicleType === VehicleType.CAR_2DR || vehicleType === VehicleType.CAR_4DR;
let tier = PackageTier.MODERATE;
let price = "";
let reason = "";
// VIP LIGHT CHECK ($250)
if (isNew && isCar && !hasHair && !hasStains && !hasOdors && dirtiness <= 4) {
tier = PackageTier.VIP_LIGHT;
price = "$250";
reason = "Good news, this one behaves nicely, so you qualify for our VIP Light Detail at $250.";
}
// MINIVAN SPECIAL ($650+)
else if (vehicleType === VehicleType.MINIVAN) {
tier = PackageTier.MODERATE;
price = dirtiness > 7 ? "$750+" : "$650+";
reason = "Minivans are large projects. " + (dirtiness > 7 ? "That level of cleaning" : "Standard care") + " starts around " + price + " to get it right.";
}
// EXTREME ($550+)
else if (dirtiness >= 9 || (hasHair && hasStains && hasOdors)) {
tier = PackageTier.EXTREME;
price = vehicleType === VehicleType.SUV ? "$600+" : vehicleType === VehicleType.TRUCK ? "$650+" : "$550+";
reason = "That bumps it into our next tier so we can handle the heavy lifting. This requires a total restoration focus.";
}
// HEAVY (Fails 2+ VIP conditions)
else if ([hasHair, hasStains, hasOdors, dirtiness > 5].filter(Boolean).length >= 2) {
tier = PackageTier.HEAVY;
price = vehicleType === VehicleType.SUV ? "$475-$525" : vehicleType === VehicleType.TRUCK ? "$500-$550" : "$425-$475";
reason = "Failing multiple VIP conditions moves this into our Heavy tier. We’ll need the extra time for pet hair or stains.";
}
// MODERATE (Fails 1 VIP condition)
else {
tier = PackageTier.MODERATE;
price = vehicleType === VehicleType.SUV ? "$400-$425" : vehicleType === VehicleType.TRUCK ? "$425-$450" : "$350-$375";
reason = "That bumps it into our Moderate tier—our most common service for Knoxville daily drivers.";
}
setResult({ tier, price, reason });
};
return (
Screening Tool
🧠 The Reality Check
30 seconds. Zero judgment. Tell us what we're working with.
{[
{ label: 'Hair', state: hasHair, set: setHasHair, icon: '🐶' },
{ label: 'Stains', state: hasStains, set: setHasStains, icon: '🧃' },
{ label: 'Odors', state: hasOdors, set: setHasOdors, icon: '👃' },
].map(item => (
))}
{result ? (
Professional Suggestion
{result.tier}
{result.price}
) : (
Complete the quick screening
to reveal your tier
)}
);
};
export default DetailRealityCheck;
top of page
NOW HIRING DETAILERS
(no experience needed)
Full name Date
Address Appt/unit#
Heading 1
City State zip
Phone Email
Date Avaliable Social Security No.
Are you a United States Citizen?
If no are you authorized to work in the U.S.?
Have you ever been convicted of a felony?
If yes When?
Education
High School Address
From To Did you graduate? Diploma
College Address
From To did you graduate? Diploma
Other Address
From To Did you graduate? Diploma
References
Please list work references
Company Phone
Company Phone
bottom of page