Initial
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const settingsSchema = new mongoose.Schema(
|
||||
{
|
||||
targetHoursPerDay: { type: Number, default: 8 },
|
||||
// 0 = Sonntag ... 6 = Samstag (JS Date.getDay())
|
||||
workDays: { type: [Number], default: [1, 2, 3, 4, 5] },
|
||||
// Bereits vorhandenes Über-/Minusstunden-Guthaben, bevor die App genutzt wurde.
|
||||
startingBalanceMinutes: { type: Number, default: 0 },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
settingsSchema.statics.getSingleton = async function getSingleton() {
|
||||
let settings = await this.findOne();
|
||||
if (!settings) {
|
||||
settings = await this.create({});
|
||||
}
|
||||
return settings;
|
||||
};
|
||||
|
||||
module.exports = mongoose.model('Settings', settingsSchema);
|
||||
@@ -0,0 +1,19 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const timeEntrySchema = new mongoose.Schema(
|
||||
{
|
||||
date: { type: String, required: true, unique: true }, // 'YYYY-MM-DD'
|
||||
startTime: { type: String, required: true }, // 'HH:MM'
|
||||
endTime: { type: String, required: true }, // 'HH:MM'
|
||||
breakMinutes: { type: Number, default: 0 },
|
||||
note: { type: String, default: '' },
|
||||
// Werden beim Speichern anhand der zu diesem Zeitpunkt gültigen
|
||||
// Einstellungen berechnet und fest abgelegt, damit spätere Änderungen
|
||||
// an den Soll-Stunden bestehende Buchungen nicht rückwirkend verändern.
|
||||
workedMinutes: { type: Number, required: true },
|
||||
balanceMinutes: { type: Number, required: true },
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
module.exports = mongoose.model('TimeEntry', timeEntrySchema);
|
||||
Reference in New Issue
Block a user