import { DamageLocation, DamageSubLocation, DamageType as DamageCause, WindshieldDamage, ServiceLocation, EndorsementType, VehicleLookupType, PartQuestionType, PaymentType } from "./Enums";
import { IAddress } from "./IAddress";

export interface ICustomerDetails {
    firstName: string,
    lastName: string,
    email: string,
    phoneNumber: string,
    notes: string,
    address: IAddress,
    apptDate?: string,
    packagePrice?: String
}

export interface IClaimDetails {
    policyNumber: string,
    policyDeductible: number,
    damageDate: string,
    damageCause: DamageCause
}

export interface IEndorsementDetails {
    endorsementType: EndorsementType,
    isOnPolicy: boolean,    // Should we expect this endorsement to appear?
    isClickYes: boolean       // Should we click Yes or No?
}

export interface IVehicleDetails {
    year: string,
    make: string,
    model: string,
    style?: string,
    vin?: string | string[],
    address?: string | IAddress[],
    licensePlateNumber?: string | string[],
    licensePlateState?: string | string[],
    vehicleLookupType?: VehicleLookupType,
}

export interface IAppointmentDetails {
    serviceLocation: ServiceLocation,
    appointmentDate?: Date,
    shopAddress?: string,          // Used for in-shop
    serviceAddress?: IAddress,    // Used for mobile
    isVehicleProtected?: boolean    // Used for mobile
    alternateServiceZip?: string    // Used for in-shop and drop-off if doing service in a different ZIP
}

export interface IPartQuestion {
    isOnPage: boolean,
    optionToSelect: string,
    partQuestionType: PartQuestionType,
    secondaryQuestionOptionToSelect?: string
}

export interface IPaymentDetails {
    paymentType: PaymentType,
    username?: string,
    password?: string,
    cardNumber?: string,
    expirationMonth?: string,
    expirationYear?: string,
    cvv?: string,
    billingAddress?: IAddress,
}

// export interface IVehicleDamage {
//     isRearWindowDamage?: boolean,
//     windshieldDamage?: WindshieldDamage,
//     windowDamage?: IWindowDamage
// }

// interface ISideDoorDamage {
//     isFrontDoor: boolean,
//     isBackDoor: boolean,
//     isQuarterPanel: boolean
// }

// export interface IWindowDamage {
//     driverSideDamage?: ISideDoorDamage,
//     passengerSideDamage?: ISideDoorDamage
// }