import DB from "../database.js";
import { ModelDataBase } from "@hibas123/safe_mongo/lib/model.js";
import { ObjectId } from "mongodb";
import { v4 } from "uuid";

export interface IClient extends ModelDataBase {
   maintainer: ObjectId;
   internal: boolean;
   name: string;
   redirect_url: string;
   website: string;
   logo?: string;
   client_id: string;
   client_secret: string;
   featured?: boolean;
   description?: string;
}

const Client = DB.addModel<IClient>({
   name: "client",
   versions: [
      {
         migration: () => { },
         schema: {
            maintainer: { type: ObjectId },
            internal: { type: Boolean, default: false },
            name: { type: String },
            redirect_url: { type: String },
            website: { type: String },
            logo: { type: String, optional: true },
            client_id: { type: String, default: () => v4() },
            client_secret: { type: String },
            featured: { type: Boolean, optional: true },
            description: { type: String, optional: true },
         },
      },
   ],
});

export default Client;
