34 lines
967 B
TypeScript
34 lines
967 B
TypeScript
import { BSON, Object, ObjectSchema } from 'realm';
|
|
import { Meme } from '.';
|
|
import { generateRandomColor } from '../utilities';
|
|
|
|
class Tag extends Object<Tag> {
|
|
id!: BSON.UUID;
|
|
name!: string;
|
|
color!: string;
|
|
memes!: Realm.List<Meme>;
|
|
memesLength!: number;
|
|
dateCreated!: Date;
|
|
dateModified!: Date;
|
|
dateUsed?: Date;
|
|
timesUsed!: number;
|
|
|
|
static schema: ObjectSchema = {
|
|
name: 'Tag',
|
|
primaryKey: 'id',
|
|
properties: {
|
|
id: { type: 'uuid', default: () => new BSON.UUID() },
|
|
name: { type: 'string', indexed: true },
|
|
color: { type: 'string', default: () => generateRandomColor() },
|
|
memes: { type: 'list', objectType: 'Meme', default: [] },
|
|
memesLength: { type: 'int', default: 0 },
|
|
dateCreated: { type: 'date', default: () => new Date() },
|
|
dateModified: { type: 'date', default: () => new Date() },
|
|
dateUsed: 'date?',
|
|
timesUsed: { type: 'int', default: 0 },
|
|
},
|
|
};
|
|
}
|
|
|
|
export { Tag };
|