90dc-core 1.13.2 → 1.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,11 +5,12 @@ export type DraftStatus = "draft" | "published" | "archived";
5
5
  export interface DraftExercise {
6
6
  uuid: string;
7
7
  name: string;
8
- sets: string;
8
+ sets: number;
9
9
  reps: string;
10
10
  order: number;
11
- restTime?: string | null;
11
+ restTime?: string | number | null;
12
12
  supersetUuid?: string | null;
13
+ thumbnailUrl?: string | null;
13
14
  }
14
15
  export interface DraftSuperset {
15
16
  uuid: string;
@@ -1 +1 @@
1
- {"version":3,"file":"CircularProgramDraft.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/CircularProgramDraft.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CircularProgramDraft.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/CircularProgramDraft.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/dbmodels/program/CircularProgramDraft.ts"],"sourcesContent":["import {\n Table,\n Column,\n Model,\n DataType,\n Default,\n ForeignKey,\n Index,\n BelongsTo,\n} from \"sequelize-typescript\";\nimport { Program } from \"./Program.js\";\nimport { CustomProgramBlueprint } from \"./CustomProgramBlueprint.js\";\n\nexport type DraftStatus = \"draft\" | \"published\" | \"archived\";\n\nexport interface DraftExercise {\n uuid: string;\n name: string;\n sets: string;\n reps: string;\n order: number;\n restTime?: string | null;\n supersetUuid?: string | null;\n}\n\nexport interface DraftSuperset {\n uuid: string;\n startPosition: number;\n exercises: Omit<DraftExercise, \"supersetUuid\">[];\n}\n\nexport interface DraftWorkout {\n uuid: string;\n title: string;\n duration: string;\n order: number;\n exercises: DraftExercise[];\n supersets: DraftSuperset[];\n}\n\nexport interface DraftRestDay {\n uuid: string;\n order: number;\n}\n\nexport interface DraftStrengthTestExercise {\n uuid: string;\n title: string;\n url: string;\n pointer: string;\n timerTime: string;\n order: number;\n}\n\nexport interface DraftStrengthTest {\n uuid: string;\n type: string;\n order: number;\n exercises: DraftStrengthTestExercise[];\n}\n\nexport interface DraftChallenge {\n uuid: string;\n title: string;\n order: number;\n progress: any[];\n}\n\n// Individual day types for internal use\nexport interface DraftDay {\n uuid: string;\n type: \"Workout\" | \"ActiveRestDay\" | \"StrengthTest\" | \"Challenge\";\n templateIndex: number; // order in the program sequence\n isFinished?: boolean;\n\n // Workout-specific fields\n title?: string;\n duration?: string;\n order?: number; // workout order (same as templateIndex)\n programId?: string; // reference to program\n exercise?: DraftExercise[];\n superset?: DraftSuperset[];\n\n // StrengthTest-specific fields\n strengthTestExercise?: DraftStrengthTestExercise[];\n\n // Challenge-specific fields\n progress?: any[];\n restDayUuid?: string;\n}\n\n// Main draft data structure - matches getUniqueProgram format\nexport interface CircularProgramDraftData {\n startDate: string;\n days: DraftDay[]; // Flat array of all days, sorted by templateIndex\n}\n\n@Table({ tableName: \"CircularProgramDrafts\", timestamps: true })\nexport class CircularProgramDraft extends Model {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n primaryKey: true,\n allowNull: false,\n })\n declare uuid: string;\n\n @ForeignKey(() => CustomProgramBlueprint)\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare blueprintUuid: string | null;\n\n @ForeignKey(() => Program)\n @Index\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare publishedProgramId: string | null;\n\n @Index\n @Column({\n type: DataType.UUID,\n allowNull: false,\n })\n declare userUuid: string;\n\n @Index\n @Column({\n type: DataType.UUID,\n allowNull: false,\n })\n declare createdByCoachUuid: string;\n\n @Column({\n type: DataType.JSONB,\n allowNull: false,\n })\n declare draftData: CircularProgramDraftData;\n\n @Index\n @Column({\n type: DataType.ENUM(\"draft\", \"published\", \"archived\"),\n allowNull: false,\n defaultValue: \"draft\",\n })\n declare status: DraftStatus;\n\n @Column({\n type: DataType.DATE,\n allowNull: true,\n })\n declare publishedAt: Date | null;\n\n @BelongsTo(() => CustomProgramBlueprint)\n declare blueprint: CustomProgramBlueprint;\n\n @BelongsTo(() => Program)\n declare publishedProgram: Program;\n}\n"],"names":["Table","Column","Model","DataType","Default","ForeignKey","Index","BelongsTo","Program","CustomProgramBlueprint","CircularProgramDraft","UUIDV4","type","UUID","primaryKey","allowNull","JSONB","ENUM","defaultValue","DATE","tableName","timestamps"],"mappings":";;;;;;AAAA,SACEA,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,SAAS,QACJ,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,sBAAsB,QAAQ,8BAA8B;AAuFrE,OAAO,MAAMC,6BAA6BR;AA+D1C;;qBA9DoBS;;QAEhBC,MAAMT,SAASU,IAAI;QACnBC,YAAY;QACZC,WAAW;;;;mBAIKN;;QAEhBG,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;mBAIKP;;;QAGhBI,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;;;QAMXH,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;;;QAMXH,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;;QAKXH,MAAMT,SAASa,KAAK;QACpBD,WAAW;;;;;;QAMXH,MAAMT,SAASc,IAAI,CAAC,SAAS,aAAa;QAC1CF,WAAW;QACXG,cAAc;;;;;QAKdN,MAAMT,SAASgB,IAAI;QACnBJ,WAAW;;;;kBAIIN;;;kBAGAD;;;;QA9DVY,WAAW;QAAyBC,YAAY"}
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/CircularProgramDraft.ts"],"sourcesContent":["import {\n Table,\n Column,\n Model,\n DataType,\n Default,\n ForeignKey,\n Index,\n BelongsTo,\n} from \"sequelize-typescript\";\nimport { Program } from \"./Program.js\";\nimport { CustomProgramBlueprint } from \"./CustomProgramBlueprint.js\";\n\nexport type DraftStatus = \"draft\" | \"published\" | \"archived\";\n\nexport interface DraftExercise {\n uuid: string;\n name: string;\n sets: number;\n reps: string;\n order: number;\n restTime?: string | number | null;\n supersetUuid?: string | null;\n thumbnailUrl?: string | null;\n}\n\nexport interface DraftSuperset {\n uuid: string;\n startPosition: number;\n exercises: Omit<DraftExercise, \"supersetUuid\">[];\n}\n\nexport interface DraftWorkout {\n uuid: string;\n title: string;\n duration: string;\n order: number;\n exercises: DraftExercise[];\n supersets: DraftSuperset[];\n}\n\nexport interface DraftRestDay {\n uuid: string;\n order: number;\n}\n\nexport interface DraftStrengthTestExercise {\n uuid: string;\n title: string;\n url: string;\n pointer: string;\n timerTime: string;\n order: number;\n}\n\nexport interface DraftStrengthTest {\n uuid: string;\n type: string;\n order: number;\n exercises: DraftStrengthTestExercise[];\n}\n\nexport interface DraftChallenge {\n uuid: string;\n title: string;\n order: number;\n progress: any[];\n}\n\n// Individual day types for internal use\nexport interface DraftDay {\n uuid: string;\n type: \"Workout\" | \"ActiveRestDay\" | \"StrengthTest\" | \"Challenge\";\n templateIndex: number; // order in the program sequence\n isFinished?: boolean;\n\n // Workout-specific fields\n title?: string;\n duration?: string;\n order?: number; // workout order (same as templateIndex)\n programId?: string; // reference to program\n exercise?: DraftExercise[];\n superset?: DraftSuperset[];\n\n // StrengthTest-specific fields\n strengthTestExercise?: DraftStrengthTestExercise[];\n\n // Challenge-specific fields\n progress?: any[];\n restDayUuid?: string;\n}\n\n// Main draft data structure - matches getUniqueProgram format\nexport interface CircularProgramDraftData {\n startDate: string;\n days: DraftDay[]; // Flat array of all days, sorted by templateIndex\n}\n\n@Table({ tableName: \"CircularProgramDrafts\", timestamps: true })\nexport class CircularProgramDraft extends Model {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n primaryKey: true,\n allowNull: false,\n })\n declare uuid: string;\n\n @ForeignKey(() => CustomProgramBlueprint)\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare blueprintUuid: string | null;\n\n @ForeignKey(() => Program)\n @Index\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare publishedProgramId: string | null;\n\n @Index\n @Column({\n type: DataType.UUID,\n allowNull: false,\n })\n declare userUuid: string;\n\n @Index\n @Column({\n type: DataType.UUID,\n allowNull: false,\n })\n declare createdByCoachUuid: string;\n\n @Column({\n type: DataType.JSONB,\n allowNull: false,\n })\n declare draftData: CircularProgramDraftData;\n\n @Index\n @Column({\n type: DataType.ENUM(\"draft\", \"published\", \"archived\"),\n allowNull: false,\n defaultValue: \"draft\",\n })\n declare status: DraftStatus;\n\n @Column({\n type: DataType.DATE,\n allowNull: true,\n })\n declare publishedAt: Date | null;\n\n @BelongsTo(() => CustomProgramBlueprint)\n declare blueprint: CustomProgramBlueprint;\n\n @BelongsTo(() => Program)\n declare publishedProgram: Program;\n}\n"],"names":["Table","Column","Model","DataType","Default","ForeignKey","Index","BelongsTo","Program","CustomProgramBlueprint","CircularProgramDraft","UUIDV4","type","UUID","primaryKey","allowNull","JSONB","ENUM","defaultValue","DATE","tableName","timestamps"],"mappings":";;;;;;AAAA,SACEA,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,SAAS,QACJ,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,sBAAsB,QAAQ,8BAA8B;AAwFrE,OAAO,MAAMC,6BAA6BR;AA+D1C;;qBA9DoBS;;QAEhBC,MAAMT,SAASU,IAAI;QACnBC,YAAY;QACZC,WAAW;;;;mBAIKN;;QAEhBG,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;mBAIKP;;;QAGhBI,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;;;QAMXH,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;;;QAMXH,MAAMT,SAASU,IAAI;QACnBE,WAAW;;;;;QAKXH,MAAMT,SAASa,KAAK;QACpBD,WAAW;;;;;;QAMXH,MAAMT,SAASc,IAAI,CAAC,SAAS,aAAa;QAC1CF,WAAW;QACXG,cAAc;;;;;QAKdN,MAAMT,SAASgB,IAAI;QACnBJ,WAAW;;;;kBAIIN;;;kBAGAD;;;;QA9DVY,WAAW;QAAyBC,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutSession.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/WorkoutSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,EAOR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,oBAAY,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;CAC1B;AAED,qBAIa,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC;IAQ7C,IAAI,EAAE,MAAM,CAAC;IAIb,QAAQ,EAAE,MAAM,CAAC;IAKjB,WAAW,EAAE,MAAM,CAAC;IAGpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAOlB,MAAM,EAAE,aAAa,CAAC;IAGtB,SAAS,EAAE,IAAI,CAAC;IAGhB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"WorkoutSession.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/WorkoutSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,EAOR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,oBAAY,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;CAC1B;AAED,qBAYa,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC;IAQ7C,IAAI,EAAE,MAAM,CAAC;IAIb,QAAQ,EAAE,MAAM,CAAC;IAKjB,WAAW,EAAE,MAAM,CAAC;IAGpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAOlB,MAAM,EAAE,aAAa,CAAC;IAGtB,SAAS,EAAE,IAAI,CAAC;IAGhB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CACpC"}
@@ -66,7 +66,20 @@ _ts_decorate([
66
66
  WorkoutSession = _ts_decorate([
67
67
  Table({
68
68
  tableName: 'WorkoutSessions',
69
- timestamps: true
69
+ timestamps: true,
70
+ indexes: [
71
+ {
72
+ unique: true,
73
+ fields: [
74
+ 'workoutUuid',
75
+ 'status'
76
+ ],
77
+ where: {
78
+ status: 'active'
79
+ },
80
+ name: 'unique_active_session_per_workout'
81
+ }
82
+ ]
70
83
  })
71
84
  ], WorkoutSession);
72
85
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/dbmodels/program/WorkoutSession.ts"],"sourcesContent":["import {\n Table,\n Model,\n Column,\n DataType,\n Default,\n ForeignKey,\n BelongsTo,\n Index,\n} from 'sequelize-typescript';\nimport { Workout } from './Workout.js';\n\nexport enum SessionStatus {\n ACTIVE = 'active',\n COMPLETED = 'completed',\n}\n\n@Table({\n tableName: 'WorkoutSessions',\n timestamps: true,\n})\nexport class WorkoutSession extends Model<WorkoutSession> {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUIDV4,\n allowNull: false,\n primaryKey: true,\n })\n declare uuid: string;\n\n @Index\n @Column({ type: DataType.UUID, allowNull: false })\n declare userUuid: string;\n\n @ForeignKey(() => Workout)\n @Index\n @Column({ type: DataType.UUID, allowNull: false })\n declare workoutUuid: string;\n\n @BelongsTo(() => Workout, { foreignKey: 'workoutUuid', onDelete: 'CASCADE' })\n declare workout?: Workout;\n\n @Column({\n type: DataType.ENUM(...Object.values(SessionStatus)),\n allowNull: false,\n defaultValue: SessionStatus.ACTIVE,\n })\n declare status: SessionStatus;\n\n @Column({ type: DataType.DATE, allowNull: false, defaultValue: DataType.NOW })\n declare startedAt: Date;\n\n @Column({ type: DataType.DATE, allowNull: true })\n declare completedAt: Date | null;\n}"],"names":["Table","Model","Column","DataType","Default","ForeignKey","BelongsTo","Index","Workout","SessionStatus","WorkoutSession","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","foreignKey","onDelete","ENUM","Object","values","DATE","NOW","tableName","timestamps"],"mappings":";;;;;;AAAA,SACIA,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,KAAK,QACF,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AAEvC,OAAO,IAAA,AAAKC,uCAAAA;;;WAAAA;MAGX;AAMD,OAAO,MAAMC,uBAAuBT;AAkCpC;;qBAjCsBU;;QAEdC,MAAMT,SAASU,IAAI;QACnBC,cAAcX,SAASQ,MAAM;QAC7BI,WAAW;QACXC,YAAY;;;;;;QAKNJ,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;mBAGxBP;;;QAERI,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;kBAGzBP;QAAWS,YAAY;QAAeC,UAAU;;;;;QAI7DN,MAAMT,SAASgB,IAAI,IAAIC,OAAOC,MAAM,CAACZ;QACrCM,WAAW;QACXD,YAAY;;;;;QAINF,MAAMT,SAASmB,IAAI;QAAEP,WAAW;QAAOD,cAAcX,SAASoB,GAAG;;;;;QAGjEX,MAAMT,SAASmB,IAAI;QAAEP,WAAW;;;;;QAnC1CS,WAAW;QACXC,YAAY"}
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/WorkoutSession.ts"],"sourcesContent":["import {\n Table,\n Model,\n Column,\n DataType,\n Default,\n ForeignKey,\n BelongsTo,\n Index,\n} from 'sequelize-typescript';\nimport { Workout } from './Workout.js';\n\nexport enum SessionStatus {\n ACTIVE = 'active',\n COMPLETED = 'completed',\n}\n\n@Table({\n tableName: 'WorkoutSessions',\n timestamps: true,\n indexes: [\n {\n unique: true,\n fields: ['workoutUuid', 'status'],\n where: { status: 'active' },\n name: 'unique_active_session_per_workout'\n }\n ]\n})\nexport class WorkoutSession extends Model<WorkoutSession> {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUIDV4,\n allowNull: false,\n primaryKey: true,\n })\n declare uuid: string;\n\n @Index\n @Column({ type: DataType.UUID, allowNull: false })\n declare userUuid: string;\n\n @ForeignKey(() => Workout)\n @Index\n @Column({ type: DataType.UUID, allowNull: false })\n declare workoutUuid: string;\n\n @BelongsTo(() => Workout, { foreignKey: 'workoutUuid', onDelete: 'CASCADE' })\n declare workout?: Workout;\n\n @Column({\n type: DataType.ENUM(...Object.values(SessionStatus)),\n allowNull: false,\n defaultValue: SessionStatus.ACTIVE,\n })\n declare status: SessionStatus;\n\n @Column({ type: DataType.DATE, allowNull: false, defaultValue: DataType.NOW })\n declare startedAt: Date;\n\n @Column({ type: DataType.DATE, allowNull: true })\n declare completedAt: Date | null;\n}"],"names":["Table","Model","Column","DataType","Default","ForeignKey","BelongsTo","Index","Workout","SessionStatus","WorkoutSession","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","foreignKey","onDelete","ENUM","Object","values","DATE","NOW","tableName","timestamps","indexes","unique","fields","where","status","name"],"mappings":";;;;;;AAAA,SACIA,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,KAAK,QACF,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AAEvC,OAAO,IAAA,AAAKC,uCAAAA;;;WAAAA;MAGX;AAcD,OAAO,MAAMC,uBAAuBT;AAkCpC;;qBAjCsBU;;QAEdC,MAAMT,SAASU,IAAI;QACnBC,cAAcX,SAASQ,MAAM;QAC7BI,WAAW;QACXC,YAAY;;;;;;QAKNJ,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;mBAGxBP;;;QAERI,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;kBAGzBP;QAAWS,YAAY;QAAeC,UAAU;;;;;QAI7DN,MAAMT,SAASgB,IAAI,IAAIC,OAAOC,MAAM,CAACZ;QACrCM,WAAW;QACXD,YAAY;;;;;QAINF,MAAMT,SAASmB,IAAI;QAAEP,WAAW;QAAOD,cAAcX,SAASoB,GAAG;;;;;QAGjEX,MAAMT,SAASmB,IAAI;QAAEP,WAAW;;;;;QA3C1CS,WAAW;QACXC,YAAY;QACZC,SAAS;YACL;gBACIC,QAAQ;gBACRC,QAAQ;oBAAC;oBAAe;iBAAS;gBACjCC,OAAO;oBAAEC,QAAQ;gBAAS;gBAC1BC,MAAM;YACV;SACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "90dc-core",
3
- "version": "1.13.2",
3
+ "version": "1.13.4",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",