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