From 5d192dc12ad2b8f5ae1a3c8ffc079d351d90c22e Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Thu, 8 Sep 2022 22:08:59 +0200 Subject: [PATCH] Created the ShortenedLink model --- models/ShortenedLink.ts | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 models/ShortenedLink.ts diff --git a/models/ShortenedLink.ts b/models/ShortenedLink.ts new file mode 100644 index 0000000..1dbcd75 --- /dev/null +++ b/models/ShortenedLink.ts @@ -0,0 +1,35 @@ +import mongoose, {Schema} from 'mongoose'; +import * as crypto from "crypto"; + +export interface IShortenedLink { + shortenedId: string + originalUrl: string + clientId: number + clicks: number + created: Date +} + +const ShortenedSchema = new Schema({ + shortenedId: { + type: String, + default: crypto.randomBytes(12).toString('hex') + }, + originalUrl: { + type: String, + required: true + }, + clientId: { + type: Number, + required: true + }, + clicks: { + type: Number, + default: 0 + }, + created: { + type: Date, + default: Date.now + } +}); + +export const ShortenedLink = mongoose.model('shortened_links', ShortenedSchema); \ No newline at end of file