Files
Verso/services/web/app/src/models/DeletedProject.mjs
T
Domagoj Kriskovic 6486ef3e1e [web] Add deletedReason parameter to project deletion methods (#32221)
* [web] Add deletedReason parameter to project deletion methods

* revert sinon.match.any in ProjectDuplicator negative assertion

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
GitOrigin-RevId: d1595eefe0e36150231ee9646fe5eba0786fd1f5
2026-03-23 09:06:04 +00:00

38 lines
1.3 KiB
JavaScript

import mongoose from '../infrastructure/Mongoose.mjs'
import { ProjectSchema } from './Project.mjs'
const { Schema } = mongoose
const { ObjectId } = Schema
export const DeleterDataSchema = new Schema({
deleterId: { type: ObjectId, ref: 'User' },
deleterIpAddress: { type: String },
deletedAt: { type: Date },
deletedProjectId: { type: ObjectId },
deletedProjectOwnerId: { type: ObjectId, ref: 'User' },
deletedProjectCollaboratorIds: [{ type: ObjectId, ref: 'User' }],
deletedProjectReadOnlyIds: [{ type: ObjectId, ref: 'User' }],
deletedProjectReviewerIds: [{ type: ObjectId, ref: 'User' }],
deletedProjectReadWriteTokenAccessIds: [{ type: ObjectId, ref: 'User' }],
deletedProjectReadOnlyTokenAccessIds: [{ type: ObjectId, ref: 'User' }],
deletedProjectReadWriteToken: { type: String },
deletedProjectReadOnlyToken: { type: String },
deletedProjectLastUpdatedAt: { type: Date },
deletedProjectOverleafId: { type: Number },
deletedProjectOverleafHistoryId: { type: Schema.Types.Mixed },
deletedReason: { type: String },
})
const DeletedProjectSchema = new Schema(
{
deleterData: DeleterDataSchema,
project: ProjectSchema,
},
{ collection: 'deletedProjects', minimize: false }
)
export const DeletedProject = mongoose.model(
'DeletedProject',
DeletedProjectSchema
)