fixing jsonSchema validation by using zod
This commit is contained in:
92
src/data/airlines.ts
Normal file
92
src/data/airlines.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
/**
|
||||
* Airline mock data with IATA codes, names, and countries
|
||||
* Covers 30+ major carriers worldwide
|
||||
*/
|
||||
|
||||
export const airlines = [
|
||||
// United States Carriers
|
||||
{ code: 'AA', name: 'American Airlines', country: 'US', alliance: 'oneworld' },
|
||||
{ code: 'DL', name: 'Delta Air Lines', country: 'US', alliance: 'SkyTeam' },
|
||||
{ code: 'UA', name: 'United Airlines', country: 'US', alliance: 'Star Alliance' },
|
||||
{ code: 'WN', name: 'Southwest Airlines', country: 'US', alliance: null },
|
||||
{ code: 'B6', name: 'JetBlue Airways', country: 'US', alliance: null },
|
||||
{ code: 'AS', name: 'Alaska Airlines', country: 'US', alliance: 'oneworld' },
|
||||
{ code: 'F9', name: 'Frontier Airlines', country: 'US', alliance: null },
|
||||
{ code: 'NK', name: 'Spirit Airlines', country: 'US', alliance: null },
|
||||
|
||||
// European Carriers
|
||||
{ code: 'BA', name: 'British Airways', country: 'GB', alliance: 'oneworld' },
|
||||
{ code: 'AF', name: 'Air France', country: 'FR', alliance: 'SkyTeam' },
|
||||
{ code: 'LH', name: 'Lufthansa', country: 'DE', alliance: 'Star Alliance' },
|
||||
{ code: 'KL', name: 'KLM Royal Dutch Airlines', country: 'NL', alliance: 'SkyTeam' },
|
||||
{ code: 'IB', name: 'Iberia', country: 'ES', alliance: 'oneworld' },
|
||||
{ code: 'AZ', name: 'ITA Airways', country: 'IT', alliance: 'SkyTeam' },
|
||||
{ code: 'LX', name: 'Swiss International Air Lines', country: 'CH', alliance: 'Star Alliance' },
|
||||
{ code: 'VS', name: 'Virgin Atlantic', country: 'GB', alliance: null },
|
||||
|
||||
// Asian Carriers
|
||||
{ code: 'NH', name: 'All Nippon Airways', country: 'JP', alliance: 'Star Alliance' },
|
||||
{ code: 'JL', name: 'Japan Airlines', country: 'JP', alliance: 'oneworld' },
|
||||
{ code: 'SQ', name: 'Singapore Airlines', country: 'SG', alliance: 'Star Alliance' },
|
||||
{ code: 'CX', name: 'Cathay Pacific', country: 'HK', alliance: 'oneworld' },
|
||||
{ code: 'KE', name: 'Korean Air', country: 'KR', alliance: 'SkyTeam' },
|
||||
{ code: 'OZ', name: 'Asiana Airlines', country: 'KR', alliance: 'Star Alliance' },
|
||||
{ code: 'TG', name: 'Thai Airways', country: 'TH', alliance: 'Star Alliance' },
|
||||
{ code: 'CA', name: 'Air China', country: 'CN', alliance: 'Star Alliance' },
|
||||
{ code: 'MU', name: 'China Eastern Airlines', country: 'CN', alliance: 'SkyTeam' },
|
||||
|
||||
// Middle East Carriers
|
||||
{ code: 'EK', name: 'Emirates', country: 'AE', alliance: null },
|
||||
{ code: 'QR', name: 'Qatar Airways', country: 'QA', alliance: 'oneworld' },
|
||||
{ code: 'EY', name: 'Etihad Airways', country: 'AE', alliance: null },
|
||||
|
||||
// Other Major Carriers
|
||||
{ code: 'AC', name: 'Air Canada', country: 'CA', alliance: 'Star Alliance' },
|
||||
{ code: 'QF', name: 'Qantas', country: 'AU', alliance: 'oneworld' },
|
||||
{ code: 'NZ', name: 'Air New Zealand', country: 'NZ', alliance: 'Star Alliance' },
|
||||
{ code: 'AM', name: 'Aeroméxico', country: 'MX', alliance: 'SkyTeam' },
|
||||
{ code: 'LA', name: 'LATAM Airlines', country: 'CL', alliance: 'oneworld' }
|
||||
];
|
||||
|
||||
/**
|
||||
* Get airline by IATA code
|
||||
* @param {string} code - IATA airline code (2 letters)
|
||||
* @returns {Object|null} Airline object or null if not found
|
||||
*/
|
||||
export function getAirline(code: string) {
|
||||
return airlines.find((a) => a.code === code.toUpperCase()) || null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get random airline for route generation
|
||||
* @returns {Object} Random airline object
|
||||
*/
|
||||
export function getRandomAirline() {
|
||||
return airlines[Math.floor(Math.random() * airlines.length)];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if airline code exists
|
||||
* @param {string} code - IATA airline code
|
||||
* @returns {boolean} True if airline exists
|
||||
*/
|
||||
export function isValidAirline(code: string) {
|
||||
return getAirline(code) !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get airlines by alliance
|
||||
* @param {string} alliance - Alliance name (oneworld, SkyTeam, Star Alliance)
|
||||
* @returns {Object[]} Array of airline objects
|
||||
*/
|
||||
export function getAirlinesByAlliance(alliance: string) {
|
||||
return airlines.filter((a) => a.alliance === alliance);
|
||||
}
|
||||
|
||||
export default {
|
||||
airlines,
|
||||
getAirline,
|
||||
getRandomAirline,
|
||||
isValidAirline,
|
||||
getAirlinesByAlliance
|
||||
};
|
||||
Reference in New Issue
Block a user