import type { Slide } from "@/types";
import { slides } from "@/features/_mock/extra";

let store = [...slides];

export const slidesService = {
  async list(): Promise<Slide[]> { return [...store].sort((a, b) => a.order - b.order); },
  async listEnabled(): Promise<Slide[]> { return (await this.list()).filter((s) => s.enabled); },
  async create(data: Omit<Slide, "id">): Promise<Slide> {
    const s: Slide = { ...data, id: `s-${Date.now()}` };
    store.push(s); return s;
  },
  async update(id: string, patch: Partial<Slide>): Promise<Slide> {
    store = store.map((s) => (s.id === id ? { ...s, ...patch } : s));
    return store.find((s) => s.id === id)!;
  },
  async remove(id: string): Promise<void> { store = store.filter((s) => s.id !== id); },
  async reorder(ids: string[]): Promise<void> {
    store = store.map((s) => ({ ...s, order: ids.indexOf(s.id) + 1 }));
  },
};

export const AUTOPLAY_INTERVAL_MS = 6000;