35 lines
731 B
TypeScript
35 lines
731 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(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); |