Files
nirvana-v3/packages/core/models/content.model.ts

40 lines
830 B
TypeScript

import { ObjectId } from 'mongodb';
export interface IContent {
id?: ObjectId;
creatorUserId: string;
contentUrl: string; // remote resource of file/media
createdDate: Date;
// visitCount
}
// ? persist length of clip for easier read access for others...
// ? they have to load it anyway and will get metadata anyway?
export class ContentBlock implements IContent {
constructor(
public creatorUserId: string,
public contentUrl: string,
public contentType: ContentType,
public blobType: string,
public createdDate = new Date(),
public metadata?: object,
public id?: ObjectId,
) {}
}
export enum ContentType {
audio = 'audio',
link = 'link',
image = 'image',
code = 'code',
}
export function isUrlImage(url: string) {
return url.match(/\.(jpeg|jpg|gif|png)$/) != null;
}