import mongoose, { Schema, models, model } from "mongoose";

// Kompakte Sterne-Bewertung ohne Zitat — bewusst getrennt vom Testimonial-
// Model (eigener Content-Typ laut Wunsch, nicht dieselben Einträge in zwei
// Ansichten). Läuft als eigenes, kompaktes Fließband direkt unter dem Hero,
// oberhalb des großen Testimonial-Fließbands.
export interface QuickReviewDoc {
  _id: string;
  // Voller Name, z. B. "Till Kuhlmann" — auf der Startseite automatisch zu
  // "Till K." gekürzt (siehe lib/formatName.ts), damit im Admin-Formular der
  // echte Name eingetragen wird statt die Kürzung von Hand nachzubauen.
  authorName: string;
  rating: number;
  visible: boolean;
  sortOrder: number;
  createdAt: Date;
  updatedAt: Date;
}

const quickReviewSchema = new Schema<QuickReviewDoc>(
  {
    authorName: { type: String, required: true, trim: true, maxlength: 100 },
    rating: { type: Number, required: true, min: 1, max: 5 },
    visible: { type: Boolean, default: true },
    sortOrder: { type: Number, default: 0 },
  },
  { timestamps: true }
);

export const QuickReview =
  (models.QuickReview as mongoose.Model<QuickReviewDoc>) || model<QuickReviewDoc>("QuickReview", quickReviewSchema);
