Updating
This commit is contained in:
@@ -2,21 +2,65 @@ import { Model, Schema, Types, model, models } from "mongoose";
|
||||
|
||||
export interface GameDocument {
|
||||
gameDate: Date;
|
||||
gameNumber: number;
|
||||
activePlayerIds: Types.ObjectId[];
|
||||
startingPitcherId?: Types.ObjectId | null;
|
||||
lineupId?: Types.ObjectId | null;
|
||||
lineupNumber?: number | null;
|
||||
opponent?: string;
|
||||
teamScore?: number | null;
|
||||
opponentScore?: number | null;
|
||||
notes?: string;
|
||||
playerStats: Array<{
|
||||
playerId: Types.ObjectId;
|
||||
playerName: string;
|
||||
atBats?: number | null;
|
||||
runs?: number | null;
|
||||
hits?: number | null;
|
||||
doubles?: number | null;
|
||||
triples?: number | null;
|
||||
homeRuns?: number | null;
|
||||
runsBattedIn?: number | null;
|
||||
walks?: number | null;
|
||||
strikeouts?: number | null;
|
||||
stolenBases?: number | null;
|
||||
}>;
|
||||
createdAt?: Date;
|
||||
updatedAt?: Date;
|
||||
}
|
||||
|
||||
const gameSchema = new Schema<GameDocument>(
|
||||
{
|
||||
gameDate: { type: Date, required: true, unique: true, index: true },
|
||||
gameDate: { type: Date, required: true, index: true },
|
||||
gameNumber: { type: Number, required: true, min: 1 },
|
||||
activePlayerIds: [{ type: Schema.Types.ObjectId, ref: "Player" }],
|
||||
startingPitcherId: { type: Schema.Types.ObjectId, ref: "Player", default: null },
|
||||
notes: { type: String, default: "" }
|
||||
lineupId: { type: Schema.Types.ObjectId, ref: "Lineup", default: null },
|
||||
lineupNumber: { type: Number, default: null },
|
||||
opponent: { type: String, default: "" },
|
||||
teamScore: { type: Number, default: null },
|
||||
opponentScore: { type: Number, default: null },
|
||||
notes: { type: String, default: "" },
|
||||
playerStats: [
|
||||
{
|
||||
playerId: { type: Schema.Types.ObjectId, ref: "Player", required: true },
|
||||
playerName: { type: String, required: true },
|
||||
atBats: { type: Number, default: null },
|
||||
runs: { type: Number, default: null },
|
||||
hits: { type: Number, default: null },
|
||||
doubles: { type: Number, default: null },
|
||||
triples: { type: Number, default: null },
|
||||
homeRuns: { type: Number, default: null },
|
||||
runsBattedIn: { type: Number, default: null },
|
||||
walks: { type: Number, default: null },
|
||||
strikeouts: { type: Number, default: null },
|
||||
stolenBases: { type: Number, default: null }
|
||||
}
|
||||
]
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
gameSchema.index({ gameDate: 1, gameNumber: 1 }, { unique: true });
|
||||
|
||||
export const GameModel = (models.Game as Model<GameDocument>) || model<GameDocument>("Game", gameSchema);
|
||||
|
||||
Reference in New Issue
Block a user