export type Barber = { id: string; name: string; imageUrl?: string; specialties: string[]; schedule: { day: string; slots: string[] }[] };
export type Service = { id: string; name: string; price: number; duration: number; barberIds: string[] };
export type Product = { id: string; name: string; price: number; stock: number };
export type ShopSchedule = { day: string; open: string; close: string; closed?: boolean };
export type BarberShop = {
  id: string;
  name: string;
  address: string;
  rating: number;
  services: Service[];
  products: Product[];
  barbers: Barber[];
  imageUrl?: string;
  schedule?: ShopSchedule[];
  paymentMethods?: string[];
  socialNetworks?: { whatsapp?: string; instagram?: string; facebook?: string };
  contacts?: { phone1?: string; phone2?: string };
};
export type AppointmentStatus = 'pendente' | 'confirmado' | 'concluido' | 'cancelado';
export type OrderStatus = 'pendente' | 'confirmado' | 'concluido' | 'cancelado';
export type Appointment = { id: string; shopId: string; serviceId: string; barberId: string; customerId: string; date: string; status: AppointmentStatus; total: number; reminderMinutes?: number };
export type CartItem = { shopId: string; type: 'service' | 'product'; refId: string; qty: number };
export type Order = { id: string; shopId: string; customerId: string; items: CartItem[]; total: number; status: OrderStatus; createdAt: string };
export type User = { id: string; name: string; email: string; password: string; role: 'cliente' | 'barbearia'; shopId?: string; fcmToken?: string };
export type WaitlistEntry = { id: string; shopId: string; serviceId: string; barberId: string; customerId: string; date: string; status: 'pending' | 'notified' | 'resolved'; createdAt: string };
export type AppNotification = { id: string; userId: string; message: string; read: boolean; createdAt: string };

