Backend/models/ShortenedLink.ts

35 lines
730 B
TypeScript

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<IShortenedLink>({
shortenedId: {
type: String,
default: crypto.randomBytes(3).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);