| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import { CloudObject } from '../ncloud';
- import * as Parse from 'parse';
- export enum TaskStatus {
- InProgress = 'inProgress',
- Completed = 'completed',
- Overdue = 'overdue'
- }
- export class Task extends CloudObject {
- title: string = '';
- content: string = '';
- completed: boolean = false;
- startTime?: Date;
- endTime?: Date;
- userId?: string;
- constructor() {
- super('Task');
- }
- static async create(data: Partial<Task>): Promise<Task> {
- const task = new Task();
- Object.assign(task, data);
- await task.saveTask();
- return task;
- }
- static fromParseObject(parseObject: Parse.Object): Task {
- const task = new Task();
- task.setParseObject(parseObject);
- return task;
- }
- override setParseObject(parseObject: Parse.Object<Parse.Attributes>) {
- super.setParseObject(parseObject);
- this.title = parseObject.get('title') || '';
- this.content = parseObject.get('content') || '';
- this.completed = parseObject.get('completed') || false;
- this.startTime = parseObject.get('startTime');
- this.endTime = parseObject.get('endTime');
- this.userId = parseObject.get('userId');
- }
- async saveTask(): Promise<void> {
- await this.save();
- }
- async delete(): Promise<void> {
- await this.destroy();
- }
- getStatus(): TaskStatus {
- if (this.completed) {
- return TaskStatus.Completed;
- }
- if (this.endTime && new Date() > this.endTime) {
- return TaskStatus.Overdue;
- }
- return TaskStatus.InProgress;
- }
- }
|