oneuptime/Model/Models/GreenlockCertificate.ts
2023-08-21 11:40:35 +01:00

70 lines
2.0 KiB
TypeScript

import { Column, Entity, Index } from 'typeorm';
import BaseModel from 'Common/Models/BaseModel';
import TableColumnType from 'Common/Types/BaseDatabase/TableColumnType';
import TableColumn from 'Common/Types/Database/TableColumn';
import ColumnType from 'Common/Types/Database/ColumnType';
import ColumnLength from 'Common/Types/Database/ColumnLength';
import TableAccessControl from 'Common/Types/Database/AccessControl/TableAccessControl';
import ColumnAccessControl from 'Common/Types/Database/AccessControl/ColumnAccessControl';
import TableMetadata from 'Common/Types/Database/TableMetadata';
import IconProp from 'Common/Types/Icon/IconProp';
@TableAccessControl({
create: [],
read: [],
delete: [],
update: [],
})
@TableMetadata({
tableName: 'GreenlockCertificate',
singularName: 'Greenlock Certificate',
pluralName: 'Greenlock Certificate',
icon: IconProp.Lock,
tableDescription: 'Lets Encrypt Certificates',
})
@Entity({
name: 'GreenlockCertificate',
})
export default class GreenlockCertificate extends BaseModel {
@Index()
@ColumnAccessControl({
create: [],
read: [],
update: [],
})
@TableColumn({ type: TableColumnType.LongText })
@Column({
type: ColumnType.LongText,
length: ColumnLength.LongText,
nullable: false,
unique: false,
})
public key?: string = undefined;
@ColumnAccessControl({
create: [],
read: [],
update: [],
})
@TableColumn({ type: TableColumnType.VeryLongText })
@Column({
type: ColumnType.VeryLongText,
nullable: false,
unique: false,
})
public blob?: string = undefined;
@ColumnAccessControl({
create: [],
read: [],
update: [],
})
@TableColumn({ type: TableColumnType.Boolean })
@Column({
type: ColumnType.Boolean,
nullable: false,
default: false,
unique: false,
})
public isKeyPair?: boolean = undefined;
}