File size: 1,282 Bytes
3c841ba
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use client';

import { demoAgencies, type DemoAgency } from '@/lib/mock-data';

export const ACENTE_SESSION_KEY = 'ajet360.acente.session.v1';
export const ACENTE_SESSION_EVENT = 'ajet360:acente-session';
export const DEFAULT_AGENCY_CODE = 'AJ-IST-001';

function canUseStorage() {
  return typeof window !== 'undefined' && Boolean(window.localStorage);
}

export function getCurrentAgencyCode(): string {
  if (!canUseStorage()) return DEFAULT_AGENCY_CODE;
  const code = window.localStorage.getItem(ACENTE_SESSION_KEY);
  if (!code) return DEFAULT_AGENCY_CODE;
  if (!demoAgencies.some((a) => a.code === code)) return DEFAULT_AGENCY_CODE;
  return code;
}

export function setCurrentAgencyCode(code: string): void {
  if (!canUseStorage()) return;
  if (!demoAgencies.some((a) => a.code === code)) return;
  window.localStorage.setItem(ACENTE_SESSION_KEY, code);
  window.dispatchEvent(new Event(ACENTE_SESSION_EVENT));
}

export function getCurrentAgency(): DemoAgency {
  const code = getCurrentAgencyCode();
  return demoAgencies.find((a) => a.code === code) ?? demoAgencies[0]!;
}

export function listAvailableAgencies(): DemoAgency[] {
  // Limit to 5 Turkish agencies for demo readability
  return demoAgencies.filter((a) => a.code.match(/^AJ-(IST|ANT|ANK|IZM|TRB)-/));
}