//Imports here
import { ITestData } from "@business-logic/types/ITestData"
import { VehicleDamage, AppointmentType, ServicePackage } from "@business-logic/types/Enums";
import TestCase from "@business-logic/types/TestCase";
import PaymentData from "@business-logic/Data/PaymentData";
import { getDefaultTestData, setFakerSeedFromTestName } from "@business-logic/constants/DefaultTestData";

// Set the seed before generating any data
setFakerSeedFromTestName("CashRepairInShopAfterPay");

// Now get the test data with the seeded faker
const cashRepairInShopAfterPayData : Partial<ITestData> = {
    ...getDefaultTestData(),  // Get default data with current seed

    //Override default vehicle damage (Windshield Crack)
    vehicleDamage: [VehicleDamage.WindshieldTwoChips],

    // Key feature: Standard Package
    servicePackage: ServicePackage.Standard,
    
    // Override specific fields with test-specific data
    vehicleDetails: {
        ...getDefaultTestData().vehicleDetails!,
        vin: '1HGCV2E35LA005448'
    },
    
    // Override appointment details
    appointmentDetails: {
        ...getDefaultTestData().appointmentDetails!,
        shopAddress: "6826 Sawmill Rd, Columbus, OH 43235"
    },
    
    // Use predefined payment data
    paymentDetails: PaymentData.getDefaultAfterpayDetails()
}

const cashRepairInShopAfterPayTests: TestCase[] = [];

const tc = new TestCase({
    name: `CashRepairInShopAfterPay`,
    tags: ['@E2E','@CashRepairInShopAfterPay', '@test_report', '@CASH'],
    testData: cashRepairInShopAfterPayData
}, undefined, 'CashRepairInShopAfterPay');
cashRepairInShopAfterPayTests.push(tc);

export default cashRepairInShopAfterPayTests;