@burdenoff/microfe-hookmovies 2026.720.1 → 2026.720.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"useHookMoviesApi.d.ts","sourceRoot":"","sources":["../../../src/hookmovies/hooks/useHookMoviesApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useHookMoviesApi.d.ts","sourceRoot":"","sources":["../../../src/hookmovies/hooks/useHookMoviesApi.ts"],"names":[],"mappings":"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"}
@@ -316,7 +316,7 @@ var o = async (e, t, n) => {
316
316
  "applications",
317
317
  t
318
318
  ],
319
- queryFn: async () => (await o("query HokApplications($auditionId: ID!) {\n hokListApplications(auditionId: $auditionId) {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }", { auditionId: t }, r)).hokListApplications,
319
+ queryFn: async () => (await o("query HokApplications($auditionId: ID!) {\n hokListApplications(auditionId: $auditionId) {\n items {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }\n }", { auditionId: t }, r)).hokListApplications.items,
320
320
  enabled: !!t
321
321
  });
322
322
  }, w = () => {
@@ -479,7 +479,7 @@ var o = async (e, t, n) => {
479
479
  "my-entitlements",
480
480
  t
481
481
  ],
482
- queryFn: async () => (await o("query HokMyEntitlements($titleId: ID) {\n hokMyEntitlements(titleId: $titleId) {\n id titleId userId mode source status territory expiresAt createdAt updatedAt\n title { id title }\n }\n }", { titleId: t }, r)).hokMyEntitlements
482
+ queryFn: async () => (await o("query HokMyEntitlements($titleId: ID) {\n hokMyEntitlements(titleId: $titleId) {\n items {\n id titleId userId mode source status territory expiresAt createdAt updatedAt\n title { id title }\n }\n }\n }", { titleId: t }, r)).hokMyEntitlements.items
483
483
  });
484
484
  }, I = (t, r = {
485
485
  limit: 50,
@@ -529,7 +529,7 @@ var o = async (e, t, n) => {
529
529
  "my-watch-progress",
530
530
  t
531
531
  ],
532
- queryFn: async () => (await o("query HokMyWatchProgress($titleId: ID) {\n hokMyWatchProgress(titleId: $titleId) {\n id titleId episodeId positionSeconds completed lastDevice updatedAt\n title { id title type }\n }\n }", { titleId: t }, r)).hokMyWatchProgress
532
+ queryFn: async () => (await o("query HokMyWatchProgress($titleId: ID) {\n hokMyWatchProgress(titleId: $titleId) {\n items {\n id titleId episodeId positionSeconds completed lastDevice updatedAt\n title { id title type }\n }\n }\n }", { titleId: t }, r)).hokMyWatchProgress.items
533
533
  });
534
534
  }, B = () => {
535
535
  let n = r(), { apiGatewayUrl: i } = e();
@@ -669,12 +669,14 @@ var o = async (e, t, n) => {
669
669
  ],
670
670
  queryFn: async () => (await o(`query HokLocalizations($titleId: ID, $episodeId: ID) {
671
671
  hokListLocalizations(titleId: $titleId, episodeId: $episodeId) {
672
- ${G}
672
+ items {
673
+ ${G}
674
+ }
673
675
  }
674
676
  }`, {
675
677
  titleId: t,
676
678
  episodeId: r
677
- }, i)).hokListLocalizations,
679
+ }, i)).hokListLocalizations.items,
678
680
  enabled: !!t || !!r
679
681
  });
680
682
  }, ve = () => {
@@ -688,7 +690,7 @@ var o = async (e, t, n) => {
688
690
  let { apiGatewayUrl: t } = e();
689
691
  return n({
690
692
  queryKey: [c, "profiles"],
691
- queryFn: async () => (await o(`query HokMyProfiles { hokMyProfiles { ${K} } }`, {}, t)).hokMyProfiles
693
+ queryFn: async () => (await o(`query HokMyProfiles { hokMyProfiles { items { ${K} } } }`, {}, t)).hokMyProfiles.items
692
694
  });
693
695
  }, be = () => {
694
696
  let n = r(), { apiGatewayUrl: i } = e();
@@ -912,13 +914,15 @@ var o = async (e, t, n) => {
912
914
  ],
913
915
  queryFn: async () => (await o(`query HokChannelSchedule($channelId: ID!, $from: DateTime, $to: DateTime) {
914
916
  hokChannelSchedule(channelId: $channelId, from: $from, to: $to) {
915
- ${Z}
917
+ items {
918
+ ${Z}
919
+ }
916
920
  }
917
921
  }`, {
918
922
  channelId: t,
919
923
  from: r,
920
924
  to: i
921
- }, a)).hokChannelSchedule,
925
+ }, a)).hokChannelSchedule.items,
922
926
  enabled: !!t
923
927
  });
924
928
  }, Ie = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"useHookMoviesApi.js","names":[],"sources":["../../../src/hookmovies/hooks/useHookMoviesApi.ts"],"sourcesContent":["/**\n * HookMovies API hooks\n * @module hookmovies/hooks\n *\n * Real data layer for the HookMovies workspace subgraph (`hookmovies` Hive\n * service / `wspace-hookmovies-svc`). Every hook talks to the live workspace\n * GraphQL gateway via {@link graphqlFetch} with inline operations whose fields\n * mirror `.hive-schema.graphql` exactly. No mocks.\n *\n * Conventions (mirrors microfe-kadaikodi):\n * - `hookmoviesQuery` wraps graphqlFetch({ gateway: 'workspace', workspaceToken: true })\n * and throws on GraphQL errors / missing data.\n * - One react-query `useQuery` per read op and `useMutation` per write op.\n * - Strict hand-written result interfaces — no `any`.\n * - Pagination uses the subgraph's `PaginationInput` (limit/offset/cursor) and\n * `Hok*Connection { items, pageInfo { cursor hasMore } }` shapes verbatim.\n */\n\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport { graphqlFetch } from '@burdenoff/fe-libs/shared/graphql';\nimport { clearGraphqlFetchResponseCache } from '@burdenoff/fe-libs/shared/graphql/fetch';\n\nimport { useHookMovies } from '../context';\n\n// ============================================================================\n// Low-level query runner\n// ============================================================================\n\nconst hookmoviesQuery = async <TData>(\n query: string,\n variables: Record<string, unknown>,\n baseUrl?: string\n): Promise<TData> => {\n const response = await graphqlFetch<TData>({\n gateway: 'workspace',\n baseUrl,\n query,\n variables,\n workspaceToken: true,\n });\n\n if (response.errors?.length) {\n throw new Error(response.errors[0]?.message ?? 'GraphQL request failed');\n }\n\n if (!response.data) {\n throw new Error('GraphQL response did not include data');\n }\n\n // This MFE bypasses Apollo, so fe-libs' short-lived graphqlFetch read cache\n // (~15s) would otherwise serve pre-write data to the very next refetch issued\n // by a mutation's onSuccess invalidation. Clear it after any successful\n // mutation so every downstream read is fresh (fleet-wide stale-read-after-\n // write fix).\n if (query.trimStart().startsWith('mutation')) {\n clearGraphqlFetchResponseCache();\n }\n\n return response.data;\n};\n\n/**\n * Low-level runner for the GLOBAL gateway. HookMovies reuses several platform\n * services that live in the global layer — global-billing (checkout / earnings /\n * payouts), global-auth (developer API keys) and global-i18n (languages / user\n * language preference). Those ops are global-scoped, so we do NOT attach the\n * workspace token and we let fe-libs resolve the runtime global gateway URL\n * (never the workspace `apiGatewayUrl`). Auth + locale headers are added\n * automatically by {@link graphqlFetch}.\n */\nconst globalQuery = async <TData>(\n query: string,\n variables: Record<string, unknown>\n): Promise<TData> => {\n const response = await graphqlFetch<TData>({\n gateway: 'global',\n query,\n variables,\n });\n\n if (response.errors?.length) {\n throw new Error(response.errors[0]?.message ?? 'GraphQL request failed');\n }\n\n if (!response.data) {\n throw new Error('GraphQL response did not include data');\n }\n\n // Same stale-read-after-write guard as hookmoviesQuery (see there).\n if (query.trimStart().startsWith('mutation')) {\n clearGraphqlFetchResponseCache();\n }\n\n return response.data;\n};\n\nconst QK = 'hookmovies' as const;\n\n// ============================================================================\n// Shared scalar / enum types (mirror .hive-schema.graphql)\n// ============================================================================\n\nexport interface HokPaginationInput {\n cursor?: string | null;\n limit?: number | null;\n offset?: number | null;\n}\n\nexport interface HokPageInfo {\n cursor: string | null;\n hasMore: boolean;\n}\n\nexport type HokTitleType =\n | 'MOVIE'\n | 'SERIES'\n | 'SHORT_FILM'\n | 'DOCUMENTARY'\n | 'ANIME'\n | 'SHORT_FORM'\n | 'LONG_FORM'\n | 'LIVE_EVENT'\n | 'TRAILER'\n | 'COLLECTION'\n | 'FAST_CHANNEL';\n\nexport type HokTitleStatus =\n 'DRAFT' | 'IN_REVIEW' | 'SCHEDULED' | 'PUBLISHED' | 'UNPUBLISHED' | 'ARCHIVED';\n\nexport type HokProductionStatus =\n 'DEVELOPMENT' | 'GREENLIT' | 'IN_PRODUCTION' | 'POST_PRODUCTION' | 'RELEASED' | 'SHELVED';\n\nexport type HokAuditionStatus = 'OPEN' | 'REVIEWING' | 'CALLBACKS' | 'CLOSED' | 'CANCELLED';\n\nexport type HokApplicationStatus =\n 'SUBMITTED' | 'SHORTLISTED' | 'CALLBACK' | 'OFFERED' | 'REJECTED' | 'WITHDRAWN';\n\nexport type HokCreditRole =\n | 'ACTOR'\n | 'DIRECTOR'\n | 'WRITER'\n | 'PRODUCER'\n | 'CINEMATOGRAPHER'\n | 'EDITOR'\n | 'COMPOSER'\n | 'VOICE_ACTOR'\n | 'CREW';\n\nexport type HokReviewStatus = 'PENDING' | 'PUBLISHED' | 'HIDDEN' | 'REMOVED';\n\nexport type HokRightsWindowStatus = 'DRAFT' | 'PENDING' | 'ACTIVE' | 'EXPIRED' | 'REVOKED';\n\nexport type HokMonetizationMode = 'FREE_AVOD' | 'SVOD' | 'TVOD_RENT' | 'TVOD_BUY' | 'PPV' | 'FAST';\n\nexport type HokEntitlementSource = 'SUBSCRIPTION' | 'PURCHASE' | 'RENTAL' | 'PROMO' | 'FREE';\n\nexport type HokEntitlementStatus = 'ACTIVE' | 'EXPIRED' | 'REVOKED';\n\nexport type HokListKind = 'WATCHLIST' | 'PLAYLIST';\n\nexport type HokListVisibility = 'PRIVATE' | 'UNLISTED' | 'PUBLIC';\n\n// ============================================================================\n// Domain object types\n// ============================================================================\n\nexport interface HokStudio {\n id: string;\n name: string;\n slug: string | null;\n description: string | null;\n country: string | null;\n websiteUrl: string | null;\n isVerified: boolean;\n tags: string[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokPerson {\n id: string;\n name: string;\n biography: string | null;\n knownFor: string | null;\n primaryLanguage: string | null;\n portfolioRef: string | null;\n tags: string[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokCredit {\n id: string;\n personId: string;\n titleId: string;\n role: HokCreditRole;\n characterName: string | null;\n billingOrder: number;\n person: Pick<HokPerson, 'id' | 'name' | 'knownFor'> | null;\n}\n\nexport interface HokEpisodeSummary {\n id: string;\n name: string;\n number: number;\n seasonId: string | null;\n synopsis: string | null;\n runtimeMinutes: number | null;\n airDate: string | null;\n}\n\nexport interface HokSeasonSummary {\n id: string;\n name: string | null;\n number: number;\n synopsis: string | null;\n}\n\nexport interface HokTitle {\n id: string;\n title: string;\n slug: string | null;\n type: HokTitleType;\n status: HokTitleStatus;\n synopsis: string | null;\n genres: string[];\n tags: string[];\n originalLanguage: string | null;\n originCountry: string | null;\n releaseYear: number | null;\n releaseDate: string | null;\n runtimeMinutes: number | null;\n certification: string | null;\n aiDisclosure: boolean;\n studioId: string | null;\n posterFileId: string | null;\n backdropFileId: string | null;\n trailerFileId: string | null;\n videoFileId: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokTitleDetail extends HokTitle {\n studio: Pick<HokStudio, 'id' | 'name'> | null;\n credits: HokCredit[];\n seasons: HokSeasonSummary[];\n episodes: HokEpisodeSummary[];\n}\n\nexport interface HokProduction {\n id: string;\n title: string;\n logline: string | null;\n synopsis: string | null;\n status: HokProductionStatus;\n currency: string;\n budgetMinorUnits: string;\n studioId: string | null;\n producerId: string | null;\n resultingTitleId: string | null;\n artistrybaseProjectRef: string | null;\n tags: string[];\n startDate: string | null;\n endDate: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokAuditionSummary {\n id: string;\n roleName: string;\n status: HokAuditionStatus;\n isMinorRole: boolean;\n payMinorUnits: string;\n currency: string;\n location: string | null;\n language: string | null;\n submissionDeadline: string | null;\n}\n\nexport interface HokProductionDetail extends HokProduction {\n auditions: HokAuditionSummary[];\n}\n\nexport interface HokAudition {\n id: string;\n productionId: string;\n roleName: string;\n description: string | null;\n status: HokAuditionStatus;\n isMinorRole: boolean;\n payMinorUnits: string;\n currency: string;\n location: string | null;\n language: string | null;\n submissionDeadline: string | null;\n createdAt: string;\n updatedAt: string;\n production: Pick<HokProduction, 'id' | 'title'> | null;\n}\n\nexport interface HokApplication {\n id: string;\n auditionId: string;\n applicantId: string;\n coverNote: string | null;\n score: number | null;\n status: HokApplicationStatus;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokReview {\n id: string;\n titleId: string;\n authorId: string;\n score: number;\n body: string | null;\n hasSpoilers: boolean;\n helpfulCount: number;\n verifiedWatch: boolean;\n status: HokReviewStatus;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title'> | null;\n}\n\nexport interface HokRightsWindow {\n id: string;\n titleId: string;\n status: HokRightsWindowStatus;\n modes: HokMonetizationMode[];\n territories: string[];\n exclusive: boolean;\n currency: string;\n licenseeId: string | null;\n startsAt: string | null;\n endsAt: string | null;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title'> | null;\n}\n\nexport interface HokEntitlement {\n id: string;\n titleId: string;\n userId: string;\n mode: HokMonetizationMode;\n source: HokEntitlementSource;\n status: HokEntitlementStatus;\n territory: string | null;\n expiresAt: string | null;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title'> | null;\n}\n\nexport interface HokList {\n id: string;\n name: string;\n description: string | null;\n kind: HokListKind;\n visibility: HokListVisibility;\n ownerId: string;\n itemCount: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokWatchProgress {\n id: string;\n titleId: string;\n episodeId: string | null;\n positionSeconds: number;\n completed: boolean;\n lastDevice: string | null;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title' | 'type'> | null;\n}\n\n// ============================================================================\n// Connection wrappers\n// ============================================================================\n\ninterface HokConnection<TItem> {\n items: TItem[];\n pageInfo: HokPageInfo;\n /** Total rows matching the current filters, across all pages. */\n totalCount: number;\n}\n\n// ============================================================================\n// Inline field selections (reused across ops)\n// ============================================================================\n\nconst TITLE_FIELDS = `\n id title slug type status synopsis genres tags originalLanguage originCountry\n releaseYear releaseDate runtimeMinutes certification aiDisclosure studioId\n posterFileId backdropFileId trailerFileId videoFileId\n createdAt updatedAt\n`;\n\nconst STUDIO_FIELDS = `\n id name slug description country websiteUrl isVerified tags createdAt updatedAt\n`;\n\nconst PERSON_FIELDS = `\n id name biography knownFor primaryLanguage portfolioRef tags createdAt updatedAt\n`;\n\nconst PRODUCTION_FIELDS = `\n id title logline synopsis status currency budgetMinorUnits studioId producerId\n resultingTitleId artistrybaseProjectRef tags startDate endDate createdAt updatedAt\n`;\n\nconst AUDITION_FIELDS = `\n id productionId roleName description status isMinorRole payMinorUnits currency\n location language submissionDeadline createdAt updatedAt\n`;\n\nconst REVIEW_FIELDS = `\n id titleId authorId score body hasSpoilers helpfulCount verifiedWatch status\n createdAt updatedAt\n`;\n\nconst RIGHTS_FIELDS = `\n id titleId status modes territories exclusive currency licenseeId startsAt endsAt\n createdAt updatedAt\n`;\n\nconst LIST_FIELDS = `\n id name description kind visibility ownerId itemCount createdAt updatedAt\n`;\n\nconst PAGE_INFO = `pageInfo { cursor hasMore }\n totalCount`;\n\n// ============================================================================\n// Titles\n// ============================================================================\n\nexport interface HokTitleFilters {\n status?: HokTitleStatus;\n type?: HokTitleType;\n studioId?: string;\n}\n\nexport const useTitles = (\n filters: HokTitleFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 },\n search?: string\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'titles', filters, pagination, search ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListTitles: HokConnection<HokTitle> }>(\n `query HokTitles($pagination: PaginationInput, $search: String, $status: HokTitleStatus, $type: HokTitleType, $studioId: ID) {\n hokListTitles(pagination: $pagination, search: $search, status: $status, type: $type, studioId: $studioId) {\n items { ${TITLE_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n {\n pagination,\n search: search?.trim() ? search.trim() : undefined,\n status: filters.status,\n type: filters.type,\n studioId: filters.studioId,\n },\n apiGatewayUrl\n );\n return result.hokListTitles;\n },\n });\n};\n\nexport const useTitle = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'title', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokTitle: HokTitleDetail | null }>(\n `query HokTitle($id: ID!) {\n hokTitle(id: $id) {\n ${TITLE_FIELDS}\n studio { id name }\n credits {\n id personId titleId role characterName billingOrder\n person { id name knownFor }\n }\n seasons { id name number synopsis }\n episodes { id name number seasonId synopsis runtimeMinutes airDate }\n }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokTitle;\n },\n enabled: Boolean(id),\n });\n};\n\nexport interface CreateTitleInput {\n title: string;\n type?: HokTitleType;\n synopsis?: string;\n genres?: string[];\n tags?: string[];\n originalLanguage?: string;\n originCountry?: string;\n releaseYear?: number;\n runtimeMinutes?: number;\n certification?: string;\n slug?: string;\n studioId?: string;\n aiDisclosure?: boolean;\n}\n\nexport const useCreateTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateTitleInput) => {\n const result = await hookmoviesQuery<{ hokCreateTitle: HokTitle }>(\n `mutation HokCreateTitle($input: HokCreateTitleInput!) {\n hokCreateTitle(input: $input) { ${TITLE_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateTitle;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n },\n });\n};\n\nexport interface UpdateTitleInput {\n title?: string;\n type?: HokTitleType;\n synopsis?: string;\n genres?: string[];\n tags?: string[];\n originalLanguage?: string;\n originCountry?: string;\n releaseYear?: number;\n runtimeMinutes?: number;\n certification?: string;\n slug?: string;\n studioId?: string;\n aiDisclosure?: boolean;\n posterFileId?: string;\n backdropFileId?: string;\n trailerFileId?: string;\n videoFileId?: string;\n}\n\nexport const useUpdateTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, input }: { id: string; input: UpdateTitleInput }) => {\n const result = await hookmoviesQuery<{ hokUpdateTitle: HokTitle }>(\n `mutation HokUpdateTitle($id: ID!, $input: HokUpdateTitleInput!) {\n hokUpdateTitle(id: $id, input: $input) { ${TITLE_FIELDS} }\n }`,\n { id, input },\n apiGatewayUrl\n );\n return result.hokUpdateTitle;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.id] });\n },\n });\n};\n\nexport const useTransitionTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, status }: { id: string; status: HokTitleStatus }) => {\n const result = await hookmoviesQuery<{ hokTransitionTitle: HokTitle }>(\n `mutation HokTransitionTitle($id: ID!, $status: HokTitleStatus!) {\n hokTransitionTitle(id: $id, status: $status) { ${TITLE_FIELDS} }\n }`,\n { id, status },\n apiGatewayUrl\n );\n return result.hokTransitionTitle;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.id] });\n },\n });\n};\n\nexport const useArchiveTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokArchiveTitle: boolean }>(\n `mutation HokArchiveTitle($id: ID!) { hokArchiveTitle(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokArchiveTitle;\n },\n onSuccess: (_data, id) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', id] });\n },\n });\n};\n\n// ============================================================================\n// Studios\n// ============================================================================\n\nexport const useStudios = (\n pagination: HokPaginationInput = { limit: 50, offset: 0 },\n search?: string\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'studios', pagination, search ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListStudios: HokConnection<HokStudio> }>(\n `query HokStudios($pagination: PaginationInput, $search: String) {\n hokListStudios(pagination: $pagination, search: $search) {\n items { ${STUDIO_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, search: search?.trim() ? search.trim() : undefined },\n apiGatewayUrl\n );\n return result.hokListStudios;\n },\n });\n};\n\nexport interface CreateStudioInput {\n name: string;\n slug?: string;\n description?: string;\n country?: string;\n websiteUrl?: string;\n tags?: string[];\n}\n\nexport const useCreateStudio = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateStudioInput) => {\n const result = await hookmoviesQuery<{ hokCreateStudio: HokStudio }>(\n `mutation HokCreateStudio($input: HokCreateStudioInput!) {\n hokCreateStudio(input: $input) { ${STUDIO_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateStudio;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'studios'] });\n },\n });\n};\n\n// ============================================================================\n// People\n// ============================================================================\n\nexport const usePeople = (\n pagination: HokPaginationInput = { limit: 50, offset: 0 },\n search?: string\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'people', pagination, search ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListPeople: HokConnection<HokPerson> }>(\n `query HokPeople($pagination: PaginationInput, $search: String) {\n hokListPeople(pagination: $pagination, search: $search) {\n items { ${PERSON_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, search: search?.trim() ? search.trim() : undefined },\n apiGatewayUrl\n );\n return result.hokListPeople;\n },\n });\n};\n\nexport interface CreatePersonInput {\n name: string;\n biography?: string;\n knownFor?: string;\n primaryLanguage?: string;\n portfolioRef?: string;\n tags?: string[];\n}\n\nexport const useCreatePerson = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreatePersonInput) => {\n const result = await hookmoviesQuery<{ hokCreatePerson: HokPerson }>(\n `mutation HokCreatePerson($input: HokCreatePersonInput!) {\n hokCreatePerson(input: $input) { ${PERSON_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreatePerson;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'people'] });\n },\n });\n};\n\n// ============================================================================\n// Productions\n// ============================================================================\n\nexport interface HokProductionFilters {\n status?: HokProductionStatus;\n studioId?: string;\n}\n\nexport const useProductions = (\n filters: HokProductionFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'productions', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListProductions: HokConnection<HokProduction> }>(\n `query HokProductions($pagination: PaginationInput, $status: HokProductionStatus, $studioId: ID) {\n hokListProductions(pagination: $pagination, status: $status, studioId: $studioId) {\n items { ${PRODUCTION_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, studioId: filters.studioId },\n apiGatewayUrl\n );\n return result.hokListProductions;\n },\n });\n};\n\nexport const useProduction = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'production', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokProduction: HokProductionDetail | null }>(\n `query HokProduction($id: ID!) {\n hokProduction(id: $id) {\n ${PRODUCTION_FIELDS}\n auditions {\n id roleName status isMinorRole payMinorUnits currency location language submissionDeadline\n }\n }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokProduction;\n },\n enabled: Boolean(id),\n });\n};\n\nexport interface CreateProductionInput {\n title: string;\n logline?: string;\n synopsis?: string;\n currency?: string;\n budgetMinorUnits?: string;\n studioId?: string;\n producerId?: string;\n artistrybaseProjectRef?: string;\n tags?: string[];\n startDate?: string;\n endDate?: string;\n}\n\nexport const useCreateProduction = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateProductionInput) => {\n const result = await hookmoviesQuery<{ hokCreateProduction: HokProduction }>(\n `mutation HokCreateProduction($input: HokCreateProductionInput!) {\n hokCreateProduction(input: $input) { ${PRODUCTION_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateProduction;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'productions'] });\n },\n });\n};\n\nexport const useTransitionProduction = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, status }: { id: string; status: HokProductionStatus }) => {\n const result = await hookmoviesQuery<{ hokTransitionProduction: HokProduction }>(\n `mutation HokTransitionProduction($id: ID!, $status: HokProductionStatus!) {\n hokTransitionProduction(id: $id, status: $status) { ${PRODUCTION_FIELDS} }\n }`,\n { id, status },\n apiGatewayUrl\n );\n return result.hokTransitionProduction;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'productions'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'production', data.id] });\n },\n });\n};\n\n// ============================================================================\n// Auditions & Applications\n// ============================================================================\n\nexport interface HokAuditionFilters {\n status?: HokAuditionStatus;\n productionId?: string;\n}\n\nexport const useAuditions = (\n filters: HokAuditionFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'auditions', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListAuditions: HokConnection<HokAudition> }>(\n `query HokAuditions($pagination: PaginationInput, $status: HokAuditionStatus, $productionId: ID) {\n hokListAuditions(pagination: $pagination, status: $status, productionId: $productionId) {\n items {\n ${AUDITION_FIELDS}\n production { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, productionId: filters.productionId },\n apiGatewayUrl\n );\n return result.hokListAuditions;\n },\n });\n};\n\n/**\n * Resolve a single audition by id. The subgraph exposes no `hokAudition(id)`\n * root field, so we read the (workspace-scoped) audition list and pick the row.\n * Fetched with a generous page size since auditions are workspace-bounded.\n */\nexport const useAuditionById = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'audition-by-id', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListAuditions: HokConnection<HokAudition> }>(\n `query HokAuditionLookup($pagination: PaginationInput) {\n hokListAuditions(pagination: $pagination) {\n items {\n ${AUDITION_FIELDS}\n production { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination: { limit: 200, offset: 0 } },\n apiGatewayUrl\n );\n return result.hokListAuditions.items.find((a) => a.id === id) ?? null;\n },\n enabled: Boolean(id),\n });\n};\n\nexport const useAuditionApplications = (auditionId: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'applications', auditionId],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListApplications: HokApplication[] }>(\n `query HokApplications($auditionId: ID!) {\n hokListApplications(auditionId: $auditionId) {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }`,\n { auditionId },\n apiGatewayUrl\n );\n return result.hokListApplications;\n },\n enabled: Boolean(auditionId),\n });\n};\n\nexport interface CreateAuditionInput {\n productionId: string;\n roleName: string;\n description?: string;\n payMinorUnits?: string;\n currency?: string;\n location?: string;\n language?: string;\n isMinorRole?: boolean;\n submissionDeadline?: string;\n}\n\nexport const useCreateAudition = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateAuditionInput) => {\n const result = await hookmoviesQuery<{ hokCreateAudition: HokAudition }>(\n `mutation HokCreateAudition($input: HokCreateAuditionInput!) {\n hokCreateAudition(input: $input) { ${AUDITION_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateAudition;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'auditions'] });\n },\n });\n};\n\nexport const useCloseAudition = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokCloseAudition: HokAudition }>(\n `mutation HokCloseAudition($id: ID!) {\n hokCloseAudition(id: $id) { ${AUDITION_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokCloseAudition;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'auditions'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'audition-by-id', data.id] });\n },\n });\n};\n\nexport interface ApplyToAuditionInput {\n auditionId: string;\n coverNote?: string;\n selfTapeFileId?: string;\n}\n\nexport const useApplyToAudition = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: ApplyToAuditionInput) => {\n const result = await hookmoviesQuery<{ hokApplyToAudition: HokApplication }>(\n `mutation HokApplyToAudition($input: HokApplyToAuditionInput!) {\n hokApplyToAudition(input: $input) {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokApplyToAudition;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'applications', data.auditionId] });\n },\n });\n};\n\nexport const useScoreApplication = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, score }: { id: string; score: number }) => {\n const result = await hookmoviesQuery<{ hokScoreApplication: HokApplication }>(\n `mutation HokScoreApplication($id: ID!, $score: Int!) {\n hokScoreApplication(id: $id, score: $score) {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }`,\n { id, score },\n apiGatewayUrl\n );\n return result.hokScoreApplication;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'applications', data.auditionId] });\n },\n });\n};\n\n// ============================================================================\n// Reviews\n// ============================================================================\n\nexport interface HokReviewFilters {\n status?: HokReviewStatus;\n titleId?: string;\n}\n\nexport const useReviews = (\n filters: HokReviewFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'reviews', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListReviews: HokConnection<HokReview> }>(\n `query HokReviews($pagination: PaginationInput, $status: HokReviewStatus, $titleId: ID) {\n hokListReviews(pagination: $pagination, status: $status, titleId: $titleId) {\n items {\n ${REVIEW_FIELDS}\n title { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, titleId: filters.titleId },\n apiGatewayUrl\n );\n return result.hokListReviews;\n },\n });\n};\n\nexport interface CreateReviewInput {\n titleId: string;\n score: number;\n body?: string;\n hasSpoilers?: boolean;\n aspectScores?: Record<string, unknown>;\n}\n\nexport const useCreateReview = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateReviewInput) => {\n const result = await hookmoviesQuery<{ hokCreateReview: HokReview }>(\n `mutation HokCreateReview($input: HokCreateReviewInput!) {\n hokCreateReview(input: $input) { ${REVIEW_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateReview;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\nexport const useDeleteReview = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteReview: boolean }>(\n `mutation HokDeleteReview($id: ID!) { hokDeleteReview(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteReview;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\n// ============================================================================\n// Rights Windows\n// ============================================================================\n\nexport interface HokRightsFilters {\n status?: HokRightsWindowStatus;\n titleId?: string;\n}\n\nexport const useRightsWindows = (\n filters: HokRightsFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'rights', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{\n hokListRightsWindows: HokConnection<HokRightsWindow>;\n }>(\n `query HokRightsWindows($pagination: PaginationInput, $status: HokRightsWindowStatus, $titleId: ID) {\n hokListRightsWindows(pagination: $pagination, status: $status, titleId: $titleId) {\n items {\n ${RIGHTS_FIELDS}\n title { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, titleId: filters.titleId },\n apiGatewayUrl\n );\n return result.hokListRightsWindows;\n },\n });\n};\n\nexport interface CreateRightsWindowInput {\n titleId: string;\n modes: HokMonetizationMode[];\n territories?: string[];\n exclusive?: boolean;\n currency?: string;\n licenseeId?: string;\n startsAt?: string;\n endsAt?: string;\n contractFileId?: string;\n priceMinorUnits?: Record<string, unknown>;\n}\n\nexport const useCreateRightsWindow = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateRightsWindowInput) => {\n const result = await hookmoviesQuery<{ hokCreateRightsWindow: HokRightsWindow }>(\n `mutation HokCreateRightsWindow($input: HokCreateRightsWindowInput!) {\n hokCreateRightsWindow(input: $input) { ${RIGHTS_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateRightsWindow;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'rights'] });\n },\n });\n};\n\nexport const useTransitionRightsWindow = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, status }: { id: string; status: HokRightsWindowStatus }) => {\n const result = await hookmoviesQuery<{ hokTransitionRightsWindow: HokRightsWindow }>(\n `mutation HokTransitionRightsWindow($id: ID!, $status: HokRightsWindowStatus!) {\n hokTransitionRightsWindow(id: $id, status: $status) { ${RIGHTS_FIELDS} }\n }`,\n { id, status },\n apiGatewayUrl\n );\n return result.hokTransitionRightsWindow;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'rights'] });\n },\n });\n};\n\nexport const useRevokeEntitlement = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokRevokeEntitlement: boolean }>(\n `mutation HokRevokeEntitlement($id: ID!) { hokRevokeEntitlement(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokRevokeEntitlement;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-entitlements'] });\n },\n });\n};\n\n// ============================================================================\n// Entitlements (self-scoped)\n// ============================================================================\n\nexport const useMyEntitlements = (titleId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'my-entitlements', titleId],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokMyEntitlements: HokEntitlement[] }>(\n `query HokMyEntitlements($titleId: ID) {\n hokMyEntitlements(titleId: $titleId) {\n id titleId userId mode source status territory expiresAt createdAt updatedAt\n title { id title }\n }\n }`,\n { titleId },\n apiGatewayUrl\n );\n return result.hokMyEntitlements;\n },\n });\n};\n\n// ============================================================================\n// Lists / Watchlists (self-scoped)\n// ============================================================================\n\nexport const useMyLists = (\n kind?: HokListKind,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'my-lists', kind, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokMyLists: HokConnection<HokList> }>(\n `query HokMyLists($kind: HokListKind, $pagination: PaginationInput) {\n hokMyLists(kind: $kind, pagination: $pagination) {\n items { ${LIST_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { kind, pagination },\n apiGatewayUrl\n );\n return result.hokMyLists;\n },\n });\n};\n\nexport interface CreateListInput {\n name: string;\n description?: string;\n kind?: HokListKind;\n visibility?: HokListVisibility;\n items?: Record<string, unknown>;\n}\n\nexport const useCreateList = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateListInput) => {\n const result = await hookmoviesQuery<{ hokCreateList: HokList }>(\n `mutation HokCreateList($input: HokCreateListInput!) {\n hokCreateList(input: $input) { ${LIST_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateList;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-lists'] });\n },\n });\n};\n\nexport const useDeleteList = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteList: boolean }>(\n `mutation HokDeleteList($id: ID!) { hokDeleteList(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteList;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-lists'] });\n },\n });\n};\n\n// ============================================================================\n// Watch progress / Continue Watching (self-scoped)\n// ============================================================================\n\nexport const useMyWatchProgress = (titleId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'my-watch-progress', titleId],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokMyWatchProgress: HokWatchProgress[] }>(\n `query HokMyWatchProgress($titleId: ID) {\n hokMyWatchProgress(titleId: $titleId) {\n id titleId episodeId positionSeconds completed lastDevice updatedAt\n title { id title type }\n }\n }`,\n { titleId },\n apiGatewayUrl\n );\n return result.hokMyWatchProgress;\n },\n });\n};\n\n// ============================================================================\n// Credits (cast & crew on a title)\n// ============================================================================\n\nexport interface HokCreateCreditInput {\n personId: string;\n titleId: string;\n role?: HokCreditRole;\n characterName?: string;\n billingOrder?: number;\n}\n\n/**\n * Attach a person to a title as cast/crew. Invalidates the affected title's\n * detail query (`[QK,'title',titleId]`) — credits are read as part of that\n * detail selection, so refetching it surfaces the new credit.\n */\nexport const useAddCredit = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateCreditInput) => {\n const result = await hookmoviesQuery<{ hokAddCredit: HokCredit }>(\n `mutation HokAddCredit($input: HokCreateCreditInput!) {\n hokAddCredit(input: $input) {\n id personId titleId role characterName billingOrder\n person { id name knownFor }\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokAddCredit;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.titleId] });\n },\n });\n};\n\n// ============================================================================\n// Seasons & Episodes (series structure under a title)\n// ============================================================================\n\nexport interface HokSeason {\n id: string;\n titleId: string;\n number: number;\n name: string | null;\n synopsis: string | null;\n airDate: string | null;\n}\n\nexport interface HokEpisode {\n id: string;\n titleId: string;\n seasonId: string | null;\n number: number;\n name: string;\n synopsis: string | null;\n runtimeMinutes: number | null;\n airDate: string | null;\n}\n\nexport interface HokCreateSeasonInput {\n titleId: string;\n number: number;\n name?: string;\n synopsis?: string;\n airDate?: string;\n}\n\n/** Add a season to a series title; refetches the title detail (seasons live there). */\nexport const useCreateSeason = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateSeasonInput) => {\n const result = await hookmoviesQuery<{ hokCreateSeason: HokSeason }>(\n `mutation HokCreateSeason($input: HokCreateSeasonInput!) {\n hokCreateSeason(input: $input) {\n id titleId number name synopsis airDate\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateSeason;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.titleId] });\n },\n });\n};\n\nexport interface HokCreateEpisodeInput {\n titleId: string;\n number: number;\n name: string;\n seasonId?: string;\n synopsis?: string;\n runtimeMinutes?: number;\n airDate?: string;\n fileId?: string;\n}\n\n/** Add an episode to a title; refetches the title detail (episodes live there). */\nexport const useCreateEpisode = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateEpisodeInput) => {\n const result = await hookmoviesQuery<{ hokCreateEpisode: HokEpisode }>(\n `mutation HokCreateEpisode($input: HokCreateEpisodeInput!) {\n hokCreateEpisode(input: $input) {\n id titleId seasonId number name synopsis runtimeMinutes airDate\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateEpisode;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.titleId] });\n },\n });\n};\n\n// ============================================================================\n// Watch progress mutation (self-scoped)\n// ============================================================================\n\nexport interface HokRecordProgressInput {\n titleId: string;\n positionSeconds: number;\n completed?: boolean;\n episodeId?: string;\n lastDevice?: string;\n}\n\n/** Record playback position for the calling user; invalidates continue-watching. */\nexport const useRecordProgress = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokRecordProgressInput) => {\n const result = await hookmoviesQuery<{ hokRecordProgress: HokWatchProgress }>(\n `mutation HokRecordProgress($input: HokRecordProgressInput!) {\n hokRecordProgress(input: $input) {\n id titleId episodeId positionSeconds completed lastDevice updatedAt\n title { id title type }\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokRecordProgress;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-watch-progress'] });\n },\n });\n};\n\n// ============================================================================\n// Entitlements — check (self) & grant (wspace)\n// ============================================================================\n\nexport interface HokEntitlementCheck {\n entitled: boolean;\n modes: HokMonetizationMode[];\n}\n\n/** Whether the calling user may watch a title, and under which monetization modes. */\nexport const useCheckEntitlement = (titleId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'check-entitlement', titleId],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokCheckEntitlement: HokEntitlementCheck }>(\n `query HokCheckEntitlement($titleId: ID!) {\n hokCheckEntitlement(titleId: $titleId) { entitled modes }\n }`,\n { titleId },\n apiGatewayUrl\n );\n return result.hokCheckEntitlement;\n },\n enabled: Boolean(titleId),\n });\n};\n\nexport interface HokGrantEntitlementInput {\n titleId: string;\n userId: string;\n mode: HokMonetizationMode;\n source?: HokEntitlementSource;\n territory?: string;\n expiresAt?: string;\n}\n\n/** Grant a user access to a title; invalidates the caller's entitlements list. */\nexport const useGrantEntitlement = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokGrantEntitlementInput) => {\n const result = await hookmoviesQuery<{ hokGrantEntitlement: HokEntitlement }>(\n `mutation HokGrantEntitlement($input: HokGrantEntitlementInput!) {\n hokGrantEntitlement(input: $input) {\n id titleId userId mode source status territory expiresAt createdAt updatedAt\n title { id title }\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokGrantEntitlement;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-entitlements'] });\n },\n });\n};\n\n// ============================================================================\n// List updates (self-scoped)\n// ============================================================================\n\nexport interface HokUpdateListInput {\n name?: string;\n description?: string;\n visibility?: HokListVisibility;\n items?: Record<string, unknown>;\n}\n\n/** Rename / re-scope / re-order a list's items; invalidates the caller's lists. */\nexport const useUpdateList = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, input }: { id: string; input: HokUpdateListInput }) => {\n const result = await hookmoviesQuery<{ hokUpdateList: HokList }>(\n `mutation HokUpdateList($id: ID!, $input: HokUpdateListInput!) {\n hokUpdateList(id: $id, input: $input) { ${LIST_FIELDS} }\n }`,\n { id, input },\n apiGatewayUrl\n );\n return result.hokUpdateList;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-lists'] });\n },\n });\n};\n\n// ============================================================================\n// Clips (short-form promos / bonus content attached to a title)\n// ============================================================================\n\nexport type HokClipStatus = 'DRAFT' | 'PUBLISHED' | 'ARCHIVED';\n\nexport interface HokClip {\n id: string;\n titleId: string;\n videoFileId: string;\n posterFileId: string | null;\n caption: string | null;\n durationSeconds: number | null;\n language: string | null;\n}\n\nconst CLIP_FIELDS = `\n id titleId videoFileId posterFileId caption durationSeconds language\n`;\n\n/** Clips for a title (optionally filtered by language). */\nexport const useClips = (\n titleId?: string,\n language?: string,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'clips', titleId ?? '', language ?? '', pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListClips: HokConnection<HokClip> }>(\n `query HokClips($pagination: PaginationInput, $titleId: ID, $language: String) {\n hokListClips(pagination: $pagination, titleId: $titleId, language: $language) {\n items { ${CLIP_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n {\n pagination,\n titleId,\n language: language?.trim() ? language.trim() : undefined,\n },\n apiGatewayUrl\n );\n return result.hokListClips;\n },\n enabled: Boolean(titleId),\n });\n};\n\nexport interface HokCreateClipInput {\n titleId: string;\n videoFileId: string;\n posterFileId?: string;\n caption?: string;\n durationSeconds?: number;\n language?: string;\n order?: number;\n}\n\n/** Attach a clip (video file ref) to a title; invalidates that title's clip list. */\nexport const useCreateClip = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateClipInput) => {\n const result = await hookmoviesQuery<{ hokCreateClip: HokClip }>(\n `mutation HokCreateClip($input: HokCreateClipInput!) {\n hokCreateClip(input: $input) { ${CLIP_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateClip;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'clips', data.titleId] });\n },\n });\n};\n\n/**\n * Delete a clip. `hokDeleteClip` takes only the clip id, so the caller passes\n * the owning `titleId` too — used purely to invalidate the right clip list.\n */\nexport const useDeleteClip = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id }: { id: string; titleId: string }) => {\n const result = await hookmoviesQuery<{ hokDeleteClip: boolean }>(\n `mutation HokDeleteClip($id: ID!) { hokDeleteClip(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteClip;\n },\n onSuccess: (_data, { titleId }) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'clips', titleId] });\n },\n });\n};\n\n// ============================================================================\n// Localizations (subtitle / caption / dub tracks — for player track menus)\n// ============================================================================\n\nexport type HokLocalizationKind = 'SUBTITLE' | 'CAPTION' | 'DUB';\n\nexport type HokLocalizationStatus = 'DRAFT' | 'READY' | 'ARCHIVED';\n\nexport interface HokLocalization {\n id: string;\n language: string;\n kind: HokLocalizationKind;\n fileId: string;\n isDefault: boolean;\n titleId: string | null;\n episodeId: string | null;\n status: HokLocalizationStatus;\n localizedTitle: string | null;\n localizedSynopsis: string | null;\n}\n\nconst LOCALIZATION_FIELDS = `\n id language kind fileId isDefault titleId episodeId status\n localizedTitle localizedSynopsis\n`;\n\n/**\n * Localization tracks for a title (and optionally a specific episode). Used by\n * the player to build its subtitle / caption / dub track menu.\n */\nexport const useLocalizations = (titleId?: string, episodeId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'localizations', titleId ?? '', episodeId ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListLocalizations: HokLocalization[] }>(\n `query HokLocalizations($titleId: ID, $episodeId: ID) {\n hokListLocalizations(titleId: $titleId, episodeId: $episodeId) {\n ${LOCALIZATION_FIELDS}\n }\n }`,\n { titleId, episodeId },\n apiGatewayUrl\n );\n return result.hokListLocalizations;\n },\n enabled: Boolean(titleId) || Boolean(episodeId),\n });\n};\n\n// ============================================================================\n// Health probe (used by the dashboard service-status card)\n// ============================================================================\n\nexport const useHealth = () => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'health'],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokHealth: string }>(\n `query HokHealth { hokHealth }`,\n {},\n apiGatewayUrl\n );\n return result.hokHealth;\n },\n staleTime: 60 * 1000,\n });\n};\n\n// ============================================================================\n// Profiles (Netflix-style per-account viewing profiles, self-scoped)\n// ============================================================================\n\nexport interface HokProfile {\n id: string;\n accountUserId: string;\n name: string;\n avatarFileId: string | null;\n isKids: boolean;\n hasPin: boolean;\n languages: string[];\n maturityLimit: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nconst PROFILE_FIELDS = `\n id accountUserId name avatarFileId isKids hasPin languages maturityLimit\n createdAt updatedAt\n`;\n\n/** The calling account's viewing profiles (self-scoped to ctx.actorId). */\nexport const useMyProfiles = () => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'profiles'],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokMyProfiles: HokProfile[] }>(\n `query HokMyProfiles { hokMyProfiles { ${PROFILE_FIELDS} } }`,\n {},\n apiGatewayUrl\n );\n return result.hokMyProfiles;\n },\n });\n};\n\nexport interface CreateProfileInput {\n name: string;\n avatarFileId?: string;\n isKids?: boolean;\n languages?: string[];\n maturityLimit?: string;\n pin?: string;\n}\n\nexport const useCreateProfile = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateProfileInput) => {\n const result = await hookmoviesQuery<{ hokCreateProfile: HokProfile }>(\n `mutation HokCreateProfile($input: HokCreateProfileInput!) {\n hokCreateProfile(input: $input) { ${PROFILE_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateProfile;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'profiles'] });\n },\n });\n};\n\nexport interface UpdateProfileInput {\n name?: string;\n avatarFileId?: string;\n isKids?: boolean;\n languages?: string[];\n maturityLimit?: string;\n pin?: string;\n}\n\nexport const useUpdateProfile = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, input }: { id: string; input: UpdateProfileInput }) => {\n const result = await hookmoviesQuery<{ hokUpdateProfile: HokProfile }>(\n `mutation HokUpdateProfile($id: ID!, $input: HokUpdateProfileInput!) {\n hokUpdateProfile(id: $id, input: $input) { ${PROFILE_FIELDS} }\n }`,\n { id, input },\n apiGatewayUrl\n );\n return result.hokUpdateProfile;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'profiles'] });\n },\n });\n};\n\nexport const useDeleteProfile = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteProfile: boolean }>(\n `mutation HokDeleteProfile($id: ID!) { hokDeleteProfile(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteProfile;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'profiles'] });\n },\n });\n};\n\n// ============================================================================\n// Watch parties (synchronized co-viewing rooms, self-scoped host/join)\n// ============================================================================\n\nexport type HokWatchPartyStatus = 'LIVE' | 'PAUSED' | 'ENDED';\n\nexport interface HokWatchPartyMember {\n id: string;\n partyId: string;\n userId: string;\n role: string;\n joinedAt: string;\n}\n\nexport interface HokWatchParty {\n id: string;\n titleId: string;\n episodeId: string | null;\n hostUserId: string;\n isPlaying: boolean;\n positionSeconds: number;\n status: HokWatchPartyStatus;\n createdAt: string;\n updatedAt: string;\n members: HokWatchPartyMember[];\n title: Pick<HokTitle, 'id' | 'title' | 'type'> | null;\n}\n\nconst WATCH_PARTY_FIELDS = `\n id titleId episodeId hostUserId isPlaying positionSeconds status createdAt updatedAt\n members { id partyId userId role joinedAt }\n title { id title type }\n`;\n\nexport interface CreateWatchPartyInput {\n titleId: string;\n episodeId?: string;\n isPlaying?: boolean;\n positionSeconds?: number;\n}\n\nexport const useCreateWatchParty = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateWatchPartyInput) => {\n const result = await hookmoviesQuery<{ hokCreateWatchParty: HokWatchParty }>(\n `mutation HokCreateWatchParty($input: HokCreateWatchPartyInput!) {\n hokCreateWatchParty(input: $input) { ${WATCH_PARTY_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateWatchParty;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'watch-party', data.id] });\n },\n });\n};\n\n/** Fetch a single watch party by id (workspace-scoped read). */\nexport const useWatchParty = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'watch-party', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokWatchParty: HokWatchParty | null }>(\n `query HokWatchParty($id: ID!) {\n hokWatchParty(id: $id) { ${WATCH_PARTY_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokWatchParty;\n },\n enabled: Boolean(id),\n });\n};\n\nexport const useJoinWatchParty = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokJoinWatchParty: HokWatchParty }>(\n `mutation HokJoinWatchParty($id: ID!) {\n hokJoinWatchParty(id: $id) { ${WATCH_PARTY_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokJoinWatchParty;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'watch-party', data.id] });\n },\n });\n};\n\nexport const useUpdatePartyPlayback = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({\n id,\n isPlaying,\n positionSeconds,\n }: {\n id: string;\n isPlaying: boolean;\n positionSeconds: number;\n }) => {\n const result = await hookmoviesQuery<{ hokUpdatePartyPlayback: HokWatchParty }>(\n `mutation HokUpdatePartyPlayback($id: ID!, $isPlaying: Boolean!, $positionSeconds: Int!) {\n hokUpdatePartyPlayback(id: $id, isPlaying: $isPlaying, positionSeconds: $positionSeconds) {\n ${WATCH_PARTY_FIELDS}\n }\n }`,\n { id, isPlaying, positionSeconds },\n apiGatewayUrl\n );\n return result.hokUpdatePartyPlayback;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'watch-party', data.id] });\n },\n });\n};\n\n// ============================================================================\n// Review helpfulness votes (self-scoped; invalidate reviews)\n// ============================================================================\n\nexport const useVoteReviewHelpful = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (reviewId: string) => {\n const result = await hookmoviesQuery<{ hokVoteReviewHelpful: HokReview }>(\n `mutation HokVoteReviewHelpful($reviewId: ID!) {\n hokVoteReviewHelpful(reviewId: $reviewId) {\n ${REVIEW_FIELDS}\n title { id title }\n }\n }`,\n { reviewId },\n apiGatewayUrl\n );\n return result.hokVoteReviewHelpful;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\nexport const useUnvoteReviewHelpful = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (reviewId: string) => {\n const result = await hookmoviesQuery<{ hokUnvoteReviewHelpful: HokReview }>(\n `mutation HokUnvoteReviewHelpful($reviewId: ID!) {\n hokUnvoteReviewHelpful(reviewId: $reviewId) {\n ${REVIEW_FIELDS}\n title { id title }\n }\n }`,\n { reviewId },\n apiGatewayUrl\n );\n return result.hokUnvoteReviewHelpful;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\n// ============================================================================\n// Moderation (report content self-scoped; review queue wspace-scoped)\n// ============================================================================\n\nexport type HokModerationSeverity = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';\n\nexport type HokModerationStatus = 'OPEN' | 'REVIEWING' | 'RESOLVED' | 'DISMISSED';\n\nexport interface HokModerationFlag {\n id: string;\n entityId: string;\n entityType: string;\n reason: string;\n reportedByUserId: string;\n resolution: string | null;\n severity: HokModerationSeverity;\n status: HokModerationStatus;\n createdAt: string;\n updatedAt: string;\n}\n\nconst MODERATION_FIELDS = `\n id entityId entityType reason reportedByUserId resolution severity status\n createdAt updatedAt\n`;\n\nexport interface ReportContentInput {\n entityType: string;\n entityId: string;\n reason: string;\n}\n\nexport const useReportContent = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ entityType, entityId, reason }: ReportContentInput) => {\n const result = await hookmoviesQuery<{ hokReportContent: HokModerationFlag }>(\n `mutation HokReportContent($entityType: String!, $entityId: ID!, $reason: String!) {\n hokReportContent(entityType: $entityType, entityId: $entityId, reason: $reason) {\n ${MODERATION_FIELDS}\n }\n }`,\n { entityType, entityId, reason },\n apiGatewayUrl\n );\n return result.hokReportContent;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'moderation-flags'] });\n },\n });\n};\n\nexport const useModerationFlags = (\n status?: HokModerationStatus,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'moderation-flags', status ?? '', pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{\n hokListModerationFlags: HokConnection<HokModerationFlag>;\n }>(\n `query HokModerationFlags($pagination: PaginationInput, $status: HokModerationStatus) {\n hokListModerationFlags(pagination: $pagination, status: $status) {\n items { ${MODERATION_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status },\n apiGatewayUrl\n );\n return result.hokListModerationFlags;\n },\n });\n};\n\nexport const useResolveModerationFlag = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({\n id,\n status,\n resolution,\n }: {\n id: string;\n status: HokModerationStatus;\n resolution?: string;\n }) => {\n const result = await hookmoviesQuery<{ hokResolveModerationFlag: HokModerationFlag }>(\n `mutation HokResolveModerationFlag($id: ID!, $status: HokModerationStatus!, $resolution: String) {\n hokResolveModerationFlag(id: $id, status: $status, resolution: $resolution) {\n ${MODERATION_FIELDS}\n }\n }`,\n { id, status, resolution },\n apiGatewayUrl\n );\n return result.hokResolveModerationFlag;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'moderation-flags'] });\n },\n });\n};\n\n// ============================================================================\n// Preferences (onboarding — languages / content types / maturity, self-scoped)\n// ============================================================================\n\nexport interface HokPreferences {\n id: string;\n userId: string;\n languages: string[];\n contentTypes: string[];\n maturityLimit: string | null;\n onboardedAt: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nconst PREFERENCES_FIELDS = `\n id userId languages contentTypes maturityLimit onboardedAt createdAt updatedAt\n`;\n\nexport const useMyPreferences = () => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'preferences'],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokMyPreferences: HokPreferences | null }>(\n `query HokMyPreferences { hokMyPreferences { ${PREFERENCES_FIELDS} } }`,\n {},\n apiGatewayUrl\n );\n return result.hokMyPreferences;\n },\n });\n};\n\nexport interface SetPreferencesInput {\n languages?: string[];\n contentTypes?: string[];\n maturityLimit?: string;\n onboarded?: boolean;\n}\n\nexport const useSetPreferences = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: SetPreferencesInput) => {\n const result = await hookmoviesQuery<{ hokSetPreferences: HokPreferences }>(\n `mutation HokSetPreferences($input: HokSetPreferencesInput!) {\n hokSetPreferences(input: $input) { ${PREFERENCES_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokSetPreferences;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'preferences'] });\n },\n });\n};\n\n// ============================================================================\n// FAST channels & linear schedule (wspace-scoped)\n// ============================================================================\n\nexport type HokChannelStatus = 'DRAFT' | 'LIVE' | 'OFFLINE';\n\nexport interface HokChannel {\n id: string;\n name: string;\n slug: string | null;\n description: string | null;\n language: string;\n timezone: string;\n genres: string[];\n status: HokChannelStatus;\n logoFileId: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokScheduleBlock {\n id: string;\n channelId: string;\n titleId: string | null;\n episodeId: string | null;\n startAt: string;\n endAt: string;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title' | 'type'> | null;\n channel: Pick<HokChannel, 'id' | 'name'> | null;\n}\n\nconst CHANNEL_FIELDS = `\n id name slug description language timezone genres status logoFileId\n createdAt updatedAt\n`;\n\nconst SCHEDULE_BLOCK_FIELDS = `\n id channelId titleId episodeId startAt endAt createdAt updatedAt\n title { id title type }\n channel { id name }\n`;\n\nexport const useChannels = (\n language?: string,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'channels', language ?? '', pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListChannels: HokConnection<HokChannel> }>(\n `query HokChannels($pagination: PaginationInput, $language: String) {\n hokListChannels(pagination: $pagination, language: $language) {\n items { ${CHANNEL_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, language: language?.trim() ? language.trim() : undefined },\n apiGatewayUrl\n );\n return result.hokListChannels;\n },\n });\n};\n\nexport const useChannelSchedule = (channelId: string | undefined, from?: string, to?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'channel-schedule', channelId ?? '', from ?? '', to ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokChannelSchedule: HokScheduleBlock[] }>(\n `query HokChannelSchedule($channelId: ID!, $from: DateTime, $to: DateTime) {\n hokChannelSchedule(channelId: $channelId, from: $from, to: $to) {\n ${SCHEDULE_BLOCK_FIELDS}\n }\n }`,\n { channelId, from, to },\n apiGatewayUrl\n );\n return result.hokChannelSchedule;\n },\n enabled: Boolean(channelId),\n });\n};\n\nexport const useNowPlaying = (channelId: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'now-playing', channelId ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokNowPlaying: HokScheduleBlock | null }>(\n `query HokNowPlaying($channelId: ID!) {\n hokNowPlaying(channelId: $channelId) { ${SCHEDULE_BLOCK_FIELDS} }\n }`,\n { channelId },\n apiGatewayUrl\n );\n return result.hokNowPlaying;\n },\n enabled: Boolean(channelId),\n });\n};\n\nexport interface CreateChannelInput {\n name: string;\n slug?: string;\n description?: string;\n language?: string;\n timezone?: string;\n genres?: string[];\n logoFileId?: string;\n}\n\nexport const useCreateChannel = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateChannelInput) => {\n const result = await hookmoviesQuery<{ hokCreateChannel: HokChannel }>(\n `mutation HokCreateChannel($input: HokCreateChannelInput!) {\n hokCreateChannel(input: $input) { ${CHANNEL_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateChannel;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'channels'] });\n },\n });\n};\n\nexport interface ScheduleBlockInput {\n channelId: string;\n startAt: string;\n endAt: string;\n titleId?: string;\n episodeId?: string;\n}\n\nexport const useScheduleBlock = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: ScheduleBlockInput) => {\n const result = await hookmoviesQuery<{ hokScheduleBlock: HokScheduleBlock }>(\n `mutation HokScheduleBlock($input: HokScheduleBlockInput!) {\n hokScheduleBlock(input: $input) { ${SCHEDULE_BLOCK_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokScheduleBlock;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'channel-schedule', data.channelId] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'now-playing', data.channelId] });\n },\n });\n};\n\nexport const useRemoveScheduleBlock = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id }: { id: string; channelId: string }) => {\n const result = await hookmoviesQuery<{ hokRemoveScheduleBlock: boolean }>(\n `mutation HokRemoveScheduleBlock($id: ID!) { hokRemoveScheduleBlock(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokRemoveScheduleBlock;\n },\n onSuccess: (_data, { channelId }) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'channel-schedule', channelId] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'now-playing', channelId] });\n },\n });\n};\n\n// ============================================================================\n// Localization mutations (wspace-scoped; reads via useLocalizations above)\n// ============================================================================\n\nexport interface CreateLocalizationInput {\n language: string;\n fileId: string;\n kind?: HokLocalizationKind;\n titleId?: string;\n episodeId?: string;\n isDefault?: boolean;\n localizedTitle?: string;\n localizedSynopsis?: string;\n}\n\nexport const useCreateLocalization = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateLocalizationInput) => {\n const result = await hookmoviesQuery<{ hokCreateLocalization: HokLocalization }>(\n `mutation HokCreateLocalization($input: HokCreateLocalizationInput!) {\n hokCreateLocalization(input: $input) { ${LOCALIZATION_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateLocalization;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'localizations'] });\n },\n });\n};\n\nexport const useDeleteLocalization = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteLocalization: boolean }>(\n `mutation HokDeleteLocalization($id: ID!) { hokDeleteLocalization(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteLocalization;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'localizations'] });\n },\n });\n};\n\nexport const useSetDefaultLocalization = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokSetDefaultLocalization: HokLocalization }>(\n `mutation HokSetDefaultLocalization($id: ID!) {\n hokSetDefaultLocalization(id: $id) { ${LOCALIZATION_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokSetDefaultLocalization;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'localizations'] });\n },\n });\n};\n\n// ============================================================================\n// Global-billing reuse (checkout / earnings / payouts) — GLOBAL gateway\n// ============================================================================\n\nexport interface BillingAccount {\n id: string;\n name: string | null;\n orgId: string | null;\n currency: string | null;\n creditAmount: number | null;\n isDefault: boolean | null;\n}\n\n/**\n * Billing accounts owned by the calling actor. HookMovies uses one to anchor\n * checkout orders (title purchases / rentals) and creator earnings & payouts.\n */\nexport const useMyBillingAccounts = () => {\n return useQuery({\n queryKey: [QK, 'billing-accounts'],\n queryFn: async () => {\n const result = await globalQuery<{ myBillingAccounts: BillingAccount[] }>(\n `query HokMyBillingAccounts {\n myBillingAccounts { id name orgId currency creditAmount isDefault }\n }`,\n {}\n );\n return result.myBillingAccounts;\n },\n });\n};\n\nexport type BillingOrderStatus =\n 'CREATED' | 'PAYMENT_PENDING' | 'COMPLETED' | 'FAILED' | 'CANCELED' | 'EXPIRED';\n\nexport interface BillingOrder {\n id: string;\n status: BillingOrderStatus;\n currency: string;\n subtotal: number;\n externalService: string;\n description: string | null;\n createdAt: string;\n}\n\nexport interface CreateBillingOrderResponse {\n success: boolean;\n error: string | null;\n order: BillingOrder | null;\n}\n\nexport interface BillingOrderItemInput {\n name: string;\n quantity: number;\n unitPrice: number;\n description?: string;\n}\n\nexport interface CreateBillingOrderInput {\n billingAccountId: string;\n currency: string;\n externalOrderId: string;\n externalService: string;\n subtotal: number;\n items: BillingOrderItemInput[];\n description?: string;\n expiryMinutes?: number;\n}\n\n/** Open a checkout order (e.g. a TVOD title purchase / rental) via global-billing. */\nexport const useCreateBillingOrder = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: CreateBillingOrderInput) => {\n const result = await globalQuery<{ createBillingOrder: CreateBillingOrderResponse }>(\n `mutation HokCreateBillingOrder($input: CreateBillingOrderInput!) {\n createBillingOrder(input: $input) {\n success\n error\n order { id status currency subtotal externalService description createdAt }\n }\n }`,\n { input }\n );\n return result.createBillingOrder;\n },\n onSuccess: (_data, variables) => {\n void queryClient.invalidateQueries({\n queryKey: [QK, 'billing-accounts'],\n });\n void queryClient.invalidateQueries({\n queryKey: [QK, 'earnings-summary', variables.billingAccountId],\n });\n },\n });\n};\n\nexport interface EarningsCategoryBreakdown {\n category: string;\n amount: number;\n count: number;\n}\n\nexport interface EarningsSummary {\n availableAmount: number;\n reservedAmount: number;\n paidAmount: number;\n pendingAmount: number;\n moneyAmount: number;\n creditsAmount: number;\n totalLifetimeAmount: number;\n categoryBreakdown: EarningsCategoryBreakdown[];\n}\n\nexport const useMyEarningsSummary = (billingAccountId: string | undefined) => {\n return useQuery({\n queryKey: [QK, 'earnings-summary', billingAccountId],\n queryFn: async () => {\n const result = await globalQuery<{ myEarningsSummary: EarningsSummary }>(\n `query HokMyEarningsSummary($billingAccountId: ID!) {\n myEarningsSummary(billingAccountId: $billingAccountId) {\n availableAmount reservedAmount paidAmount pendingAmount\n moneyAmount creditsAmount totalLifetimeAmount\n categoryBreakdown { category amount count }\n }\n }`,\n { billingAccountId }\n );\n return result.myEarningsSummary;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport type EarningsEntryStatus = 'AVAILABLE' | 'RESERVED' | 'PAID' | 'REVERSED';\n\nexport interface EarningsEntry {\n id: string;\n billingAccountId: string;\n amount: number;\n currency: string;\n description: string | null;\n sourceCategory: string;\n status: EarningsEntryStatus;\n availableAt: string;\n createdAt: string;\n}\n\nexport interface EarningsEntryConnection {\n items: EarningsEntry[];\n totalCount: number;\n hasMore: boolean;\n}\n\nexport interface EarningsEntryFilter {\n status?: EarningsEntryStatus;\n sourceCategory?: string;\n startDate?: string;\n endDate?: string;\n}\n\nexport const useMyEarningsEntries = (\n billingAccountId: string | undefined,\n filter?: EarningsEntryFilter,\n limit = 20,\n offset = 0\n) => {\n return useQuery({\n queryKey: [QK, 'earnings-entries', billingAccountId, filter ?? {}, limit, offset],\n queryFn: async () => {\n const result = await globalQuery<{ myEarningsEntries: EarningsEntryConnection }>(\n `query HokMyEarningsEntries($billingAccountId: ID!, $filter: EarningsEntryFilterInput, $limit: Int, $offset: Int) {\n myEarningsEntries(billingAccountId: $billingAccountId, filter: $filter, limit: $limit, offset: $offset) {\n items {\n id billingAccountId amount currency description sourceCategory status\n availableAt createdAt\n }\n totalCount\n hasMore\n }\n }`,\n { billingAccountId, filter, limit, offset }\n );\n return result.myEarningsEntries;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport type PayoutAccountType = 'BANK_ACCOUNT' | 'UPI' | 'WALLET';\n\nexport type PayoutAccountStatus =\n 'PENDING_VERIFICATION' | 'ACTIVE' | 'FAILED_VERIFICATION' | 'ARCHIVED';\n\nexport interface PayoutAccount {\n id: string;\n billingAccountId: string;\n label: string;\n displayName: string | null;\n type: PayoutAccountType;\n currency: string;\n accountLast4: string | null;\n isDefault: boolean;\n isActive: boolean;\n status: PayoutAccountStatus;\n createdAt: string;\n}\n\nexport const useMyPayoutAccounts = (billingAccountId: string | undefined) => {\n return useQuery({\n queryKey: [QK, 'payout-accounts', billingAccountId],\n queryFn: async () => {\n const result = await globalQuery<{ myPayoutAccounts: PayoutAccount[] }>(\n `query HokMyPayoutAccounts($billingAccountId: ID!) {\n myPayoutAccounts(billingAccountId: $billingAccountId) {\n id billingAccountId label displayName type currency accountLast4\n isDefault isActive status createdAt\n }\n }`,\n { billingAccountId }\n );\n return result.myPayoutAccounts;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport type PayoutRequestStatus =\n 'APPROVED' | 'PENDING' | 'PROCESSING' | 'PAID' | 'REJECTED' | 'FAILED';\n\nexport interface PayoutRequest {\n id: string;\n billingAccountId: string;\n requestedAmount: number;\n approvedAmount: number | null;\n currency: string;\n status: PayoutRequestStatus;\n provider: string;\n userNotes: string | null;\n createdAt: string;\n paidAt: string | null;\n}\n\nexport interface PayoutRequestConnection {\n items: PayoutRequest[];\n totalCount: number;\n hasMore: boolean;\n}\n\nconst PAYOUT_REQUEST_FIELDS = `\n id billingAccountId requestedAmount approvedAmount currency status provider\n userNotes createdAt paidAt\n`;\n\nexport const useMyPayoutRequests = (\n billingAccountId: string | undefined,\n limit = 20,\n offset = 0\n) => {\n return useQuery({\n queryKey: [QK, 'payout-requests', billingAccountId, limit, offset],\n queryFn: async () => {\n const result = await globalQuery<{ myPayoutRequests: PayoutRequestConnection }>(\n `query HokMyPayoutRequests($billingAccountId: ID!, $limit: Int, $offset: Int) {\n myPayoutRequests(billingAccountId: $billingAccountId, limit: $limit, offset: $offset) {\n items { ${PAYOUT_REQUEST_FIELDS} }\n totalCount\n hasMore\n }\n }`,\n { billingAccountId, limit, offset }\n );\n return result.myPayoutRequests;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport interface RequestPayoutInput {\n billingAccountId: string;\n payoutAccountId: string;\n amount: number;\n currency: string;\n notes?: string;\n}\n\nexport const useRequestPayout = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: RequestPayoutInput) => {\n const result = await globalQuery<{ requestBillingPayout: PayoutRequest }>(\n `mutation HokRequestPayout($input: RequestPayoutInput!) {\n requestBillingPayout(input: $input) { ${PAYOUT_REQUEST_FIELDS} }\n }`,\n { input }\n );\n return result.requestBillingPayout;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({\n queryKey: [QK, 'payout-requests', data.billingAccountId],\n });\n void queryClient.invalidateQueries({\n queryKey: [QK, 'earnings-summary', data.billingAccountId],\n });\n },\n });\n};\n\n// ============================================================================\n// Global-auth reuse (developer API keys) — GLOBAL gateway\n// ============================================================================\n\nexport interface ApiKey {\n id: string;\n name: string;\n prefix: string;\n scopes: string[];\n appId: string;\n appName: string | null;\n createdAt: string;\n expiresAt: string | null;\n lastUsedAt: string | null;\n}\n\nexport interface ApiKeyConnection {\n apiKeys: ApiKey[];\n totalCount: number;\n hasMore: boolean;\n}\n\nconst API_KEY_FIELDS = `\n id name prefix scopes appId appName createdAt expiresAt lastUsedAt\n`;\n\nexport const useMyApiKeys = (pagination?: HokPaginationInput) => {\n return useQuery({\n queryKey: [QK, 'api-keys', pagination ?? {}],\n queryFn: async () => {\n const result = await globalQuery<{ myApiKeys: ApiKeyConnection }>(\n `query HokMyApiKeys($pagination: PaginationInput) {\n myApiKeys(pagination: $pagination) {\n apiKeys { ${API_KEY_FIELDS} }\n totalCount\n hasMore\n }\n }`,\n { pagination }\n );\n return result.myApiKeys;\n },\n });\n};\n\nexport interface ApiKeyResult {\n apiKey: string;\n apiSecret: string;\n keyId: string;\n}\n\nexport interface GenerateApiKeyInput {\n appId: string;\n name: string;\n scope: string[];\n expiresAt?: string;\n}\n\n/**\n * Mint a developer API key. The plaintext `apiSecret` is returned exactly once —\n * the caller must surface it immediately (it is never retrievable again).\n */\nexport const useGenerateApiKey = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: GenerateApiKeyInput) => {\n const result = await globalQuery<{ generateAPIKey: ApiKeyResult }>(\n `mutation HokGenerateApiKey($input: GenerateAPIKeyInput!) {\n generateAPIKey(input: $input) { apiKey apiSecret keyId }\n }`,\n { input }\n );\n return result.generateAPIKey;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'api-keys'] });\n },\n });\n};\n\nexport const useRevokeApiKey = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (keyId: string) => {\n const result = await globalQuery<{ revokeAPIKey: boolean }>(\n `mutation HokRevokeApiKey($keyId: String!) { revokeAPIKey(keyId: $keyId) }`,\n { keyId }\n );\n return result.revokeAPIKey;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'api-keys'] });\n },\n });\n};\n\n// ============================================================================\n// Global-i18n reuse (language catalog + user language preference) — GLOBAL gateway\n// ============================================================================\n\nexport type LanguageDirection = 'LTR' | 'RTL';\n\nexport type LanguageStatus = 'ACTIVE' | 'DEPRECATED' | 'DRAFT';\n\nexport interface Language {\n id: string;\n code: string;\n name: string;\n nativeName: string;\n direction: LanguageDirection;\n status: LanguageStatus;\n isDefault: boolean;\n}\n\nexport interface LanguageList {\n items: Language[];\n total: number;\n hasMore: boolean;\n}\n\nexport interface LanguageFilter {\n status?: LanguageStatus;\n direction?: LanguageDirection;\n search?: string;\n}\n\nexport const useLanguages = (filter?: LanguageFilter, limit = 50, offset = 0) => {\n return useQuery({\n queryKey: [QK, 'languages', filter ?? {}, limit, offset],\n queryFn: async () => {\n const result = await globalQuery<{ languages: LanguageList }>(\n `query HokLanguages($filter: LanguageFilterInput, $limit: Int, $offset: Int) {\n languages(filter: $filter, limit: $limit, offset: $offset) {\n items { id code name nativeName direction status isDefault }\n total\n hasMore\n }\n }`,\n { filter, limit, offset }\n );\n return result.languages;\n },\n staleTime: 5 * 60 * 1000,\n });\n};\n\nexport interface UserLanguagePreference {\n id: string;\n userId: string;\n languageCode: string;\n}\n\nexport interface SetUserLanguagePreferenceInput {\n userId: string;\n languageCode: string;\n country?: string;\n currency?: string;\n timezone?: string;\n}\n\nexport const useSetUserLanguagePreference = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: SetUserLanguagePreferenceInput) => {\n const result = await globalQuery<{ setUserLanguagePreference: UserLanguagePreference }>(\n `mutation HokSetUserLanguagePreference($input: SetUserLanguagePreferenceInput!) {\n setUserLanguagePreference(input: $input) { id userId languageCode }\n }`,\n { input }\n );\n return result.setUserLanguagePreference;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'language-preference'] });\n },\n });\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"useHookMoviesApi.js","names":[],"sources":["../../../src/hookmovies/hooks/useHookMoviesApi.ts"],"sourcesContent":["/**\n * HookMovies API hooks\n * @module hookmovies/hooks\n *\n * Real data layer for the HookMovies workspace subgraph (`hookmovies` Hive\n * service / `wspace-hookmovies-svc`). Every hook talks to the live workspace\n * GraphQL gateway via {@link graphqlFetch} with inline operations whose fields\n * mirror `.hive-schema.graphql` exactly. No mocks.\n *\n * Conventions (mirrors microfe-kadaikodi):\n * - `hookmoviesQuery` wraps graphqlFetch({ gateway: 'workspace', workspaceToken: true })\n * and throws on GraphQL errors / missing data.\n * - One react-query `useQuery` per read op and `useMutation` per write op.\n * - Strict hand-written result interfaces — no `any`.\n * - Pagination uses the subgraph's `PaginationInput` (limit/offset/cursor) and\n * `Hok*Connection { items, pageInfo { cursor hasMore } }` shapes verbatim.\n */\n\nimport { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\n\nimport { graphqlFetch } from '@burdenoff/fe-libs/shared/graphql';\nimport { clearGraphqlFetchResponseCache } from '@burdenoff/fe-libs/shared/graphql/fetch';\n\nimport { useHookMovies } from '../context';\n\n// ============================================================================\n// Low-level query runner\n// ============================================================================\n\nconst hookmoviesQuery = async <TData>(\n query: string,\n variables: Record<string, unknown>,\n baseUrl?: string\n): Promise<TData> => {\n const response = await graphqlFetch<TData>({\n gateway: 'workspace',\n baseUrl,\n query,\n variables,\n workspaceToken: true,\n });\n\n if (response.errors?.length) {\n throw new Error(response.errors[0]?.message ?? 'GraphQL request failed');\n }\n\n if (!response.data) {\n throw new Error('GraphQL response did not include data');\n }\n\n // This MFE bypasses Apollo, so fe-libs' short-lived graphqlFetch read cache\n // (~15s) would otherwise serve pre-write data to the very next refetch issued\n // by a mutation's onSuccess invalidation. Clear it after any successful\n // mutation so every downstream read is fresh (fleet-wide stale-read-after-\n // write fix).\n if (query.trimStart().startsWith('mutation')) {\n clearGraphqlFetchResponseCache();\n }\n\n return response.data;\n};\n\n/**\n * Low-level runner for the GLOBAL gateway. HookMovies reuses several platform\n * services that live in the global layer — global-billing (checkout / earnings /\n * payouts), global-auth (developer API keys) and global-i18n (languages / user\n * language preference). Those ops are global-scoped, so we do NOT attach the\n * workspace token and we let fe-libs resolve the runtime global gateway URL\n * (never the workspace `apiGatewayUrl`). Auth + locale headers are added\n * automatically by {@link graphqlFetch}.\n */\nconst globalQuery = async <TData>(\n query: string,\n variables: Record<string, unknown>\n): Promise<TData> => {\n const response = await graphqlFetch<TData>({\n gateway: 'global',\n query,\n variables,\n });\n\n if (response.errors?.length) {\n throw new Error(response.errors[0]?.message ?? 'GraphQL request failed');\n }\n\n if (!response.data) {\n throw new Error('GraphQL response did not include data');\n }\n\n // Same stale-read-after-write guard as hookmoviesQuery (see there).\n if (query.trimStart().startsWith('mutation')) {\n clearGraphqlFetchResponseCache();\n }\n\n return response.data;\n};\n\nconst QK = 'hookmovies' as const;\n\n// ============================================================================\n// Shared scalar / enum types (mirror .hive-schema.graphql)\n// ============================================================================\n\nexport interface HokPaginationInput {\n cursor?: string | null;\n limit?: number | null;\n offset?: number | null;\n}\n\nexport interface HokPageInfo {\n cursor: string | null;\n hasMore: boolean;\n}\n\nexport type HokTitleType =\n | 'MOVIE'\n | 'SERIES'\n | 'SHORT_FILM'\n | 'DOCUMENTARY'\n | 'ANIME'\n | 'SHORT_FORM'\n | 'LONG_FORM'\n | 'LIVE_EVENT'\n | 'TRAILER'\n | 'COLLECTION'\n | 'FAST_CHANNEL';\n\nexport type HokTitleStatus =\n 'DRAFT' | 'IN_REVIEW' | 'SCHEDULED' | 'PUBLISHED' | 'UNPUBLISHED' | 'ARCHIVED';\n\nexport type HokProductionStatus =\n 'DEVELOPMENT' | 'GREENLIT' | 'IN_PRODUCTION' | 'POST_PRODUCTION' | 'RELEASED' | 'SHELVED';\n\nexport type HokAuditionStatus = 'OPEN' | 'REVIEWING' | 'CALLBACKS' | 'CLOSED' | 'CANCELLED';\n\nexport type HokApplicationStatus =\n 'SUBMITTED' | 'SHORTLISTED' | 'CALLBACK' | 'OFFERED' | 'REJECTED' | 'WITHDRAWN';\n\nexport type HokCreditRole =\n | 'ACTOR'\n | 'DIRECTOR'\n | 'WRITER'\n | 'PRODUCER'\n | 'CINEMATOGRAPHER'\n | 'EDITOR'\n | 'COMPOSER'\n | 'VOICE_ACTOR'\n | 'CREW';\n\nexport type HokReviewStatus = 'PENDING' | 'PUBLISHED' | 'HIDDEN' | 'REMOVED';\n\nexport type HokRightsWindowStatus = 'DRAFT' | 'PENDING' | 'ACTIVE' | 'EXPIRED' | 'REVOKED';\n\nexport type HokMonetizationMode = 'FREE_AVOD' | 'SVOD' | 'TVOD_RENT' | 'TVOD_BUY' | 'PPV' | 'FAST';\n\nexport type HokEntitlementSource = 'SUBSCRIPTION' | 'PURCHASE' | 'RENTAL' | 'PROMO' | 'FREE';\n\nexport type HokEntitlementStatus = 'ACTIVE' | 'EXPIRED' | 'REVOKED';\n\nexport type HokListKind = 'WATCHLIST' | 'PLAYLIST';\n\nexport type HokListVisibility = 'PRIVATE' | 'UNLISTED' | 'PUBLIC';\n\n// ============================================================================\n// Domain object types\n// ============================================================================\n\nexport interface HokStudio {\n id: string;\n name: string;\n slug: string | null;\n description: string | null;\n country: string | null;\n websiteUrl: string | null;\n isVerified: boolean;\n tags: string[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokPerson {\n id: string;\n name: string;\n biography: string | null;\n knownFor: string | null;\n primaryLanguage: string | null;\n portfolioRef: string | null;\n tags: string[];\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokCredit {\n id: string;\n personId: string;\n titleId: string;\n role: HokCreditRole;\n characterName: string | null;\n billingOrder: number;\n person: Pick<HokPerson, 'id' | 'name' | 'knownFor'> | null;\n}\n\nexport interface HokEpisodeSummary {\n id: string;\n name: string;\n number: number;\n seasonId: string | null;\n synopsis: string | null;\n runtimeMinutes: number | null;\n airDate: string | null;\n}\n\nexport interface HokSeasonSummary {\n id: string;\n name: string | null;\n number: number;\n synopsis: string | null;\n}\n\nexport interface HokTitle {\n id: string;\n title: string;\n slug: string | null;\n type: HokTitleType;\n status: HokTitleStatus;\n synopsis: string | null;\n genres: string[];\n tags: string[];\n originalLanguage: string | null;\n originCountry: string | null;\n releaseYear: number | null;\n releaseDate: string | null;\n runtimeMinutes: number | null;\n certification: string | null;\n aiDisclosure: boolean;\n studioId: string | null;\n posterFileId: string | null;\n backdropFileId: string | null;\n trailerFileId: string | null;\n videoFileId: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokTitleDetail extends HokTitle {\n studio: Pick<HokStudio, 'id' | 'name'> | null;\n credits: HokCredit[];\n seasons: HokSeasonSummary[];\n episodes: HokEpisodeSummary[];\n}\n\nexport interface HokProduction {\n id: string;\n title: string;\n logline: string | null;\n synopsis: string | null;\n status: HokProductionStatus;\n currency: string;\n budgetMinorUnits: string;\n studioId: string | null;\n producerId: string | null;\n resultingTitleId: string | null;\n artistrybaseProjectRef: string | null;\n tags: string[];\n startDate: string | null;\n endDate: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokAuditionSummary {\n id: string;\n roleName: string;\n status: HokAuditionStatus;\n isMinorRole: boolean;\n payMinorUnits: string;\n currency: string;\n location: string | null;\n language: string | null;\n submissionDeadline: string | null;\n}\n\nexport interface HokProductionDetail extends HokProduction {\n auditions: HokAuditionSummary[];\n}\n\nexport interface HokAudition {\n id: string;\n productionId: string;\n roleName: string;\n description: string | null;\n status: HokAuditionStatus;\n isMinorRole: boolean;\n payMinorUnits: string;\n currency: string;\n location: string | null;\n language: string | null;\n submissionDeadline: string | null;\n createdAt: string;\n updatedAt: string;\n production: Pick<HokProduction, 'id' | 'title'> | null;\n}\n\nexport interface HokApplication {\n id: string;\n auditionId: string;\n applicantId: string;\n coverNote: string | null;\n score: number | null;\n status: HokApplicationStatus;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokReview {\n id: string;\n titleId: string;\n authorId: string;\n score: number;\n body: string | null;\n hasSpoilers: boolean;\n helpfulCount: number;\n verifiedWatch: boolean;\n status: HokReviewStatus;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title'> | null;\n}\n\nexport interface HokRightsWindow {\n id: string;\n titleId: string;\n status: HokRightsWindowStatus;\n modes: HokMonetizationMode[];\n territories: string[];\n exclusive: boolean;\n currency: string;\n licenseeId: string | null;\n startsAt: string | null;\n endsAt: string | null;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title'> | null;\n}\n\nexport interface HokEntitlement {\n id: string;\n titleId: string;\n userId: string;\n mode: HokMonetizationMode;\n source: HokEntitlementSource;\n status: HokEntitlementStatus;\n territory: string | null;\n expiresAt: string | null;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title'> | null;\n}\n\nexport interface HokList {\n id: string;\n name: string;\n description: string | null;\n kind: HokListKind;\n visibility: HokListVisibility;\n ownerId: string;\n itemCount: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokWatchProgress {\n id: string;\n titleId: string;\n episodeId: string | null;\n positionSeconds: number;\n completed: boolean;\n lastDevice: string | null;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title' | 'type'> | null;\n}\n\n// ============================================================================\n// Connection wrappers\n// ============================================================================\n\ninterface HokConnection<TItem> {\n items: TItem[];\n pageInfo: HokPageInfo;\n /** Total rows matching the current filters, across all pages. */\n totalCount: number;\n}\n\n// ============================================================================\n// Inline field selections (reused across ops)\n// ============================================================================\n\nconst TITLE_FIELDS = `\n id title slug type status synopsis genres tags originalLanguage originCountry\n releaseYear releaseDate runtimeMinutes certification aiDisclosure studioId\n posterFileId backdropFileId trailerFileId videoFileId\n createdAt updatedAt\n`;\n\nconst STUDIO_FIELDS = `\n id name slug description country websiteUrl isVerified tags createdAt updatedAt\n`;\n\nconst PERSON_FIELDS = `\n id name biography knownFor primaryLanguage portfolioRef tags createdAt updatedAt\n`;\n\nconst PRODUCTION_FIELDS = `\n id title logline synopsis status currency budgetMinorUnits studioId producerId\n resultingTitleId artistrybaseProjectRef tags startDate endDate createdAt updatedAt\n`;\n\nconst AUDITION_FIELDS = `\n id productionId roleName description status isMinorRole payMinorUnits currency\n location language submissionDeadline createdAt updatedAt\n`;\n\nconst REVIEW_FIELDS = `\n id titleId authorId score body hasSpoilers helpfulCount verifiedWatch status\n createdAt updatedAt\n`;\n\nconst RIGHTS_FIELDS = `\n id titleId status modes territories exclusive currency licenseeId startsAt endsAt\n createdAt updatedAt\n`;\n\nconst LIST_FIELDS = `\n id name description kind visibility ownerId itemCount createdAt updatedAt\n`;\n\nconst PAGE_INFO = `pageInfo { cursor hasMore }\n totalCount`;\n\n// ============================================================================\n// Titles\n// ============================================================================\n\nexport interface HokTitleFilters {\n status?: HokTitleStatus;\n type?: HokTitleType;\n studioId?: string;\n}\n\nexport const useTitles = (\n filters: HokTitleFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 },\n search?: string\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'titles', filters, pagination, search ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListTitles: HokConnection<HokTitle> }>(\n `query HokTitles($pagination: PaginationInput, $search: String, $status: HokTitleStatus, $type: HokTitleType, $studioId: ID) {\n hokListTitles(pagination: $pagination, search: $search, status: $status, type: $type, studioId: $studioId) {\n items { ${TITLE_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n {\n pagination,\n search: search?.trim() ? search.trim() : undefined,\n status: filters.status,\n type: filters.type,\n studioId: filters.studioId,\n },\n apiGatewayUrl\n );\n return result.hokListTitles;\n },\n });\n};\n\nexport const useTitle = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'title', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokTitle: HokTitleDetail | null }>(\n `query HokTitle($id: ID!) {\n hokTitle(id: $id) {\n ${TITLE_FIELDS}\n studio { id name }\n credits {\n id personId titleId role characterName billingOrder\n person { id name knownFor }\n }\n seasons { id name number synopsis }\n episodes { id name number seasonId synopsis runtimeMinutes airDate }\n }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokTitle;\n },\n enabled: Boolean(id),\n });\n};\n\nexport interface CreateTitleInput {\n title: string;\n type?: HokTitleType;\n synopsis?: string;\n genres?: string[];\n tags?: string[];\n originalLanguage?: string;\n originCountry?: string;\n releaseYear?: number;\n runtimeMinutes?: number;\n certification?: string;\n slug?: string;\n studioId?: string;\n aiDisclosure?: boolean;\n}\n\nexport const useCreateTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateTitleInput) => {\n const result = await hookmoviesQuery<{ hokCreateTitle: HokTitle }>(\n `mutation HokCreateTitle($input: HokCreateTitleInput!) {\n hokCreateTitle(input: $input) { ${TITLE_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateTitle;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n },\n });\n};\n\nexport interface UpdateTitleInput {\n title?: string;\n type?: HokTitleType;\n synopsis?: string;\n genres?: string[];\n tags?: string[];\n originalLanguage?: string;\n originCountry?: string;\n releaseYear?: number;\n runtimeMinutes?: number;\n certification?: string;\n slug?: string;\n studioId?: string;\n aiDisclosure?: boolean;\n posterFileId?: string;\n backdropFileId?: string;\n trailerFileId?: string;\n videoFileId?: string;\n}\n\nexport const useUpdateTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, input }: { id: string; input: UpdateTitleInput }) => {\n const result = await hookmoviesQuery<{ hokUpdateTitle: HokTitle }>(\n `mutation HokUpdateTitle($id: ID!, $input: HokUpdateTitleInput!) {\n hokUpdateTitle(id: $id, input: $input) { ${TITLE_FIELDS} }\n }`,\n { id, input },\n apiGatewayUrl\n );\n return result.hokUpdateTitle;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.id] });\n },\n });\n};\n\nexport const useTransitionTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, status }: { id: string; status: HokTitleStatus }) => {\n const result = await hookmoviesQuery<{ hokTransitionTitle: HokTitle }>(\n `mutation HokTransitionTitle($id: ID!, $status: HokTitleStatus!) {\n hokTransitionTitle(id: $id, status: $status) { ${TITLE_FIELDS} }\n }`,\n { id, status },\n apiGatewayUrl\n );\n return result.hokTransitionTitle;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.id] });\n },\n });\n};\n\nexport const useArchiveTitle = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokArchiveTitle: boolean }>(\n `mutation HokArchiveTitle($id: ID!) { hokArchiveTitle(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokArchiveTitle;\n },\n onSuccess: (_data, id) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'titles'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', id] });\n },\n });\n};\n\n// ============================================================================\n// Studios\n// ============================================================================\n\nexport const useStudios = (\n pagination: HokPaginationInput = { limit: 50, offset: 0 },\n search?: string\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'studios', pagination, search ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListStudios: HokConnection<HokStudio> }>(\n `query HokStudios($pagination: PaginationInput, $search: String) {\n hokListStudios(pagination: $pagination, search: $search) {\n items { ${STUDIO_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, search: search?.trim() ? search.trim() : undefined },\n apiGatewayUrl\n );\n return result.hokListStudios;\n },\n });\n};\n\nexport interface CreateStudioInput {\n name: string;\n slug?: string;\n description?: string;\n country?: string;\n websiteUrl?: string;\n tags?: string[];\n}\n\nexport const useCreateStudio = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateStudioInput) => {\n const result = await hookmoviesQuery<{ hokCreateStudio: HokStudio }>(\n `mutation HokCreateStudio($input: HokCreateStudioInput!) {\n hokCreateStudio(input: $input) { ${STUDIO_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateStudio;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'studios'] });\n },\n });\n};\n\n// ============================================================================\n// People\n// ============================================================================\n\nexport const usePeople = (\n pagination: HokPaginationInput = { limit: 50, offset: 0 },\n search?: string\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'people', pagination, search ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListPeople: HokConnection<HokPerson> }>(\n `query HokPeople($pagination: PaginationInput, $search: String) {\n hokListPeople(pagination: $pagination, search: $search) {\n items { ${PERSON_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, search: search?.trim() ? search.trim() : undefined },\n apiGatewayUrl\n );\n return result.hokListPeople;\n },\n });\n};\n\nexport interface CreatePersonInput {\n name: string;\n biography?: string;\n knownFor?: string;\n primaryLanguage?: string;\n portfolioRef?: string;\n tags?: string[];\n}\n\nexport const useCreatePerson = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreatePersonInput) => {\n const result = await hookmoviesQuery<{ hokCreatePerson: HokPerson }>(\n `mutation HokCreatePerson($input: HokCreatePersonInput!) {\n hokCreatePerson(input: $input) { ${PERSON_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreatePerson;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'people'] });\n },\n });\n};\n\n// ============================================================================\n// Productions\n// ============================================================================\n\nexport interface HokProductionFilters {\n status?: HokProductionStatus;\n studioId?: string;\n}\n\nexport const useProductions = (\n filters: HokProductionFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'productions', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListProductions: HokConnection<HokProduction> }>(\n `query HokProductions($pagination: PaginationInput, $status: HokProductionStatus, $studioId: ID) {\n hokListProductions(pagination: $pagination, status: $status, studioId: $studioId) {\n items { ${PRODUCTION_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, studioId: filters.studioId },\n apiGatewayUrl\n );\n return result.hokListProductions;\n },\n });\n};\n\nexport const useProduction = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'production', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokProduction: HokProductionDetail | null }>(\n `query HokProduction($id: ID!) {\n hokProduction(id: $id) {\n ${PRODUCTION_FIELDS}\n auditions {\n id roleName status isMinorRole payMinorUnits currency location language submissionDeadline\n }\n }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokProduction;\n },\n enabled: Boolean(id),\n });\n};\n\nexport interface CreateProductionInput {\n title: string;\n logline?: string;\n synopsis?: string;\n currency?: string;\n budgetMinorUnits?: string;\n studioId?: string;\n producerId?: string;\n artistrybaseProjectRef?: string;\n tags?: string[];\n startDate?: string;\n endDate?: string;\n}\n\nexport const useCreateProduction = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateProductionInput) => {\n const result = await hookmoviesQuery<{ hokCreateProduction: HokProduction }>(\n `mutation HokCreateProduction($input: HokCreateProductionInput!) {\n hokCreateProduction(input: $input) { ${PRODUCTION_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateProduction;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'productions'] });\n },\n });\n};\n\nexport const useTransitionProduction = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, status }: { id: string; status: HokProductionStatus }) => {\n const result = await hookmoviesQuery<{ hokTransitionProduction: HokProduction }>(\n `mutation HokTransitionProduction($id: ID!, $status: HokProductionStatus!) {\n hokTransitionProduction(id: $id, status: $status) { ${PRODUCTION_FIELDS} }\n }`,\n { id, status },\n apiGatewayUrl\n );\n return result.hokTransitionProduction;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'productions'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'production', data.id] });\n },\n });\n};\n\n// ============================================================================\n// Auditions & Applications\n// ============================================================================\n\nexport interface HokAuditionFilters {\n status?: HokAuditionStatus;\n productionId?: string;\n}\n\nexport const useAuditions = (\n filters: HokAuditionFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'auditions', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListAuditions: HokConnection<HokAudition> }>(\n `query HokAuditions($pagination: PaginationInput, $status: HokAuditionStatus, $productionId: ID) {\n hokListAuditions(pagination: $pagination, status: $status, productionId: $productionId) {\n items {\n ${AUDITION_FIELDS}\n production { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, productionId: filters.productionId },\n apiGatewayUrl\n );\n return result.hokListAuditions;\n },\n });\n};\n\n/**\n * Resolve a single audition by id. The subgraph exposes no `hokAudition(id)`\n * root field, so we read the (workspace-scoped) audition list and pick the row.\n * Fetched with a generous page size since auditions are workspace-bounded.\n */\nexport const useAuditionById = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'audition-by-id', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListAuditions: HokConnection<HokAudition> }>(\n `query HokAuditionLookup($pagination: PaginationInput) {\n hokListAuditions(pagination: $pagination) {\n items {\n ${AUDITION_FIELDS}\n production { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination: { limit: 200, offset: 0 } },\n apiGatewayUrl\n );\n return result.hokListAuditions.items.find((a) => a.id === id) ?? null;\n },\n enabled: Boolean(id),\n });\n};\n\nexport const useAuditionApplications = (auditionId: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'applications', auditionId],\n queryFn: async () => {\n // hokListApplications returns HokApplicationConnection (items +\n // pageInfo + totalCount), not a bare list.\n const result = await hookmoviesQuery<{\n hokListApplications: { items: HokApplication[] };\n }>(\n `query HokApplications($auditionId: ID!) {\n hokListApplications(auditionId: $auditionId) {\n items {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }\n }`,\n { auditionId },\n apiGatewayUrl\n );\n return result.hokListApplications.items;\n },\n enabled: Boolean(auditionId),\n });\n};\n\nexport interface CreateAuditionInput {\n productionId: string;\n roleName: string;\n description?: string;\n payMinorUnits?: string;\n currency?: string;\n location?: string;\n language?: string;\n isMinorRole?: boolean;\n submissionDeadline?: string;\n}\n\nexport const useCreateAudition = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateAuditionInput) => {\n const result = await hookmoviesQuery<{ hokCreateAudition: HokAudition }>(\n `mutation HokCreateAudition($input: HokCreateAuditionInput!) {\n hokCreateAudition(input: $input) { ${AUDITION_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateAudition;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'auditions'] });\n },\n });\n};\n\nexport const useCloseAudition = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokCloseAudition: HokAudition }>(\n `mutation HokCloseAudition($id: ID!) {\n hokCloseAudition(id: $id) { ${AUDITION_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokCloseAudition;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'auditions'] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'audition-by-id', data.id] });\n },\n });\n};\n\nexport interface ApplyToAuditionInput {\n auditionId: string;\n coverNote?: string;\n selfTapeFileId?: string;\n}\n\nexport const useApplyToAudition = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: ApplyToAuditionInput) => {\n const result = await hookmoviesQuery<{ hokApplyToAudition: HokApplication }>(\n `mutation HokApplyToAudition($input: HokApplyToAuditionInput!) {\n hokApplyToAudition(input: $input) {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokApplyToAudition;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'applications', data.auditionId] });\n },\n });\n};\n\nexport const useScoreApplication = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, score }: { id: string; score: number }) => {\n const result = await hookmoviesQuery<{ hokScoreApplication: HokApplication }>(\n `mutation HokScoreApplication($id: ID!, $score: Int!) {\n hokScoreApplication(id: $id, score: $score) {\n id auditionId applicantId coverNote score status createdAt updatedAt\n }\n }`,\n { id, score },\n apiGatewayUrl\n );\n return result.hokScoreApplication;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'applications', data.auditionId] });\n },\n });\n};\n\n// ============================================================================\n// Reviews\n// ============================================================================\n\nexport interface HokReviewFilters {\n status?: HokReviewStatus;\n titleId?: string;\n}\n\nexport const useReviews = (\n filters: HokReviewFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'reviews', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListReviews: HokConnection<HokReview> }>(\n `query HokReviews($pagination: PaginationInput, $status: HokReviewStatus, $titleId: ID) {\n hokListReviews(pagination: $pagination, status: $status, titleId: $titleId) {\n items {\n ${REVIEW_FIELDS}\n title { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, titleId: filters.titleId },\n apiGatewayUrl\n );\n return result.hokListReviews;\n },\n });\n};\n\nexport interface CreateReviewInput {\n titleId: string;\n score: number;\n body?: string;\n hasSpoilers?: boolean;\n aspectScores?: Record<string, unknown>;\n}\n\nexport const useCreateReview = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateReviewInput) => {\n const result = await hookmoviesQuery<{ hokCreateReview: HokReview }>(\n `mutation HokCreateReview($input: HokCreateReviewInput!) {\n hokCreateReview(input: $input) { ${REVIEW_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateReview;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\nexport const useDeleteReview = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteReview: boolean }>(\n `mutation HokDeleteReview($id: ID!) { hokDeleteReview(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteReview;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\n// ============================================================================\n// Rights Windows\n// ============================================================================\n\nexport interface HokRightsFilters {\n status?: HokRightsWindowStatus;\n titleId?: string;\n}\n\nexport const useRightsWindows = (\n filters: HokRightsFilters = {},\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'rights', filters, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{\n hokListRightsWindows: HokConnection<HokRightsWindow>;\n }>(\n `query HokRightsWindows($pagination: PaginationInput, $status: HokRightsWindowStatus, $titleId: ID) {\n hokListRightsWindows(pagination: $pagination, status: $status, titleId: $titleId) {\n items {\n ${RIGHTS_FIELDS}\n title { id title }\n }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status: filters.status, titleId: filters.titleId },\n apiGatewayUrl\n );\n return result.hokListRightsWindows;\n },\n });\n};\n\nexport interface CreateRightsWindowInput {\n titleId: string;\n modes: HokMonetizationMode[];\n territories?: string[];\n exclusive?: boolean;\n currency?: string;\n licenseeId?: string;\n startsAt?: string;\n endsAt?: string;\n contractFileId?: string;\n priceMinorUnits?: Record<string, unknown>;\n}\n\nexport const useCreateRightsWindow = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateRightsWindowInput) => {\n const result = await hookmoviesQuery<{ hokCreateRightsWindow: HokRightsWindow }>(\n `mutation HokCreateRightsWindow($input: HokCreateRightsWindowInput!) {\n hokCreateRightsWindow(input: $input) { ${RIGHTS_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateRightsWindow;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'rights'] });\n },\n });\n};\n\nexport const useTransitionRightsWindow = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, status }: { id: string; status: HokRightsWindowStatus }) => {\n const result = await hookmoviesQuery<{ hokTransitionRightsWindow: HokRightsWindow }>(\n `mutation HokTransitionRightsWindow($id: ID!, $status: HokRightsWindowStatus!) {\n hokTransitionRightsWindow(id: $id, status: $status) { ${RIGHTS_FIELDS} }\n }`,\n { id, status },\n apiGatewayUrl\n );\n return result.hokTransitionRightsWindow;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'rights'] });\n },\n });\n};\n\nexport const useRevokeEntitlement = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokRevokeEntitlement: boolean }>(\n `mutation HokRevokeEntitlement($id: ID!) { hokRevokeEntitlement(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokRevokeEntitlement;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-entitlements'] });\n },\n });\n};\n\n// ============================================================================\n// Entitlements (self-scoped)\n// ============================================================================\n\nexport const useMyEntitlements = (titleId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'my-entitlements', titleId],\n queryFn: async () => {\n // hokMyEntitlements returns HokEntitlementConnection (items + pageInfo +\n // totalCount), not a bare list — the fields below must be nested under\n // `items` or the gateway rejects the query with GRAPHQL_VALIDATION_FAILED.\n const result = await hookmoviesQuery<{\n hokMyEntitlements: { items: HokEntitlement[] };\n }>(\n `query HokMyEntitlements($titleId: ID) {\n hokMyEntitlements(titleId: $titleId) {\n items {\n id titleId userId mode source status territory expiresAt createdAt updatedAt\n title { id title }\n }\n }\n }`,\n { titleId },\n apiGatewayUrl\n );\n return result.hokMyEntitlements.items;\n },\n });\n};\n\n// ============================================================================\n// Lists / Watchlists (self-scoped)\n// ============================================================================\n\nexport const useMyLists = (\n kind?: HokListKind,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'my-lists', kind, pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokMyLists: HokConnection<HokList> }>(\n `query HokMyLists($kind: HokListKind, $pagination: PaginationInput) {\n hokMyLists(kind: $kind, pagination: $pagination) {\n items { ${LIST_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { kind, pagination },\n apiGatewayUrl\n );\n return result.hokMyLists;\n },\n });\n};\n\nexport interface CreateListInput {\n name: string;\n description?: string;\n kind?: HokListKind;\n visibility?: HokListVisibility;\n items?: Record<string, unknown>;\n}\n\nexport const useCreateList = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateListInput) => {\n const result = await hookmoviesQuery<{ hokCreateList: HokList }>(\n `mutation HokCreateList($input: HokCreateListInput!) {\n hokCreateList(input: $input) { ${LIST_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateList;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-lists'] });\n },\n });\n};\n\nexport const useDeleteList = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteList: boolean }>(\n `mutation HokDeleteList($id: ID!) { hokDeleteList(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteList;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-lists'] });\n },\n });\n};\n\n// ============================================================================\n// Watch progress / Continue Watching (self-scoped)\n// ============================================================================\n\nexport const useMyWatchProgress = (titleId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'my-watch-progress', titleId],\n queryFn: async () => {\n // hokMyWatchProgress returns HokWatchProgressConnection (items +\n // pageInfo + totalCount), not a bare list.\n const result = await hookmoviesQuery<{\n hokMyWatchProgress: { items: HokWatchProgress[] };\n }>(\n `query HokMyWatchProgress($titleId: ID) {\n hokMyWatchProgress(titleId: $titleId) {\n items {\n id titleId episodeId positionSeconds completed lastDevice updatedAt\n title { id title type }\n }\n }\n }`,\n { titleId },\n apiGatewayUrl\n );\n return result.hokMyWatchProgress.items;\n },\n });\n};\n\n// ============================================================================\n// Credits (cast & crew on a title)\n// ============================================================================\n\nexport interface HokCreateCreditInput {\n personId: string;\n titleId: string;\n role?: HokCreditRole;\n characterName?: string;\n billingOrder?: number;\n}\n\n/**\n * Attach a person to a title as cast/crew. Invalidates the affected title's\n * detail query (`[QK,'title',titleId]`) — credits are read as part of that\n * detail selection, so refetching it surfaces the new credit.\n */\nexport const useAddCredit = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateCreditInput) => {\n const result = await hookmoviesQuery<{ hokAddCredit: HokCredit }>(\n `mutation HokAddCredit($input: HokCreateCreditInput!) {\n hokAddCredit(input: $input) {\n id personId titleId role characterName billingOrder\n person { id name knownFor }\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokAddCredit;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.titleId] });\n },\n });\n};\n\n// ============================================================================\n// Seasons & Episodes (series structure under a title)\n// ============================================================================\n\nexport interface HokSeason {\n id: string;\n titleId: string;\n number: number;\n name: string | null;\n synopsis: string | null;\n airDate: string | null;\n}\n\nexport interface HokEpisode {\n id: string;\n titleId: string;\n seasonId: string | null;\n number: number;\n name: string;\n synopsis: string | null;\n runtimeMinutes: number | null;\n airDate: string | null;\n}\n\nexport interface HokCreateSeasonInput {\n titleId: string;\n number: number;\n name?: string;\n synopsis?: string;\n airDate?: string;\n}\n\n/** Add a season to a series title; refetches the title detail (seasons live there). */\nexport const useCreateSeason = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateSeasonInput) => {\n const result = await hookmoviesQuery<{ hokCreateSeason: HokSeason }>(\n `mutation HokCreateSeason($input: HokCreateSeasonInput!) {\n hokCreateSeason(input: $input) {\n id titleId number name synopsis airDate\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateSeason;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.titleId] });\n },\n });\n};\n\nexport interface HokCreateEpisodeInput {\n titleId: string;\n number: number;\n name: string;\n seasonId?: string;\n synopsis?: string;\n runtimeMinutes?: number;\n airDate?: string;\n fileId?: string;\n}\n\n/** Add an episode to a title; refetches the title detail (episodes live there). */\nexport const useCreateEpisode = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateEpisodeInput) => {\n const result = await hookmoviesQuery<{ hokCreateEpisode: HokEpisode }>(\n `mutation HokCreateEpisode($input: HokCreateEpisodeInput!) {\n hokCreateEpisode(input: $input) {\n id titleId seasonId number name synopsis runtimeMinutes airDate\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateEpisode;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'title', data.titleId] });\n },\n });\n};\n\n// ============================================================================\n// Watch progress mutation (self-scoped)\n// ============================================================================\n\nexport interface HokRecordProgressInput {\n titleId: string;\n positionSeconds: number;\n completed?: boolean;\n episodeId?: string;\n lastDevice?: string;\n}\n\n/** Record playback position for the calling user; invalidates continue-watching. */\nexport const useRecordProgress = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokRecordProgressInput) => {\n const result = await hookmoviesQuery<{ hokRecordProgress: HokWatchProgress }>(\n `mutation HokRecordProgress($input: HokRecordProgressInput!) {\n hokRecordProgress(input: $input) {\n id titleId episodeId positionSeconds completed lastDevice updatedAt\n title { id title type }\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokRecordProgress;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-watch-progress'] });\n },\n });\n};\n\n// ============================================================================\n// Entitlements — check (self) & grant (wspace)\n// ============================================================================\n\nexport interface HokEntitlementCheck {\n entitled: boolean;\n modes: HokMonetizationMode[];\n}\n\n/** Whether the calling user may watch a title, and under which monetization modes. */\nexport const useCheckEntitlement = (titleId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'check-entitlement', titleId],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokCheckEntitlement: HokEntitlementCheck }>(\n `query HokCheckEntitlement($titleId: ID!) {\n hokCheckEntitlement(titleId: $titleId) { entitled modes }\n }`,\n { titleId },\n apiGatewayUrl\n );\n return result.hokCheckEntitlement;\n },\n enabled: Boolean(titleId),\n });\n};\n\nexport interface HokGrantEntitlementInput {\n titleId: string;\n userId: string;\n mode: HokMonetizationMode;\n source?: HokEntitlementSource;\n territory?: string;\n expiresAt?: string;\n}\n\n/** Grant a user access to a title; invalidates the caller's entitlements list. */\nexport const useGrantEntitlement = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokGrantEntitlementInput) => {\n const result = await hookmoviesQuery<{ hokGrantEntitlement: HokEntitlement }>(\n `mutation HokGrantEntitlement($input: HokGrantEntitlementInput!) {\n hokGrantEntitlement(input: $input) {\n id titleId userId mode source status territory expiresAt createdAt updatedAt\n title { id title }\n }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokGrantEntitlement;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-entitlements'] });\n },\n });\n};\n\n// ============================================================================\n// List updates (self-scoped)\n// ============================================================================\n\nexport interface HokUpdateListInput {\n name?: string;\n description?: string;\n visibility?: HokListVisibility;\n items?: Record<string, unknown>;\n}\n\n/** Rename / re-scope / re-order a list's items; invalidates the caller's lists. */\nexport const useUpdateList = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, input }: { id: string; input: HokUpdateListInput }) => {\n const result = await hookmoviesQuery<{ hokUpdateList: HokList }>(\n `mutation HokUpdateList($id: ID!, $input: HokUpdateListInput!) {\n hokUpdateList(id: $id, input: $input) { ${LIST_FIELDS} }\n }`,\n { id, input },\n apiGatewayUrl\n );\n return result.hokUpdateList;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'my-lists'] });\n },\n });\n};\n\n// ============================================================================\n// Clips (short-form promos / bonus content attached to a title)\n// ============================================================================\n\nexport type HokClipStatus = 'DRAFT' | 'PUBLISHED' | 'ARCHIVED';\n\nexport interface HokClip {\n id: string;\n titleId: string;\n videoFileId: string;\n posterFileId: string | null;\n caption: string | null;\n durationSeconds: number | null;\n language: string | null;\n}\n\nconst CLIP_FIELDS = `\n id titleId videoFileId posterFileId caption durationSeconds language\n`;\n\n/** Clips for a title (optionally filtered by language). */\nexport const useClips = (\n titleId?: string,\n language?: string,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'clips', titleId ?? '', language ?? '', pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListClips: HokConnection<HokClip> }>(\n `query HokClips($pagination: PaginationInput, $titleId: ID, $language: String) {\n hokListClips(pagination: $pagination, titleId: $titleId, language: $language) {\n items { ${CLIP_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n {\n pagination,\n titleId,\n language: language?.trim() ? language.trim() : undefined,\n },\n apiGatewayUrl\n );\n return result.hokListClips;\n },\n enabled: Boolean(titleId),\n });\n};\n\nexport interface HokCreateClipInput {\n titleId: string;\n videoFileId: string;\n posterFileId?: string;\n caption?: string;\n durationSeconds?: number;\n language?: string;\n order?: number;\n}\n\n/** Attach a clip (video file ref) to a title; invalidates that title's clip list. */\nexport const useCreateClip = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: HokCreateClipInput) => {\n const result = await hookmoviesQuery<{ hokCreateClip: HokClip }>(\n `mutation HokCreateClip($input: HokCreateClipInput!) {\n hokCreateClip(input: $input) { ${CLIP_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateClip;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'clips', data.titleId] });\n },\n });\n};\n\n/**\n * Delete a clip. `hokDeleteClip` takes only the clip id, so the caller passes\n * the owning `titleId` too — used purely to invalidate the right clip list.\n */\nexport const useDeleteClip = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id }: { id: string; titleId: string }) => {\n const result = await hookmoviesQuery<{ hokDeleteClip: boolean }>(\n `mutation HokDeleteClip($id: ID!) { hokDeleteClip(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteClip;\n },\n onSuccess: (_data, { titleId }) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'clips', titleId] });\n },\n });\n};\n\n// ============================================================================\n// Localizations (subtitle / caption / dub tracks — for player track menus)\n// ============================================================================\n\nexport type HokLocalizationKind = 'SUBTITLE' | 'CAPTION' | 'DUB';\n\nexport type HokLocalizationStatus = 'DRAFT' | 'READY' | 'ARCHIVED';\n\nexport interface HokLocalization {\n id: string;\n language: string;\n kind: HokLocalizationKind;\n fileId: string;\n isDefault: boolean;\n titleId: string | null;\n episodeId: string | null;\n status: HokLocalizationStatus;\n localizedTitle: string | null;\n localizedSynopsis: string | null;\n}\n\nconst LOCALIZATION_FIELDS = `\n id language kind fileId isDefault titleId episodeId status\n localizedTitle localizedSynopsis\n`;\n\n/**\n * Localization tracks for a title (and optionally a specific episode). Used by\n * the player to build its subtitle / caption / dub track menu.\n */\nexport const useLocalizations = (titleId?: string, episodeId?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'localizations', titleId ?? '', episodeId ?? ''],\n queryFn: async () => {\n // hokListLocalizations returns HokLocalizationConnection (items +\n // pageInfo + totalCount), not a bare list.\n const result = await hookmoviesQuery<{\n hokListLocalizations: { items: HokLocalization[] };\n }>(\n `query HokLocalizations($titleId: ID, $episodeId: ID) {\n hokListLocalizations(titleId: $titleId, episodeId: $episodeId) {\n items {\n ${LOCALIZATION_FIELDS}\n }\n }\n }`,\n { titleId, episodeId },\n apiGatewayUrl\n );\n return result.hokListLocalizations.items;\n },\n enabled: Boolean(titleId) || Boolean(episodeId),\n });\n};\n\n// ============================================================================\n// Health probe (used by the dashboard service-status card)\n// ============================================================================\n\nexport const useHealth = () => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'health'],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokHealth: string }>(\n `query HokHealth { hokHealth }`,\n {},\n apiGatewayUrl\n );\n return result.hokHealth;\n },\n staleTime: 60 * 1000,\n });\n};\n\n// ============================================================================\n// Profiles (Netflix-style per-account viewing profiles, self-scoped)\n// ============================================================================\n\nexport interface HokProfile {\n id: string;\n accountUserId: string;\n name: string;\n avatarFileId: string | null;\n isKids: boolean;\n hasPin: boolean;\n languages: string[];\n maturityLimit: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nconst PROFILE_FIELDS = `\n id accountUserId name avatarFileId isKids hasPin languages maturityLimit\n createdAt updatedAt\n`;\n\n/** The calling account's viewing profiles (self-scoped to ctx.actorId). */\nexport const useMyProfiles = () => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'profiles'],\n queryFn: async () => {\n // hokMyProfiles returns HokProfileConnection (items + pageInfo +\n // totalCount), not a bare list.\n const result = await hookmoviesQuery<{ hokMyProfiles: { items: HokProfile[] } }>(\n `query HokMyProfiles { hokMyProfiles { items { ${PROFILE_FIELDS} } } }`,\n {},\n apiGatewayUrl\n );\n return result.hokMyProfiles.items;\n },\n });\n};\n\nexport interface CreateProfileInput {\n name: string;\n avatarFileId?: string;\n isKids?: boolean;\n languages?: string[];\n maturityLimit?: string;\n pin?: string;\n}\n\nexport const useCreateProfile = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateProfileInput) => {\n const result = await hookmoviesQuery<{ hokCreateProfile: HokProfile }>(\n `mutation HokCreateProfile($input: HokCreateProfileInput!) {\n hokCreateProfile(input: $input) { ${PROFILE_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateProfile;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'profiles'] });\n },\n });\n};\n\nexport interface UpdateProfileInput {\n name?: string;\n avatarFileId?: string;\n isKids?: boolean;\n languages?: string[];\n maturityLimit?: string;\n pin?: string;\n}\n\nexport const useUpdateProfile = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id, input }: { id: string; input: UpdateProfileInput }) => {\n const result = await hookmoviesQuery<{ hokUpdateProfile: HokProfile }>(\n `mutation HokUpdateProfile($id: ID!, $input: HokUpdateProfileInput!) {\n hokUpdateProfile(id: $id, input: $input) { ${PROFILE_FIELDS} }\n }`,\n { id, input },\n apiGatewayUrl\n );\n return result.hokUpdateProfile;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'profiles'] });\n },\n });\n};\n\nexport const useDeleteProfile = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteProfile: boolean }>(\n `mutation HokDeleteProfile($id: ID!) { hokDeleteProfile(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteProfile;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'profiles'] });\n },\n });\n};\n\n// ============================================================================\n// Watch parties (synchronized co-viewing rooms, self-scoped host/join)\n// ============================================================================\n\nexport type HokWatchPartyStatus = 'LIVE' | 'PAUSED' | 'ENDED';\n\nexport interface HokWatchPartyMember {\n id: string;\n partyId: string;\n userId: string;\n role: string;\n joinedAt: string;\n}\n\nexport interface HokWatchParty {\n id: string;\n titleId: string;\n episodeId: string | null;\n hostUserId: string;\n isPlaying: boolean;\n positionSeconds: number;\n status: HokWatchPartyStatus;\n createdAt: string;\n updatedAt: string;\n members: HokWatchPartyMember[];\n title: Pick<HokTitle, 'id' | 'title' | 'type'> | null;\n}\n\nconst WATCH_PARTY_FIELDS = `\n id titleId episodeId hostUserId isPlaying positionSeconds status createdAt updatedAt\n members { id partyId userId role joinedAt }\n title { id title type }\n`;\n\nexport interface CreateWatchPartyInput {\n titleId: string;\n episodeId?: string;\n isPlaying?: boolean;\n positionSeconds?: number;\n}\n\nexport const useCreateWatchParty = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateWatchPartyInput) => {\n const result = await hookmoviesQuery<{ hokCreateWatchParty: HokWatchParty }>(\n `mutation HokCreateWatchParty($input: HokCreateWatchPartyInput!) {\n hokCreateWatchParty(input: $input) { ${WATCH_PARTY_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateWatchParty;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'watch-party', data.id] });\n },\n });\n};\n\n/** Fetch a single watch party by id (workspace-scoped read). */\nexport const useWatchParty = (id: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'watch-party', id],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokWatchParty: HokWatchParty | null }>(\n `query HokWatchParty($id: ID!) {\n hokWatchParty(id: $id) { ${WATCH_PARTY_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokWatchParty;\n },\n enabled: Boolean(id),\n });\n};\n\nexport const useJoinWatchParty = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokJoinWatchParty: HokWatchParty }>(\n `mutation HokJoinWatchParty($id: ID!) {\n hokJoinWatchParty(id: $id) { ${WATCH_PARTY_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokJoinWatchParty;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'watch-party', data.id] });\n },\n });\n};\n\nexport const useUpdatePartyPlayback = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({\n id,\n isPlaying,\n positionSeconds,\n }: {\n id: string;\n isPlaying: boolean;\n positionSeconds: number;\n }) => {\n const result = await hookmoviesQuery<{ hokUpdatePartyPlayback: HokWatchParty }>(\n `mutation HokUpdatePartyPlayback($id: ID!, $isPlaying: Boolean!, $positionSeconds: Int!) {\n hokUpdatePartyPlayback(id: $id, isPlaying: $isPlaying, positionSeconds: $positionSeconds) {\n ${WATCH_PARTY_FIELDS}\n }\n }`,\n { id, isPlaying, positionSeconds },\n apiGatewayUrl\n );\n return result.hokUpdatePartyPlayback;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'watch-party', data.id] });\n },\n });\n};\n\n// ============================================================================\n// Review helpfulness votes (self-scoped; invalidate reviews)\n// ============================================================================\n\nexport const useVoteReviewHelpful = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (reviewId: string) => {\n const result = await hookmoviesQuery<{ hokVoteReviewHelpful: HokReview }>(\n `mutation HokVoteReviewHelpful($reviewId: ID!) {\n hokVoteReviewHelpful(reviewId: $reviewId) {\n ${REVIEW_FIELDS}\n title { id title }\n }\n }`,\n { reviewId },\n apiGatewayUrl\n );\n return result.hokVoteReviewHelpful;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\nexport const useUnvoteReviewHelpful = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (reviewId: string) => {\n const result = await hookmoviesQuery<{ hokUnvoteReviewHelpful: HokReview }>(\n `mutation HokUnvoteReviewHelpful($reviewId: ID!) {\n hokUnvoteReviewHelpful(reviewId: $reviewId) {\n ${REVIEW_FIELDS}\n title { id title }\n }\n }`,\n { reviewId },\n apiGatewayUrl\n );\n return result.hokUnvoteReviewHelpful;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'reviews'] });\n },\n });\n};\n\n// ============================================================================\n// Moderation (report content self-scoped; review queue wspace-scoped)\n// ============================================================================\n\nexport type HokModerationSeverity = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';\n\nexport type HokModerationStatus = 'OPEN' | 'REVIEWING' | 'RESOLVED' | 'DISMISSED';\n\nexport interface HokModerationFlag {\n id: string;\n entityId: string;\n entityType: string;\n reason: string;\n reportedByUserId: string;\n resolution: string | null;\n severity: HokModerationSeverity;\n status: HokModerationStatus;\n createdAt: string;\n updatedAt: string;\n}\n\nconst MODERATION_FIELDS = `\n id entityId entityType reason reportedByUserId resolution severity status\n createdAt updatedAt\n`;\n\nexport interface ReportContentInput {\n entityType: string;\n entityId: string;\n reason: string;\n}\n\nexport const useReportContent = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ entityType, entityId, reason }: ReportContentInput) => {\n const result = await hookmoviesQuery<{ hokReportContent: HokModerationFlag }>(\n `mutation HokReportContent($entityType: String!, $entityId: ID!, $reason: String!) {\n hokReportContent(entityType: $entityType, entityId: $entityId, reason: $reason) {\n ${MODERATION_FIELDS}\n }\n }`,\n { entityType, entityId, reason },\n apiGatewayUrl\n );\n return result.hokReportContent;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'moderation-flags'] });\n },\n });\n};\n\nexport const useModerationFlags = (\n status?: HokModerationStatus,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'moderation-flags', status ?? '', pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{\n hokListModerationFlags: HokConnection<HokModerationFlag>;\n }>(\n `query HokModerationFlags($pagination: PaginationInput, $status: HokModerationStatus) {\n hokListModerationFlags(pagination: $pagination, status: $status) {\n items { ${MODERATION_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, status },\n apiGatewayUrl\n );\n return result.hokListModerationFlags;\n },\n });\n};\n\nexport const useResolveModerationFlag = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({\n id,\n status,\n resolution,\n }: {\n id: string;\n status: HokModerationStatus;\n resolution?: string;\n }) => {\n const result = await hookmoviesQuery<{ hokResolveModerationFlag: HokModerationFlag }>(\n `mutation HokResolveModerationFlag($id: ID!, $status: HokModerationStatus!, $resolution: String) {\n hokResolveModerationFlag(id: $id, status: $status, resolution: $resolution) {\n ${MODERATION_FIELDS}\n }\n }`,\n { id, status, resolution },\n apiGatewayUrl\n );\n return result.hokResolveModerationFlag;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'moderation-flags'] });\n },\n });\n};\n\n// ============================================================================\n// Preferences (onboarding — languages / content types / maturity, self-scoped)\n// ============================================================================\n\nexport interface HokPreferences {\n id: string;\n userId: string;\n languages: string[];\n contentTypes: string[];\n maturityLimit: string | null;\n onboardedAt: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nconst PREFERENCES_FIELDS = `\n id userId languages contentTypes maturityLimit onboardedAt createdAt updatedAt\n`;\n\nexport const useMyPreferences = () => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'preferences'],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokMyPreferences: HokPreferences | null }>(\n `query HokMyPreferences { hokMyPreferences { ${PREFERENCES_FIELDS} } }`,\n {},\n apiGatewayUrl\n );\n return result.hokMyPreferences;\n },\n });\n};\n\nexport interface SetPreferencesInput {\n languages?: string[];\n contentTypes?: string[];\n maturityLimit?: string;\n onboarded?: boolean;\n}\n\nexport const useSetPreferences = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: SetPreferencesInput) => {\n const result = await hookmoviesQuery<{ hokSetPreferences: HokPreferences }>(\n `mutation HokSetPreferences($input: HokSetPreferencesInput!) {\n hokSetPreferences(input: $input) { ${PREFERENCES_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokSetPreferences;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'preferences'] });\n },\n });\n};\n\n// ============================================================================\n// FAST channels & linear schedule (wspace-scoped)\n// ============================================================================\n\nexport type HokChannelStatus = 'DRAFT' | 'LIVE' | 'OFFLINE';\n\nexport interface HokChannel {\n id: string;\n name: string;\n slug: string | null;\n description: string | null;\n language: string;\n timezone: string;\n genres: string[];\n status: HokChannelStatus;\n logoFileId: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface HokScheduleBlock {\n id: string;\n channelId: string;\n titleId: string | null;\n episodeId: string | null;\n startAt: string;\n endAt: string;\n createdAt: string;\n updatedAt: string;\n title: Pick<HokTitle, 'id' | 'title' | 'type'> | null;\n channel: Pick<HokChannel, 'id' | 'name'> | null;\n}\n\nconst CHANNEL_FIELDS = `\n id name slug description language timezone genres status logoFileId\n createdAt updatedAt\n`;\n\nconst SCHEDULE_BLOCK_FIELDS = `\n id channelId titleId episodeId startAt endAt createdAt updatedAt\n title { id title type }\n channel { id name }\n`;\n\nexport const useChannels = (\n language?: string,\n pagination: HokPaginationInput = { limit: 50, offset: 0 }\n) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'channels', language ?? '', pagination],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokListChannels: HokConnection<HokChannel> }>(\n `query HokChannels($pagination: PaginationInput, $language: String) {\n hokListChannels(pagination: $pagination, language: $language) {\n items { ${CHANNEL_FIELDS} }\n ${PAGE_INFO}\n }\n }`,\n { pagination, language: language?.trim() ? language.trim() : undefined },\n apiGatewayUrl\n );\n return result.hokListChannels;\n },\n });\n};\n\nexport const useChannelSchedule = (channelId: string | undefined, from?: string, to?: string) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'channel-schedule', channelId ?? '', from ?? '', to ?? ''],\n queryFn: async () => {\n // hokChannelSchedule returns HokScheduleBlockConnection (items +\n // pageInfo + totalCount), not a bare list.\n const result = await hookmoviesQuery<{\n hokChannelSchedule: { items: HokScheduleBlock[] };\n }>(\n `query HokChannelSchedule($channelId: ID!, $from: DateTime, $to: DateTime) {\n hokChannelSchedule(channelId: $channelId, from: $from, to: $to) {\n items {\n ${SCHEDULE_BLOCK_FIELDS}\n }\n }\n }`,\n { channelId, from, to },\n apiGatewayUrl\n );\n return result.hokChannelSchedule.items;\n },\n enabled: Boolean(channelId),\n });\n};\n\nexport const useNowPlaying = (channelId: string | undefined) => {\n const { apiGatewayUrl } = useHookMovies();\n return useQuery({\n queryKey: [QK, 'now-playing', channelId ?? ''],\n queryFn: async () => {\n const result = await hookmoviesQuery<{ hokNowPlaying: HokScheduleBlock | null }>(\n `query HokNowPlaying($channelId: ID!) {\n hokNowPlaying(channelId: $channelId) { ${SCHEDULE_BLOCK_FIELDS} }\n }`,\n { channelId },\n apiGatewayUrl\n );\n return result.hokNowPlaying;\n },\n enabled: Boolean(channelId),\n });\n};\n\nexport interface CreateChannelInput {\n name: string;\n slug?: string;\n description?: string;\n language?: string;\n timezone?: string;\n genres?: string[];\n logoFileId?: string;\n}\n\nexport const useCreateChannel = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateChannelInput) => {\n const result = await hookmoviesQuery<{ hokCreateChannel: HokChannel }>(\n `mutation HokCreateChannel($input: HokCreateChannelInput!) {\n hokCreateChannel(input: $input) { ${CHANNEL_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateChannel;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'channels'] });\n },\n });\n};\n\nexport interface ScheduleBlockInput {\n channelId: string;\n startAt: string;\n endAt: string;\n titleId?: string;\n episodeId?: string;\n}\n\nexport const useScheduleBlock = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: ScheduleBlockInput) => {\n const result = await hookmoviesQuery<{ hokScheduleBlock: HokScheduleBlock }>(\n `mutation HokScheduleBlock($input: HokScheduleBlockInput!) {\n hokScheduleBlock(input: $input) { ${SCHEDULE_BLOCK_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokScheduleBlock;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'channel-schedule', data.channelId] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'now-playing', data.channelId] });\n },\n });\n};\n\nexport const useRemoveScheduleBlock = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async ({ id }: { id: string; channelId: string }) => {\n const result = await hookmoviesQuery<{ hokRemoveScheduleBlock: boolean }>(\n `mutation HokRemoveScheduleBlock($id: ID!) { hokRemoveScheduleBlock(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokRemoveScheduleBlock;\n },\n onSuccess: (_data, { channelId }) => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'channel-schedule', channelId] });\n void queryClient.invalidateQueries({ queryKey: [QK, 'now-playing', channelId] });\n },\n });\n};\n\n// ============================================================================\n// Localization mutations (wspace-scoped; reads via useLocalizations above)\n// ============================================================================\n\nexport interface CreateLocalizationInput {\n language: string;\n fileId: string;\n kind?: HokLocalizationKind;\n titleId?: string;\n episodeId?: string;\n isDefault?: boolean;\n localizedTitle?: string;\n localizedSynopsis?: string;\n}\n\nexport const useCreateLocalization = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (input: CreateLocalizationInput) => {\n const result = await hookmoviesQuery<{ hokCreateLocalization: HokLocalization }>(\n `mutation HokCreateLocalization($input: HokCreateLocalizationInput!) {\n hokCreateLocalization(input: $input) { ${LOCALIZATION_FIELDS} }\n }`,\n { input },\n apiGatewayUrl\n );\n return result.hokCreateLocalization;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'localizations'] });\n },\n });\n};\n\nexport const useDeleteLocalization = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokDeleteLocalization: boolean }>(\n `mutation HokDeleteLocalization($id: ID!) { hokDeleteLocalization(id: $id) }`,\n { id },\n apiGatewayUrl\n );\n return result.hokDeleteLocalization;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'localizations'] });\n },\n });\n};\n\nexport const useSetDefaultLocalization = () => {\n const queryClient = useQueryClient();\n const { apiGatewayUrl } = useHookMovies();\n return useMutation({\n mutationFn: async (id: string) => {\n const result = await hookmoviesQuery<{ hokSetDefaultLocalization: HokLocalization }>(\n `mutation HokSetDefaultLocalization($id: ID!) {\n hokSetDefaultLocalization(id: $id) { ${LOCALIZATION_FIELDS} }\n }`,\n { id },\n apiGatewayUrl\n );\n return result.hokSetDefaultLocalization;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'localizations'] });\n },\n });\n};\n\n// ============================================================================\n// Global-billing reuse (checkout / earnings / payouts) — GLOBAL gateway\n// ============================================================================\n\nexport interface BillingAccount {\n id: string;\n name: string | null;\n orgId: string | null;\n currency: string | null;\n creditAmount: number | null;\n isDefault: boolean | null;\n}\n\n/**\n * Billing accounts owned by the calling actor. HookMovies uses one to anchor\n * checkout orders (title purchases / rentals) and creator earnings & payouts.\n */\nexport const useMyBillingAccounts = () => {\n return useQuery({\n queryKey: [QK, 'billing-accounts'],\n queryFn: async () => {\n const result = await globalQuery<{ myBillingAccounts: BillingAccount[] }>(\n `query HokMyBillingAccounts {\n myBillingAccounts { id name orgId currency creditAmount isDefault }\n }`,\n {}\n );\n return result.myBillingAccounts;\n },\n });\n};\n\nexport type BillingOrderStatus =\n 'CREATED' | 'PAYMENT_PENDING' | 'COMPLETED' | 'FAILED' | 'CANCELED' | 'EXPIRED';\n\nexport interface BillingOrder {\n id: string;\n status: BillingOrderStatus;\n currency: string;\n subtotal: number;\n externalService: string;\n description: string | null;\n createdAt: string;\n}\n\nexport interface CreateBillingOrderResponse {\n success: boolean;\n error: string | null;\n order: BillingOrder | null;\n}\n\nexport interface BillingOrderItemInput {\n name: string;\n quantity: number;\n unitPrice: number;\n description?: string;\n}\n\nexport interface CreateBillingOrderInput {\n billingAccountId: string;\n currency: string;\n externalOrderId: string;\n externalService: string;\n subtotal: number;\n items: BillingOrderItemInput[];\n description?: string;\n expiryMinutes?: number;\n}\n\n/** Open a checkout order (e.g. a TVOD title purchase / rental) via global-billing. */\nexport const useCreateBillingOrder = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: CreateBillingOrderInput) => {\n const result = await globalQuery<{ createBillingOrder: CreateBillingOrderResponse }>(\n `mutation HokCreateBillingOrder($input: CreateBillingOrderInput!) {\n createBillingOrder(input: $input) {\n success\n error\n order { id status currency subtotal externalService description createdAt }\n }\n }`,\n { input }\n );\n return result.createBillingOrder;\n },\n onSuccess: (_data, variables) => {\n void queryClient.invalidateQueries({\n queryKey: [QK, 'billing-accounts'],\n });\n void queryClient.invalidateQueries({\n queryKey: [QK, 'earnings-summary', variables.billingAccountId],\n });\n },\n });\n};\n\nexport interface EarningsCategoryBreakdown {\n category: string;\n amount: number;\n count: number;\n}\n\nexport interface EarningsSummary {\n availableAmount: number;\n reservedAmount: number;\n paidAmount: number;\n pendingAmount: number;\n moneyAmount: number;\n creditsAmount: number;\n totalLifetimeAmount: number;\n categoryBreakdown: EarningsCategoryBreakdown[];\n}\n\nexport const useMyEarningsSummary = (billingAccountId: string | undefined) => {\n return useQuery({\n queryKey: [QK, 'earnings-summary', billingAccountId],\n queryFn: async () => {\n const result = await globalQuery<{ myEarningsSummary: EarningsSummary }>(\n `query HokMyEarningsSummary($billingAccountId: ID!) {\n myEarningsSummary(billingAccountId: $billingAccountId) {\n availableAmount reservedAmount paidAmount pendingAmount\n moneyAmount creditsAmount totalLifetimeAmount\n categoryBreakdown { category amount count }\n }\n }`,\n { billingAccountId }\n );\n return result.myEarningsSummary;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport type EarningsEntryStatus = 'AVAILABLE' | 'RESERVED' | 'PAID' | 'REVERSED';\n\nexport interface EarningsEntry {\n id: string;\n billingAccountId: string;\n amount: number;\n currency: string;\n description: string | null;\n sourceCategory: string;\n status: EarningsEntryStatus;\n availableAt: string;\n createdAt: string;\n}\n\nexport interface EarningsEntryConnection {\n items: EarningsEntry[];\n totalCount: number;\n hasMore: boolean;\n}\n\nexport interface EarningsEntryFilter {\n status?: EarningsEntryStatus;\n sourceCategory?: string;\n startDate?: string;\n endDate?: string;\n}\n\nexport const useMyEarningsEntries = (\n billingAccountId: string | undefined,\n filter?: EarningsEntryFilter,\n limit = 20,\n offset = 0\n) => {\n return useQuery({\n queryKey: [QK, 'earnings-entries', billingAccountId, filter ?? {}, limit, offset],\n queryFn: async () => {\n const result = await globalQuery<{ myEarningsEntries: EarningsEntryConnection }>(\n `query HokMyEarningsEntries($billingAccountId: ID!, $filter: EarningsEntryFilterInput, $limit: Int, $offset: Int) {\n myEarningsEntries(billingAccountId: $billingAccountId, filter: $filter, limit: $limit, offset: $offset) {\n items {\n id billingAccountId amount currency description sourceCategory status\n availableAt createdAt\n }\n totalCount\n hasMore\n }\n }`,\n { billingAccountId, filter, limit, offset }\n );\n return result.myEarningsEntries;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport type PayoutAccountType = 'BANK_ACCOUNT' | 'UPI' | 'WALLET';\n\nexport type PayoutAccountStatus =\n 'PENDING_VERIFICATION' | 'ACTIVE' | 'FAILED_VERIFICATION' | 'ARCHIVED';\n\nexport interface PayoutAccount {\n id: string;\n billingAccountId: string;\n label: string;\n displayName: string | null;\n type: PayoutAccountType;\n currency: string;\n accountLast4: string | null;\n isDefault: boolean;\n isActive: boolean;\n status: PayoutAccountStatus;\n createdAt: string;\n}\n\nexport const useMyPayoutAccounts = (billingAccountId: string | undefined) => {\n return useQuery({\n queryKey: [QK, 'payout-accounts', billingAccountId],\n queryFn: async () => {\n const result = await globalQuery<{ myPayoutAccounts: PayoutAccount[] }>(\n `query HokMyPayoutAccounts($billingAccountId: ID!) {\n myPayoutAccounts(billingAccountId: $billingAccountId) {\n id billingAccountId label displayName type currency accountLast4\n isDefault isActive status createdAt\n }\n }`,\n { billingAccountId }\n );\n return result.myPayoutAccounts;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport type PayoutRequestStatus =\n 'APPROVED' | 'PENDING' | 'PROCESSING' | 'PAID' | 'REJECTED' | 'FAILED';\n\nexport interface PayoutRequest {\n id: string;\n billingAccountId: string;\n requestedAmount: number;\n approvedAmount: number | null;\n currency: string;\n status: PayoutRequestStatus;\n provider: string;\n userNotes: string | null;\n createdAt: string;\n paidAt: string | null;\n}\n\nexport interface PayoutRequestConnection {\n items: PayoutRequest[];\n totalCount: number;\n hasMore: boolean;\n}\n\nconst PAYOUT_REQUEST_FIELDS = `\n id billingAccountId requestedAmount approvedAmount currency status provider\n userNotes createdAt paidAt\n`;\n\nexport const useMyPayoutRequests = (\n billingAccountId: string | undefined,\n limit = 20,\n offset = 0\n) => {\n return useQuery({\n queryKey: [QK, 'payout-requests', billingAccountId, limit, offset],\n queryFn: async () => {\n const result = await globalQuery<{ myPayoutRequests: PayoutRequestConnection }>(\n `query HokMyPayoutRequests($billingAccountId: ID!, $limit: Int, $offset: Int) {\n myPayoutRequests(billingAccountId: $billingAccountId, limit: $limit, offset: $offset) {\n items { ${PAYOUT_REQUEST_FIELDS} }\n totalCount\n hasMore\n }\n }`,\n { billingAccountId, limit, offset }\n );\n return result.myPayoutRequests;\n },\n enabled: Boolean(billingAccountId),\n });\n};\n\nexport interface RequestPayoutInput {\n billingAccountId: string;\n payoutAccountId: string;\n amount: number;\n currency: string;\n notes?: string;\n}\n\nexport const useRequestPayout = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: RequestPayoutInput) => {\n const result = await globalQuery<{ requestBillingPayout: PayoutRequest }>(\n `mutation HokRequestPayout($input: RequestPayoutInput!) {\n requestBillingPayout(input: $input) { ${PAYOUT_REQUEST_FIELDS} }\n }`,\n { input }\n );\n return result.requestBillingPayout;\n },\n onSuccess: (data) => {\n void queryClient.invalidateQueries({\n queryKey: [QK, 'payout-requests', data.billingAccountId],\n });\n void queryClient.invalidateQueries({\n queryKey: [QK, 'earnings-summary', data.billingAccountId],\n });\n },\n });\n};\n\n// ============================================================================\n// Global-auth reuse (developer API keys) — GLOBAL gateway\n// ============================================================================\n\nexport interface ApiKey {\n id: string;\n name: string;\n prefix: string;\n scopes: string[];\n appId: string;\n appName: string | null;\n createdAt: string;\n expiresAt: string | null;\n lastUsedAt: string | null;\n}\n\nexport interface ApiKeyConnection {\n apiKeys: ApiKey[];\n totalCount: number;\n hasMore: boolean;\n}\n\nconst API_KEY_FIELDS = `\n id name prefix scopes appId appName createdAt expiresAt lastUsedAt\n`;\n\nexport const useMyApiKeys = (pagination?: HokPaginationInput) => {\n return useQuery({\n queryKey: [QK, 'api-keys', pagination ?? {}],\n queryFn: async () => {\n const result = await globalQuery<{ myApiKeys: ApiKeyConnection }>(\n `query HokMyApiKeys($pagination: PaginationInput) {\n myApiKeys(pagination: $pagination) {\n apiKeys { ${API_KEY_FIELDS} }\n totalCount\n hasMore\n }\n }`,\n { pagination }\n );\n return result.myApiKeys;\n },\n });\n};\n\nexport interface ApiKeyResult {\n apiKey: string;\n apiSecret: string;\n keyId: string;\n}\n\nexport interface GenerateApiKeyInput {\n appId: string;\n name: string;\n scope: string[];\n expiresAt?: string;\n}\n\n/**\n * Mint a developer API key. The plaintext `apiSecret` is returned exactly once —\n * the caller must surface it immediately (it is never retrievable again).\n */\nexport const useGenerateApiKey = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: GenerateApiKeyInput) => {\n const result = await globalQuery<{ generateAPIKey: ApiKeyResult }>(\n `mutation HokGenerateApiKey($input: GenerateAPIKeyInput!) {\n generateAPIKey(input: $input) { apiKey apiSecret keyId }\n }`,\n { input }\n );\n return result.generateAPIKey;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'api-keys'] });\n },\n });\n};\n\nexport const useRevokeApiKey = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (keyId: string) => {\n const result = await globalQuery<{ revokeAPIKey: boolean }>(\n `mutation HokRevokeApiKey($keyId: String!) { revokeAPIKey(keyId: $keyId) }`,\n { keyId }\n );\n return result.revokeAPIKey;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'api-keys'] });\n },\n });\n};\n\n// ============================================================================\n// Global-i18n reuse (language catalog + user language preference) — GLOBAL gateway\n// ============================================================================\n\nexport type LanguageDirection = 'LTR' | 'RTL';\n\nexport type LanguageStatus = 'ACTIVE' | 'DEPRECATED' | 'DRAFT';\n\nexport interface Language {\n id: string;\n code: string;\n name: string;\n nativeName: string;\n direction: LanguageDirection;\n status: LanguageStatus;\n isDefault: boolean;\n}\n\nexport interface LanguageList {\n items: Language[];\n total: number;\n hasMore: boolean;\n}\n\nexport interface LanguageFilter {\n status?: LanguageStatus;\n direction?: LanguageDirection;\n search?: string;\n}\n\nexport const useLanguages = (filter?: LanguageFilter, limit = 50, offset = 0) => {\n return useQuery({\n queryKey: [QK, 'languages', filter ?? {}, limit, offset],\n queryFn: async () => {\n const result = await globalQuery<{ languages: LanguageList }>(\n `query HokLanguages($filter: LanguageFilterInput, $limit: Int, $offset: Int) {\n languages(filter: $filter, limit: $limit, offset: $offset) {\n items { id code name nativeName direction status isDefault }\n total\n hasMore\n }\n }`,\n { filter, limit, offset }\n );\n return result.languages;\n },\n staleTime: 5 * 60 * 1000,\n });\n};\n\nexport interface UserLanguagePreference {\n id: string;\n userId: string;\n languageCode: string;\n}\n\nexport interface SetUserLanguagePreferenceInput {\n userId: string;\n languageCode: string;\n country?: string;\n currency?: string;\n timezone?: string;\n}\n\nexport const useSetUserLanguagePreference = () => {\n const queryClient = useQueryClient();\n return useMutation({\n mutationFn: async (input: SetUserLanguagePreferenceInput) => {\n const result = await globalQuery<{ setUserLanguagePreference: UserLanguagePreference }>(\n `mutation HokSetUserLanguagePreference($input: SetUserLanguagePreferenceInput!) {\n setUserLanguagePreference(input: $input) { id userId languageCode }\n }`,\n { input }\n );\n return result.setUserLanguagePreference;\n },\n onSuccess: () => {\n void queryClient.invalidateQueries({ queryKey: [QK, 'language-preference'] });\n },\n });\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@burdenoff/microfe-hookmovies",
3
- "version": "2026.720.1",
3
+ "version": "2026.720.2",
4
4
  "description": "Burdenoff HookMovies Microfrontend — discovery, catalog, engagement, auditions, productions, distribution, and library surfaces for the global creative-media network.",
5
5
  "type": "module",
6
6
  "files": [