teacher-tools/api/source/api_modules/classroom_compliance/model.d

80 lines
1.6 KiB
D

module api_modules.classroom_compliance.model;
import ddbc : DataSetReader;
import handy_httpd.components.optional;
import std.json;
import std.datetime;
import std.string : split;
struct ClassroomComplianceClass {
ulong id;
ushort number;
string schoolYear;
bool archived;
ulong userId;
string scoreExpression;
string scorePeriod;
static ClassroomComplianceClass parse(DataSetReader r) {
return ClassroomComplianceClass(
r.getUlong(1),
r.getUshort(2),
r.getString(3),
r.getBoolean(7),
r.getUlong(4),
r.getString(5),
r.getString(6)
);
}
}
struct ClassroomComplianceStudent {
ulong id;
string name;
ulong classId;
ushort deskNumber;
bool removed;
static ClassroomComplianceStudent parse(DataSetReader r) {
return ClassroomComplianceStudent(
r.getUlong(1),
r.getString(2),
r.getUlong(3),
r.getUshort(4),
r.getBoolean(5)
);
}
}
struct ClassroomComplianceEntry {
ulong classId;
ulong studentId;
Date date;
ulong createdAt;
bool absent;
string comment;
}
struct ClassroomComplianceEntryChecklistItem {
string item;
bool checked;
string category;
}
struct ClassroomComplianceClassNote {
ulong id;
ulong classId;
ulong createdAt;
string content;
static ClassroomComplianceClassNote parse(DataSetReader r) {
return ClassroomComplianceClassNote(
r.getUlong(1),
r.getUlong(2),
r.getUlong(3),
r.getString(4)
);
}
}