30 lines
957 B
TypeScript
30 lines
957 B
TypeScript
import mongoose, { Schema, Document } from 'mongoose';
|
|
|
|
export interface IProject extends Document {
|
|
name: string;
|
|
client: string;
|
|
startDate?: Date | null;
|
|
endDate?: Date | null;
|
|
technician?: string | null;
|
|
environment?: string | null;
|
|
organizationId?: string;
|
|
weightKg?: number | null;
|
|
status: 'active' | 'archived';
|
|
createdAt: Date;
|
|
updatedAt: Date;
|
|
}
|
|
|
|
const ProjectSchema: Schema = new Schema({
|
|
name: { type: String, required: true },
|
|
client: { type: String, required: true },
|
|
organizationId: { type: String, index: true },
|
|
startDate: { type: Date },
|
|
endDate: { type: Date },
|
|
technician: { type: String },
|
|
environment: { type: String },
|
|
weightKg: { type: Number },
|
|
status: { type: String, enum: ['active', 'archived'], default: 'active', index: true },
|
|
}, { timestamps: true });
|
|
|
|
export default mongoose.models.Project || mongoose.model<IProject>('Project', ProjectSchema);
|