mirror of
https://github.com/OneUptime/oneuptime
synced 2024-11-23 07:42:10 +00:00
112 lines
3.0 KiB
TypeScript
112 lines
3.0 KiB
TypeScript
import { Column } from 'typeorm';
|
|
import ColumnAccessControl from '../Types/Database/AccessControl/ColumnAccessControl';
|
|
import ColumnLength from '../Types/Database/ColumnLength';
|
|
import ColumnType from '../Types/Database/ColumnType';
|
|
import SlugifyColumn from '../Types/Database/SlugifyColumn';
|
|
import TableColumn from '../Types/Database/TableColumn';
|
|
import TableColumnType from '../Types/Database/TableColumnType';
|
|
import MimeType from '../Types/File/MimeType';
|
|
import ObjectID from '../Types/ObjectID';
|
|
import Permission from '../Types/Permission';
|
|
import BaseModel from './BaseModel';
|
|
|
|
@SlugifyColumn('name', 'slug')
|
|
export default class FileModel extends BaseModel {
|
|
public constructor(id?: ObjectID) {
|
|
super(id);
|
|
}
|
|
|
|
public override isFileModel(): boolean {
|
|
return true;
|
|
}
|
|
|
|
@ColumnAccessControl({
|
|
create: [Permission.CurrentUser],
|
|
read: [Permission.CurrentUser],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: true,
|
|
type: TableColumnType.File,
|
|
canReadOnRelationQuery: true,
|
|
})
|
|
@Column({
|
|
nullable: false,
|
|
type: ColumnType.File,
|
|
})
|
|
public file?: Buffer = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [Permission.CurrentUser],
|
|
read: [Permission.CurrentUser],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: true,
|
|
type: TableColumnType.ShortText,
|
|
title: 'Name',
|
|
description: 'Any friendly name of this object',
|
|
canReadOnRelationQuery: true,
|
|
})
|
|
@Column({
|
|
nullable: false,
|
|
type: ColumnType.ShortText,
|
|
length: ColumnLength.ShortText,
|
|
})
|
|
public name?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [Permission.CurrentUser],
|
|
read: [Permission.CurrentUser],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: true,
|
|
type: TableColumnType.ShortText,
|
|
canReadOnRelationQuery: true,
|
|
})
|
|
@Column({
|
|
nullable: false,
|
|
type: ColumnType.ShortText,
|
|
length: ColumnLength.ShortText,
|
|
})
|
|
public type?: MimeType = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [Permission.CurrentUser],
|
|
read: [Permission.CurrentUser],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: true,
|
|
unique: true,
|
|
type: TableColumnType.Slug,
|
|
canReadOnRelationQuery: true,
|
|
})
|
|
@Column({
|
|
nullable: false,
|
|
type: ColumnType.Slug,
|
|
length: ColumnLength.Slug,
|
|
})
|
|
public slug?: string = undefined;
|
|
|
|
@ColumnAccessControl({
|
|
create: [Permission.CurrentUser],
|
|
read: [Permission.CurrentUser],
|
|
update: [],
|
|
})
|
|
@TableColumn({
|
|
required: true,
|
|
isDefaultValueColumn: true,
|
|
type: TableColumnType.Slug,
|
|
canReadOnRelationQuery: true,
|
|
})
|
|
@Column({
|
|
nullable: false,
|
|
default: true,
|
|
type: ColumnType.Slug,
|
|
length: ColumnLength.Slug,
|
|
})
|
|
public isPublic?: boolean = undefined;
|
|
}
|