src/app/child-dev-project/attendance/model/event-attendance.ts
Simple relationship object to represent an individual child's status at an event including context information. TODO overwork this concept to either be a sublass of Entity or not (at the moment it uses a lot of casting, e.g. to be used in the entity subrecord)
Properties |
Methods |
|
Accessors |
constructor(status: AttendanceStatusType, remarks: string)
|
|||||||||
Parameters :
|
Static DATA_TYPE |
Type : string
|
Default value : "event-attendance"
|
remarks |
Type : string
|
Decorators :
@DatabaseField()
|
Public copy |
copy()
|
Returns :
EventAttendance
|
status | ||||
getstatus()
|
||||
setstatus(value)
|
||||
Parameters :
Returns :
void
|
import {
ATTENDANCE_STATUS_CONFIG_ID,
AttendanceStatusType,
NullAttendanceStatusType,
} from "./attendance-status";
import { DatabaseField } from "../../../core/entity/database-field.decorator";
/**
* Simple relationship object to represent an individual child's status at an event including context information.
* TODO overwork this concept to either be a sublass of Entity or not (at the moment it uses a lot of casting, e.g. to be used in the entity subrecord)
*/
export class EventAttendance {
static DATA_TYPE = "event-attendance";
private _status: AttendanceStatusType;
@DatabaseField({
dataType: "configurable-enum",
additional: ATTENDANCE_STATUS_CONFIG_ID,
})
get status(): AttendanceStatusType {
return this._status;
}
set status(value) {
if (typeof value === "object") {
if (value.isInvalidOption) {
value.shortName = "?";
value.countAs = NullAttendanceStatusType.countAs;
}
this._status = value;
} else {
this._status = NullAttendanceStatusType;
}
}
@DatabaseField() remarks: string;
constructor(
status: AttendanceStatusType = NullAttendanceStatusType,
remarks: string = "",
) {
this.status = status;
this.remarks = remarks;
}
public copy(): EventAttendance {
return Object.assign(new EventAttendance(), this);
}
}
/**
* A full registry of event-attendance entries for multiple participants.
*
* TODO: this class can become the basis for a more generic attendance data that is not hard-wired to Note entities.
*/
export class EventAttendanceMap extends Map<string, EventAttendance> {
static DATA_TYPE = "event-attendance-map";
constructor() {
super();
}
}