import { NextResponse } from 'next/server'
import mongoose from 'mongoose'
import connectToDatabase from '@/lib/db'
import DemoModel from '@/lib/models/demo'

export async function POST(request: Request) {
  try {
    const { title, description, date, startTime, endTime } = await request.json()

    await connectToDatabase()

    const newDemo = new (DemoModel(mongoose))({
      title,
      description,
      date,
      startTime,
      endTime,
    })

    await newDemo.save()

    return NextResponse.json({ message: 'Demo created successfully', demo: newDemo }, { status: 201 })
  } catch (error) {
    console.error(error)
    return NextResponse.json({ message: 'Error creating demo' }, { status: 500 })
  }
}

export async function GET() {
  try {
    await connectToDatabase()

    const demos = await DemoModel(mongoose).find().sort({ date: -1, startTime: -1 })

    return NextResponse.json({ demos })
  } catch (error) {
    console.error(error)
    return NextResponse.json({ message: 'Error fetching demos' }, { status: 500 })
  }
}
