feat: add saveable thing for saving user/client data

Closes #12
This commit is contained in:
Jovan Krunić
2018-12-18 22:35:33 +01:00
parent 13a49650c4
commit a4f3fab033
2 changed files with 43 additions and 42 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018 StApps
* Copyright (C) 2018, 2019 StApps
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation, version 3.
@@ -12,8 +12,8 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
import {SCThing, SCThingMeta, SCThingType} from '../Thing';
import {SCISO8601Date} from '../types/Time';
import {SCSaveableThing} from '../base/SaveableThing';
import {SCThingMeta, SCThingType} from '../Thing';
import {SCAcademicEventWithoutReferences} from './AcademicEvent';
import {SCArticleWithoutReferences} from './Article';
import {SCBookWithoutReferences} from './Book';
@@ -24,52 +24,23 @@ import {SCRoomWithoutReferences} from './Room';
import {SCSportCourseWithoutReferences} from './SportCourse';
/**
* A favorite without references
* Types that can be made a favorite (added as a favorite)
*/
export interface SCFavoriteWithoutReferences extends SCThing {
/**
* When the favorite was last changed.
*/
changed: SCISO8601Date;
/**
* When the favorite was created.
*/
created: SCISO8601Date;
/**
* If it is deleted or not, defaults to false.
*/
deleted?: boolean;
/**
* Type of a favorite
*/
type: SCThingType.Favorite;
}
export type SCFavoriteDataTypes = SCAcademicEventWithoutReferences
| SCArticleWithoutReferences
| SCBookWithoutReferences
| SCBuildingWithoutReferences
| SCPersonWithoutReferences
| SCPointOfInterestWithoutReferences
| SCRoomWithoutReferences
| SCSportCourseWithoutReferences;
/**
* A favorite
*
* @validatable
*/
export interface SCFavorite extends SCFavoriteWithoutReferences {
/**
* The contained thing.
*/
data:
SCAcademicEventWithoutReferences
| SCArticleWithoutReferences
| SCBookWithoutReferences
| SCBuildingWithoutReferences
| SCPersonWithoutReferences
| SCPointOfInterestWithoutReferences
| SCRoomWithoutReferences
| SCSportCourseWithoutReferences;
/**
* Type of a favorite
*/
export interface SCFavorite extends SCSaveableThing<SCFavoriteDataTypes> {
type: SCThingType.Favorite;
}