import { BSON, Object, ObjectSchema } from 'realm'; import { Meme } from '.'; import { generateRandomColor } from '../utilities'; class Tag extends Object { id!: BSON.UUID; name!: string; color!: string; memes!: Realm.List; 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 };