import * as GQL from "src/core/generated-graphql"; import { PerformersCriterion } from "src/models/list-filter/criteria/performers"; import { StudiosCriterion } from "src/models/list-filter/criteria/studios"; import { TagsCriterion } from "src/models/list-filter/criteria/tags"; import { ListFilterModel } from "src/models/list-filter/filter"; import { FilterMode } from "src/models/list-filter/types"; const makePerformerScenesUrl = ( performer: Partial ) => { if (!performer.id) return "#"; const filter = new ListFilterModel(FilterMode.Scenes); const criterion = new PerformersCriterion(); criterion.value = [ { id: performer.id, label: performer.name || `Performer ${performer.id}` } ]; filter.criteria.push(criterion); return `/scenes?${filter.makeQueryParameters()}`; }; const makeStudioScenesUrl = (studio: Partial) => { if (!studio.id) return "#"; const filter = new ListFilterModel(FilterMode.Scenes); const criterion = new StudiosCriterion(); criterion.value = [ { id: studio.id, label: studio.name || `Studio ${studio.id}` } ]; filter.criteria.push(criterion); return `/scenes?${filter.makeQueryParameters()}`; }; const makeTagScenesUrl = (tag: Partial) => { if (!tag.id) return "#"; const filter = new ListFilterModel(FilterMode.Scenes); const criterion = new TagsCriterion("tags"); criterion.value = [{ id: tag.id, label: tag.name || `Tag ${tag.id}` }]; filter.criteria.push(criterion); return `/scenes?${filter.makeQueryParameters()}`; }; const makeTagSceneMarkersUrl = (tag: Partial) => { if (!tag.id) return "#"; const filter = new ListFilterModel(FilterMode.SceneMarkers); const criterion = new TagsCriterion("tags"); criterion.value = [{ id: tag.id, label: tag.name || `Tag ${tag.id}` }]; filter.criteria.push(criterion); return `/scenes/markers?${filter.makeQueryParameters()}`; }; const makeSceneMarkerUrl = ( sceneMarker: Partial ) => { if (!sceneMarker.id || !sceneMarker.scene) return "#"; return `/scenes/${sceneMarker.scene.id}?t=${sceneMarker.seconds}`; }; export default { makePerformerScenesUrl, makeStudioScenesUrl, makeTagSceneMarkersUrl, makeTagScenesUrl, makeSceneMarkerUrl };