import { Prop, Schema } from '@nestjs/mongoose'; @Schema({ timestamps: true, versionKey: false, toJSON: { virtuals: true }, toObject: { virtuals: true } }) export class BaseSchema { @Prop() createdAt?: Date; @Prop() updatedAt?: Date; get id(): string { return (this as any)._id?.toString?.() ?? ''; } } @Schema({ timestamps: true, versionKey: false, toJSON: { virtuals: true }, toObject: { virtuals: true } }) export class SoftDeleteSchema extends BaseSchema { @Prop({ default: false, select: false }) deleted?: boolean; @Prop({ default: null, select: false }) deletedAt?: Date; }