import { BaseSeeder } from '@adonisjs/lucid/seeders'
import InternationalShipmentCarrier from '#models/international_shipment_carrier'
import env from '#start/env'
import { ShippingCarrier } from '../../types/enum.js'

export default class InternationalShipmentCarrierSeeder extends BaseSeeder {
  public async run() {
    await InternationalShipmentCarrier.updateOrCreateMany('carrier', [
      // ===== DHL =====
      {
        carrier: ShippingCarrier.DHL,
        is_enabled: true,
        dhl_username: env.get('DHL_USERNAME'),
        dhl_password: env.get('DHL_PASSWORD'),
        dhl_account_number: env.get('DHL_ACCOUNT_NUMBER'),
      },

      // ===== Aramex =====
      {
        carrier: ShippingCarrier.Aramex,
        is_enabled: true,
        aramex_username: env.get('ARAMEX_USERNAME'),
        aramex_password: env.get('ARAMEX_PASSWORD'),
        aramex_account_number: env.get('ARAMEX_ACCOUNT_NUMBER'),
        aramex_account_pin: env.get('ARAMEX_ACCOUNT_PIN'),
        aramex_entity: env.get('ARAMEX_ACCOUNT_ENTITY'),
        aramex_country_code: env.get('ARAMEX_ACCOUNT_COUNTRY_CODE'),
      },

      // ===== SMSA =====
      {
        carrier: ShippingCarrier.SMSA,
        is_enabled: true,
        smsa_passkey: env.get('SMSA_PASSKEY'),
        smsa_soap_passkey: env.get('SMSA_SOAP_PASSKEY'),
      },

      // ===== FedEx =====
      {
        carrier: ShippingCarrier.FedEx,
        is_enabled: true,
        fedex_api_key: env.get('FEDEX_API_KEY'),
        fedex_secret_key: env.get('FEDEX_SECRET_KEY'),
        fedex_account_number: env.get('FEDEX_ACCOUNT_NUMBER'),
      },
    ])
  }
}
