Initial commit

This commit is contained in:
root
2025-12-21 09:57:43 -05:00
committed by Sebastian Krupinski
commit db42b6699c
35 changed files with 6458 additions and 0 deletions

132
src/models/collection.ts Normal file
View File

@@ -0,0 +1,132 @@
/**
* Class model for FileCollection Interface
*/
import type { FileCollection } from "@/types/node";
export class FileCollectionObject implements FileCollection {
_data!: FileCollection;
constructor() {
this._data = {
'@type': 'files.collection',
in: null,
id: '',
createdBy: '',
createdOn: '',
modifiedBy: '',
modifiedOn: '',
owner: '',
signature: '',
label: '',
};
}
fromJson(data: FileCollection): FileCollectionObject {
this._data = data;
return this;
}
toJson(): FileCollection {
return this._data;
}
clone(): FileCollectionObject {
const cloned = new FileCollectionObject();
cloned._data = JSON.parse(JSON.stringify(this._data));
return cloned;
}
/** Properties */
get '@type'(): 'files.collection' {
return this._data['@type'];
}
get in(): string | null {
return this._data.in;
}
set in(value: string | null) {
this._data.in = value;
}
get id(): string {
return this._data.id;
}
set id(value: string) {
this._data.id = value;
}
get createdBy(): string {
return this._data.createdBy;
}
set createdBy(value: string) {
this._data.createdBy = value;
}
get createdOn(): string {
return this._data.createdOn;
}
set createdOn(value: string) {
this._data.createdOn = value;
}
get modifiedBy(): string {
return this._data.modifiedBy;
}
set modifiedBy(value: string) {
this._data.modifiedBy = value;
}
get modifiedOn(): string {
return this._data.modifiedOn;
}
set modifiedOn(value: string) {
this._data.modifiedOn = value;
}
get owner(): string {
return this._data.owner;
}
set owner(value: string) {
this._data.owner = value;
}
get signature(): string {
return this._data.signature;
}
set signature(value: string) {
this._data.signature = value;
}
get label(): string {
return this._data.label;
}
set label(value: string) {
this._data.label = value;
}
/** Helper methods */
get isRoot(): boolean {
return this._data.id === '00000000-0000-0000-0000-000000000000';
}
get createdOnDate(): Date | null {
return this._data.createdOn ? new Date(this._data.createdOn) : null;
}
get modifiedOnDate(): Date | null {
return this._data.modifiedOn ? new Date(this._data.modifiedOn) : null;
}
}