From c6790fe27156d36a798f5fce1906099883d00396 Mon Sep 17 00:00:00 2001 From: Julia Friesel Date: Sat, 11 May 2019 12:05:44 +0200 Subject: [PATCH] Add migration making mucus and cervix values optional --- db/schemas/4.js | 171 ++++++++++++++++++++++++++++++++++++++++++++ db/schemas/index.js | 3 +- 2 files changed, 173 insertions(+), 1 deletion(-) create mode 100644 db/schemas/4.js diff --git a/db/schemas/4.js b/db/schemas/4.js new file mode 100644 index 0000000..166a2e0 --- /dev/null +++ b/db/schemas/4.js @@ -0,0 +1,171 @@ +const TemperatureSchema = { + name: 'Temperature', + properties: { + value: 'double', + exclude: 'bool', + time: { + type: 'string', + optional: true + }, + note: { + type: 'string', + optional: true + } + } +} + +const BleedingSchema = { + name: 'Bleeding', + properties: { + value: 'int', + exclude: 'bool' + } +} + +const MucusSchema = { + name: 'Mucus', + properties: { + feeling: { type: 'int', optional: true }, + texture: { type: 'int', optional: true }, + value: { type: 'int', optional: true }, + exclude: 'bool' + } +} + +const CervixSchema = { + name: 'Cervix', + properties: { + opening: { type: 'int', optional: true }, + firmness: { type: 'int', optional: true }, + position: {type: 'int', optional: true }, + exclude: 'bool' + } +} + +const NoteSchema = { + name: 'Note', + properties: { + value: 'string' + } +} + +const DesireSchema = { + name: 'Desire', + properties: { + value: 'int' + } +} + +const SexSchema = { + name: 'Sex', + properties: { + solo: { type: 'bool', optional: true }, + partner: { type: 'bool', optional: true }, + condom: { type: 'bool', optional: true }, + pill: { type: 'bool', optional: true }, + iud: { type: 'bool', optional: true }, + patch: { type: 'bool', optional: true }, + ring: { type: 'bool', optional: true }, + implant: { type: 'bool', optional: true }, + diaphragm: { type: 'bool', optional: true }, + none: { type: 'bool', optional: true }, + other: { type: 'bool', optional: true }, + note: { type: 'string', optional: true } + } +} + +const PainSchema = { + name: 'Pain', + properties: { + cramps: { type: 'bool', optional: true }, + ovulationPain: { type: 'bool', optional: true }, + headache: { type: 'bool', optional: true }, + backache: { type: 'bool', optional: true }, + nausea: { type: 'bool', optional: true }, + tenderBreasts: { type: 'bool', optional: true }, + migraine: { type: 'bool', optional: true }, + other: { type: 'bool', optional: true }, + note: { type: 'string', optional: true } + } +} + +const MoodSchema = { + name: 'Mood', + properties: { + happy: { type: 'bool', optional: true }, + sad: { type: 'bool', optional: true }, + stressed: { type: 'bool', optional: true }, + balanced: { type: 'bool', optional: true }, + fine: { type: 'bool', optional: true }, + anxious: { type: 'bool', optional: true }, + energetic: { type: 'bool', optional: true }, + fatigue: { type: 'bool', optional: true }, + angry: { type: 'bool', optional: true }, + other: { type: 'bool', optional: true }, + note: { type: 'string', optional: true } + } +} + +const CycleDaySchema = { + name: 'CycleDay', + primaryKey: 'date', + properties: { + date: 'string', + temperature: { + type: 'Temperature', + optional: true + }, + isCycleStart: 'bool', + bleeding: { + type: 'Bleeding', + optional: true + }, + mucus: { + type: 'Mucus', + optional: true + }, + cervix: { + type: 'Cervix', + optional: true + }, + note: { + type: 'Note', + optional: true + }, + desire: { + type: 'Desire', + optional: true + }, + sex: { + type: 'Sex', + optional: true + }, + pain: { + type: 'Pain', + optional: true + }, + mood: { + type: 'Mood', + optional: true + } + } +} + +export default { + schema: [ + CycleDaySchema, + TemperatureSchema, + BleedingSchema, + MucusSchema, + CervixSchema, + NoteSchema, + DesireSchema, + SexSchema, + PainSchema, + MoodSchema + ], + schemaVersion: 4, + migration: (oldRealm) => { + if (oldRealm.schemaVersion >= 4) return + } +} diff --git a/db/schemas/index.js b/db/schemas/index.js index ed14e67..4530908 100644 --- a/db/schemas/index.js +++ b/db/schemas/index.js @@ -2,5 +2,6 @@ import schema0 from './0.js' import schema1 from './1.js' import schema2 from './2.js' import schema3 from './3.js' +import schema4 from './4.js' -export default [schema0, schema1, schema2, schema3] \ No newline at end of file +export default [schema0, schema1, schema2, schema3, schema4] \ No newline at end of file