diff --git a/src/backend/common/database/drizzle/repositories/PlayHistoricalRepository.ts b/src/backend/common/database/drizzle/repositories/PlayHistoricalRepository.ts index 02589616..522c6475 100644 --- a/src/backend/common/database/drizzle/repositories/PlayHistoricalRepository.ts +++ b/src/backend/common/database/drizzle/repositories/PlayHistoricalRepository.ts @@ -5,14 +5,12 @@ import { plays, playsHistorical } from "../schema/schema.ts"; import type {FindWhere, FindMany, WhereClause, PlayHistoricalSelect, PlayHistoricalNew} from "../drizzleTypes.ts";; import type { MarkOptional } from "ts-essentials"; import { removeUndefinedKeys } from '../../../../../core/DataUtils.ts'; -import type {Dayjs} from "dayjs"; import { inArray, sql } from "drizzle-orm"; import { buildDateCompare, type CompareDateOp, type ComponentConstrainedRepoOpts, DrizzleBaseRepository, type DrizzleRepositoryOpts } from "./BaseRepository.ts"; import type {PaginatedResponse} from "../../../../../core/Api.ts"; import { hashObject } from "../../../../utils/StringUtils.ts"; import { playContentBasicInvariantTransform, playMbidIdentifier } from "../../../../utils/PlayComparisonUtils.ts"; -import { comparePlayTemporally, getTemporalAccuracyCloseVal, hasAcceptableTemporalAccuracy } from "../../../../utils/TimeUtils.ts"; -import type {SourceType} from "../../../../../core/Atomic.ts"; +import { comparePlayTemporally, hasAcceptableTemporalAccuracy } from "../../../../utils/TimeUtils.ts"; import { getTemporallyCloseDateCompareOp } from "./PlayRepository.ts"; // https://github.com/drizzle-team/drizzle-orm/issues/695 may be useful for typing models with relations? @@ -63,7 +61,7 @@ export class DrizzlePlayHistoricalRepository extends DrizzleBaseRepository<'play if(res === undefined) { return res; } - res.play = hydratePlaySelect(res!, opts.hydrate); + res.play = hydratePlaySelect(res, opts.hydrate); return res; } @@ -131,7 +129,7 @@ export class DrizzlePlayHistoricalRepository extends DrizzleBaseRepository<'play } } - query = removeUndefinedKeys(query)!; + query = removeUndefinedKeys(query, false); const results = await this.db.query.playsHistorical.findMany(query); return results.map((x) => ({...x, play: hydratePlaySelect(x, hydrate)})); } @@ -158,7 +156,7 @@ export class DrizzlePlayHistoricalRepository extends DrizzleBaseRepository<'play } } - query = removeUndefinedKeys(query)!; + query = removeUndefinedKeys(query, false); const results = await this.db.query.playsHistorical.findMany({ ...query, limit: args.limit, @@ -220,15 +218,15 @@ export class DrizzlePlayHistoricalRepository extends DrizzleBaseRepository<'play // which we can then use with temporal comparison to make sure we are comparing the correct dates // // this isn't as fast as just comparing playDate directly but its still much faster/cheaper than paginating plays and doing everything in-memory - const dateGranularity = getTemporalAccuracyCloseVal(play.meta.source as SourceType); - let endRange: Dayjs; - if(play.data.playDateCompleted !== undefined) { - // this will be present if source reports it - // or we tracked it live with MemorySource - endRange = play.data.playDateCompleted.add(dateGranularity, 's'); - } else { - endRange = play.data.playDate!.add(dateGranularity, 's'); - } + //const dateGranularity = getTemporalAccuracyCloseVal(play.meta.source as SourceType); + // let endRange: Dayjs; + // if(play.data.playDateCompleted !== undefined) { + // // this will be present if source reports it + // // or we tracked it live with MemorySource + // endRange = play.data.playDateCompleted.add(dateGranularity, 's'); + // } else { + // endRange = getScrobbleTsSOCDate(play).add(dateGranularity, 's'); + // } const where: FindWhere<'playsHistorical'> = { componentId, playedAt: buildDateCompare(getTemporallyCloseDateCompareOp(play)),