44 lines
1.1 KiB
TypeScript
44 lines
1.1 KiB
TypeScript
import { Realm } from '@realm/react';
|
|
import { BSON } from 'realm';
|
|
import { Meme } from './meme';
|
|
|
|
class Tag extends Realm.Object<Tag> {
|
|
id!: BSON.UUID;
|
|
name!: string;
|
|
color!: string;
|
|
memes!: Realm.List<Meme>;
|
|
memesLength!: number;
|
|
dateCreated!: Date;
|
|
dateModified!: Date;
|
|
timesUsed!: number;
|
|
|
|
static schema: Realm.ObjectSchema = {
|
|
name: 'Tag',
|
|
primaryKey: 'id',
|
|
properties: {
|
|
id: { type: 'uuid', default: () => new BSON.UUID() },
|
|
name: { type: 'string', indexed: true },
|
|
color: 'string',
|
|
memes: { type: 'list', objectType: 'Meme', default: [] },
|
|
memesLength: { type: 'int', default: 0 },
|
|
dateCreated: { type: 'date', default: () => new Date() },
|
|
dateModified: { type: 'date', default: () => new Date() },
|
|
timesUsed: { type: 'int', default: 0 },
|
|
},
|
|
};
|
|
}
|
|
|
|
const deleteTag = (realm: Realm, tag: Tag) => {
|
|
realm.write(() => {
|
|
realm.delete(tag);
|
|
});
|
|
};
|
|
|
|
const deleteAllTags = (realm: Realm) => {
|
|
realm.write(() => {
|
|
realm.delete(realm.objects<Tag>('Tag'));
|
|
});
|
|
};
|
|
|
|
export { Tag, deleteTag, deleteAllTags };
|