import { Injectable } from '@nestjs/common';
import { PrismaService } from '../prisma/prisma.service';

@Injectable()
export class AnnouncementsService {
  constructor(private prisma: PrismaService) {}

  async findAll() {
    const now = new Date();
    return this.prisma.announcement.findMany({
      where: { startDate: { lte: now }, endDate: { gte: now } },
      orderBy: { createdAt: 'desc' },
    });
  }

  async adminFindAll() {
    return this.prisma.announcement.findMany({ orderBy: { createdAt: 'desc' } });
  }

  async create(data: { title: string; content: string; startDate: string; endDate: string }) {
    return this.prisma.announcement.create({
      data: { ...data, startDate: new Date(data.startDate), endDate: new Date(data.endDate) },
    });
  }

  async update(id: number, data: { title?: string; content?: string; startDate?: string; endDate?: string }) {
    const updateData: any = { ...data };
    if (data.startDate) updateData.startDate = new Date(data.startDate);
    if (data.endDate) updateData.endDate = new Date(data.endDate);
    return this.prisma.announcement.update({ where: { id }, data: updateData });
  }

  async remove(id: number) {
    return this.prisma.announcement.delete({ where: { id } });
  }
}
