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

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

  /**
   * Insert nonce; if exists throws P2002 unique constraint violation.
   */
  insertNonce(nonce: string, expiresAt: Date) {
    return this.prisma.sharedCheckinTicketUsage.create({
      data: { nonce, expiresAt },
    });
  }

  cleanupExpired() {
    return this.prisma.sharedCheckinTicketUsage.deleteMany({
      where: { expiresAt: { lt: new Date() } },
    });
  }
}
