Returns VersionedModelConstructor<
InferData<
{
completed: BooleanType<false>;
creator: ObjectType<string, false>;
description: ObjectType<string, false>;
id: StringType<false>;
license: StringType<false>;
mimeType: StringType<false>;
name: StringType<false>;
source: ObjectType<string, false>;
uploadedBy: StringType<false>;
uploadedOn: DateType<false>;
userCanDelete: VirtualType<unknown, false>;
userIsCreator: VirtualType<unknown, false>;
},
>,
InferVirtual<
{
completed: BooleanType<false>;
creator: ObjectType<string, false>;
description: ObjectType<string, false>;
id: StringType<false>;
license: StringType<false>;
mimeType: StringType<false>;
name: StringType<false>;
source: ObjectType<string, false>;
uploadedBy: StringType<false>;
uploadedOn: DateType<false>;
userCanDelete: VirtualType<unknown, false>;
userIsCreator: VirtualType<unknown, false>;
},
>,
InferData<
{
completed: BooleanType<false>;
creator: ObjectType<string, false>;
description: ObjectType<string, false>;
id: StringType<false>;
license: StringType<false>;
mimeType: StringType<false>;
name: StringType<false>;
source: ObjectType<string, false>;
uploadedBy: StringType<false>;
uploadedOn: DateType<false>;
userCanDelete: VirtualType<unknown, false>;
userIsCreator: VirtualType<unknown, false>;
},
> & InferVirtual<
{
completed: BooleanType<false>;
creator: ObjectType<string, false>;
description: ObjectType<string, false>;
id: StringType<false>;
license: StringType<false>;
mimeType: StringType<false>;
name: StringType<false>;
source: ObjectType<string, false>;
uploadedBy: StringType<false>;
uploadedOn: DateType<false>;
userCanDelete: VirtualType<unknown, false>;
userIsCreator: VirtualType<unknown, false>;
},
> & ModelInstanceCore<
InferData<
{
completed: BooleanType<false>;
creator: ObjectType<string, false>;
description: ObjectType<string, false>;
id: StringType<false>;
license: StringType<false>;
mimeType: StringType<false>;
name: StringType<false>;
source: ObjectType<string, false>;
uploadedBy: StringType<false>;
uploadedOn: DateType<false>;
userCanDelete: VirtualType<unknown, false>;
userIsCreator: VirtualType<unknown, false>;
},
>,
InferVirtual<
{
completed: BooleanType<false>;
creator: ObjectType<string, false>;
description: ObjectType<string, false>;
id: StringType<false>;
license: StringType<false>;
mimeType: StringType<false>;
name: StringType<false>;
source: ObjectType<string, false>;
uploadedBy: StringType<false>;
uploadedOn: DateType<false>;
userCanDelete: VirtualType<unknown, false>;
userIsCreator: VirtualType<unknown, false>;
},
>,
> & RevisionFieldMap & {} & FileInstanceMethodsMap,
"things"
| "uploader",
> & FileStaticMethodsMap & CreateFromRowStatic<
MergeManifestMethods<
{
camelToSnake: {
mimeType: "mime_type";
uploadedBy: "uploaded_by";
uploadedOn: "uploaded_on";
};
hasRevisions: true;
relations: readonly [
{
cardinality: "one";
hasRevisions: false;
name: "uploader";
sourceKey: "uploaded_by";
targetKey: "id";
targetTable: "users";
},
{
cardinality: "many";
hasRevisions: true;
name: "things";
sourceKey: "id";
targetKey: "id";
targetTable: "things";
through: {
sourceForeignKey: "file_id";
table: "thing_files";
targetForeignKey: "thing_id";
};
},
];
schema: {
completed: BooleanType<false>;
creator: ObjectType<string, false>;
description: ObjectType<string, false>;
id: StringType<false>;
license: StringType<false>;
mimeType: StringType<false>;
name: StringType<false>;
source: ObjectType<string, false>;
uploadedBy: StringType<false>;
uploadedOn: DateType<false>;
userCanDelete: VirtualType<unknown, false>;
userIsCreator: VirtualType<unknown, false>;
};
tableName: "files";
},
FileStaticMethodsMap,
FileInstanceMethodsMap,
>,
>
Typed File model constructor
Create a lazy reference to the File model for use in other models. Resolves after bootstrap without causing circular import issues.