import { registerAs } from "@nestjs/config"

export const appSetting = {
  max_invalid_password_attempt: 3,
  can_login_after_locked: 10,
  can_request_token_after_minutes: 10,
  access_token_expiry_in_minutes: 1440,
  // direct_customer_tax_percentage: 5,
}

export const defaultAdmins = [
  {
    first_name: "admin",
    last_name: "admin",
    slug: "admin-admin",
    email: "admin@admin.com",
    password: "Admin@123",
  },
]

export const defaultTags = [
  { name: "Executive", type: "corporate" },
  { name: "Frequent Traveler", type: "corporate" },
  { name: "Premium Service", type: "corporate" },
  { name: "Group Booking", type: "corporate" },
  { name: "Corporate Account", type: "corporate" },
  { name: "VIP", type: "corporate" },

  // Medical Tourist tags
  { name: "Extra Vehicle Needed", type: "medical_tourist" },
  { name: "Urgent Arrival", type: "medical_tourist" },
  { name: "High-Risk Patient", type: "medical_tourist" },
  { name: "VIP", type: "medical_tourist" },
]

export const defaultTripType = [
  { name: "Airport Pickup", type: "airport_pickup" },
  { name: "Airport Drop Off", type: "airport_dropoff" },
  { name: "Point to Point", type: "point_to_point" },
  { name: "Per Hour", type: "hourly" },
  { name: "10 Hours per day", type: "daily" },
  { name: "Tour", type: "tour" },
  { name: "City to City", type: "city_to_city" },
]

export const defaultTripIncidentType = [
  { name: "Vehicle-Related" },
  { name: "Passenger Behavior" },
  { name: "Safety & Emergency" },
  { name: "Technical Issues" },
  { name: "Payment Issues" },
  { name: "Ride-Related Delays" },
  { name: "Lost & Found" },
]

export default registerAs("APP", () => ({
  env: process.env.NODE_ENV || "local",
  port: parseInt(process.env.PORT, 10) || 3001,

  pagination: {
    take: "10",
    skip: "0",
  },

  datetimeFormat: "YYYY-MM-DD HH:mm:ss",
}))

export const cloudflareR2Config = registerAs("CLOUDFLARE_R2", () => ({
  accountId: process.env.CLOUDFLARE_R2_ACCOUNT_ID,
  accessKeyId: process.env.CLOUDFLARE_R2_ACCESS_KEY_ID,
  secretAccessKey: process.env.CLOUDFLARE_R2_SECRET_ACCESS_KEY,
  bucketName: process.env.CLOUDFLARE_R2_BUCKET_NAME,
  publicUrl: process.env.CLOUDFLARE_R2_PUBLIC_URL,
}))
