import { Injectable } from '@nestjs/common';
import { ImageType, KeyValue, KeyValueAsSortBy, KeyValueStyle } from '../models/main.model';

@Injectable()
export class SelectOptionsService {
  constructor() {}
  public typesOfBusiness: Array<KeyValueStyle> = [
    { name: 'Automotive', value: 'automotive', oldValue: '1', icon: 'fa-solid fa-car', textColorClass: 'text-green-500' },
    { name: 'Industrial Services', value: 'industrialServices', oldValue: '2', icon: 'fa-solid fa-industry', textColorClass: 'text-yellow-400' },
    { name: 'Food and Restaurant', value: 'foodAndRestaurant', oldValue: '13', icon: 'fa-solid fa-utensils', textColorClass: 'text-amber-700' },
    { name: 'Real Estate', value: 'realEstate', oldValue: '3', icon: 'fa-solid fa-building', textColorClass: 'text-blue-400' },
    { name: 'Retail', value: 'retail', oldValue: '5', icon: 'fa-solid fa-money-bill-wave', textColorClass: 'text-pink-400' },
    { name: 'Oilfield SVE and MFG.', value: 'oilfield', oldValue: '6', icon: 'fa-solid fa-oil-well', textColorClass: 'text-indigo-400' },
    { name: 'Service', value: 'service', oldValue: '7', icon: 'fa-solid fa-umbrella', textColorClass: 'text-teal-400' },
    { name: 'Advertising', value: 'advertising', oldValue: '8', icon: 'fa-solid fa-rectangle-ad', textColorClass: 'text-orange-400' },
    { name: 'Agriculture', value: 'agriculture', oldValue: '9', icon: 'fa-solid fa-wheat-awn', textColorClass: 'text-sky-400' },
    { name: 'Franchise', value: 'franchise', oldValue: '10', icon: 'fa-solid fa-star', textColorClass: 'text-purple-400' },
    { name: 'Professional', value: 'professional', oldValue: '11', icon: 'fa-solid fa-user-gear', textColorClass: 'text-gray-400' },
    { name: 'Manufacturing', value: 'manufacturing', oldValue: '12', icon: 'fa-solid fa-industry', textColorClass: 'text-red-400' },
    { name: 'Uncategorized', value: 'uncategorized', oldValue: '4', icon: 'fa-solid fa-question', textColorClass: 'text-cyan-400' },
  ];
  public typesOfCommercialProperty: Array<KeyValueStyle> = [
    { name: 'Retail', value: 'retail', oldValue: '100', icon: 'fa-solid fa-money-bill-wave', textColorClass: 'text-pink-400' },
    { name: 'Land', value: 'land', oldValue: '101', icon: 'fa-solid fa-building', textColorClass: 'text-blue-400' },
    { name: 'Industrial', value: 'industrial', oldValue: '102', icon: 'fa-solid fa-industry', textColorClass: 'text-yellow-400' },
    { name: 'Office', value: 'office', oldValue: '103', icon: 'fa-solid fa-umbrella', textColorClass: 'text-teal-400' },
    { name: 'Mixed Use', value: 'mixedUse', oldValue: '104', icon: 'fa-solid fa-rectangle-ad', textColorClass: 'text-orange-400' },
    { name: 'Multifamily', value: 'multifamily', oldValue: '105', icon: 'fa-solid fa-star', textColorClass: 'text-purple-400' },
    { name: 'Uncategorized', value: 'uncategorized', oldValue: '106', icon: 'fa-solid fa-question', textColorClass: 'text-cyan-400' },
  ];
  public prices: Array<KeyValue> = [
    { name: '$100K', value: '100000' },
    { name: '$250K', value: '250000' },
    { name: '$500K', value: '500000' },
    { name: '$1M', value: '1000000' },
    { name: '$5M', value: '5000000' },
  ];
  public sortByOptions: Array<KeyValueAsSortBy> = [
    { name: 'Price Asc', value: 'priceAsc', type: 'listing' },
    { name: 'Price Desc', value: 'priceDesc', type: 'listing' },
    { name: 'Sales Revenue Asc', value: 'srAsc', type: 'business' },
    { name: 'Sales Revenue Desc', value: 'srDesc', type: 'business' },
    { name: 'Cash Flow Asc', value: 'cfAsc', type: 'business' },
    { name: 'Cash Flow Desc', value: 'cfDesc', type: 'business' },
    { name: 'Creation Date First', value: 'creationDateFirst', type: 'listing' },
    { name: 'Creation Date Last', value: 'creationDateLast', type: 'listing' },
    { name: 'Name Asc', value: 'nameAsc', type: 'professional' },
    { name: 'Name Desc', value: 'nameDesc', type: 'professional' },
    { name: 'Sort', value: null, selectName: 'Default Sorting' },
  ];
  public distances: Array<KeyValue> = [
    { name: '5 miles', value: '5' },
    { name: '20 miles', value: '20' },
    { name: '50 miles', value: '50' },
    { name: '100 miles', value: '100' },
    { name: '200 miles', value: '200' },
    { name: '300 miles', value: '300' },
    { name: '400 miles', value: '400' },
    { name: '500 miles', value: '500' },
  ];
  public listingCategories: Array<KeyValue> = [
    { name: 'Business', value: 'business' },
    { name: 'Commercial Property', value: 'commercialProperty' },
  ];
  public customerTypes: Array<KeyValue> = [
    { name: 'Buyer', value: 'buyer' },
    { name: 'Commercial Property Seller', value: 'seller' },
    { name: 'Professional', value: 'professional' },
  ];
  public customerSubTypes: Array<KeyValue> = [
    { name: 'Broker', value: 'broker' },
    { name: 'CPA', value: 'cpa' },
    { name: 'Attorney', value: 'attorney' },
    { name: 'Title Company', value: 'titleCompany' },
    { name: 'Surveyor', value: 'surveyor' },
    { name: 'Appraiser', value: 'appraiser' },
  ];
  public gender: Array<KeyValue> = [
    { name: 'Male', value: 'male' },
    { name: 'Female', value: 'female' },
  ];
  public imageTypes: ImageType[] = [
    { name: 'propertyPicture', upload: 'uploadPropertyPicture', delete: 'propertyPicture' },
    { name: 'companyLogo', upload: 'uploadCompanyLogo', delete: 'logo' },
    { name: 'profile', upload: 'uploadProfile', delete: 'profile' },
  ];
  private usStates = [
    { name: 'ALABAMA', abbreviation: 'AL' },
    { name: 'ALASKA', abbreviation: 'AK' },
    { name: 'ARIZONA', abbreviation: 'AZ' },
    { name: 'ARKANSAS', abbreviation: 'AR' },
    { name: 'CALIFORNIA', abbreviation: 'CA' },
    { name: 'COLORADO', abbreviation: 'CO' },
    { name: 'CONNECTICUT', abbreviation: 'CT' },
    { name: 'DELAWARE', abbreviation: 'DE' },
    { name: 'DISTRICT OF COLUMBIA', abbreviation: 'DC' },
    { name: 'FLORIDA', abbreviation: 'FL' },
    { name: 'GEORGIA', abbreviation: 'GA' },
    { name: 'GUAM', abbreviation: 'GU' },
    { name: 'HAWAII', abbreviation: 'HI' },
    { name: 'IDAHO', abbreviation: 'ID' },
    { name: 'ILLINOIS', abbreviation: 'IL' },
    { name: 'INDIANA', abbreviation: 'IN' },
    { name: 'IOWA', abbreviation: 'IA' },
    { name: 'KANSAS', abbreviation: 'KS' },
    { name: 'KENTUCKY', abbreviation: 'KY' },
    { name: 'LOUISIANA', abbreviation: 'LA' },
    { name: 'MAINE', abbreviation: 'ME' },
    { name: 'MARYLAND', abbreviation: 'MD' },
    { name: 'MASSACHUSETTS', abbreviation: 'MA' },
    { name: 'MICHIGAN', abbreviation: 'MI' },
    { name: 'MINNESOTA', abbreviation: 'MN' },
    { name: 'MISSISSIPPI', abbreviation: 'MS' },
    { name: 'MISSOURI', abbreviation: 'MO' },
    { name: 'MONTANA', abbreviation: 'MT' },
    { name: 'NEBRASKA', abbreviation: 'NE' },
    { name: 'NEVADA', abbreviation: 'NV' },
    { name: 'NEW HAMPSHIRE', abbreviation: 'NH' },
    { name: 'NEW JERSEY', abbreviation: 'NJ' },
    { name: 'NEW MEXICO', abbreviation: 'NM' },
    { name: 'NEW YORK', abbreviation: 'NY' },
    { name: 'NORTH CAROLINA', abbreviation: 'NC' },
    { name: 'NORTH DAKOTA', abbreviation: 'ND' },
    { name: 'OHIO', abbreviation: 'OH' },
    { name: 'OKLAHOMA', abbreviation: 'OK' },
    { name: 'OREGON', abbreviation: 'OR' },
    { name: 'PALAU', abbreviation: 'PW' },
    { name: 'PENNSYLVANIA', abbreviation: 'PA' },
    { name: 'RHODE ISLAND', abbreviation: 'RI' },
    { name: 'SOUTH CAROLINA', abbreviation: 'SC' },
    { name: 'SOUTH DAKOTA', abbreviation: 'SD' },
    { name: 'TENNESSEE', abbreviation: 'TN' },
    { name: 'TEXAS', abbreviation: 'TX' },
    { name: 'UTAH', abbreviation: 'UT' },
    { name: 'VERMONT', abbreviation: 'VT' },
    { name: 'VIRGINIA', abbreviation: 'VA' },
    { name: 'WASHINGTON', abbreviation: 'WA' },
    { name: 'WEST VIRGINIA', abbreviation: 'WV' },
    { name: 'WISCONSIN', abbreviation: 'WI' },
    { name: 'WYOMING', abbreviation: 'WY' },
  ];
  public locations: Array<any> = [...this.usStates.map(state => ({ name: state.name, value: state.abbreviation }))].concat({ name: 'CANADA', value: 'CA' });
}
