import { Document, Types } from "mongoose";

export type FuelType = "regular" | "premium" | "diesel" | "e85" | "electric";

export interface IOperatingHoursDay {
  closed: boolean;
  open?: string; // e.g. "06:00" or "06:00 am"
  close?: string; // e.g. "22:00" or "10:00 pm"
}

export interface IOperatingHours {
  monday?: IOperatingHoursDay;
  tuesday?: IOperatingHoursDay;
  wednesday?: IOperatingHoursDay;
  thursday?: IOperatingHoursDay;
  friday?: IOperatingHoursDay;
  saturday?: IOperatingHoursDay;
  sunday?: IOperatingHoursDay;
}

export interface IGasStation extends Document {
  userId: Types.ObjectId;
  name: string;
  address: string;
  city?: string;
  state?: string;
  zip?: string;
  country?: string;
  phone?: string;
  location: {
    type: "Point";
    coordinates: [number, number]; // [longitude, latitude]
  };
  googlePlaceId?: string;
  stripeAccountId?: string;
  stripeConnected: boolean;
  stripeChargesEnabled?: boolean;
  stripeDetailsSubmitted?: boolean;
  /** Admin moderation: pending on register until admin approves */
  approvalStatus?: "pending" | "approved" | "rejected";
  approvalNote?: string;
  approvedAt?: Date;
  approvedBy?: Types.ObjectId;
  isActive: boolean;
  fuelTypes?: FuelType[];
  operatingHours?: IOperatingHours;
  mainImage?: string;
  logoUrl?: string;
  galleryImages?: string[];
}
