const Airline = require('../models/Airline');

exports.getAllAirlines = async (req, res) => {
  try {
    const airlines = await Airline.getAll();
    res.json(airlines);
  } catch (error) {
    console.error('Error fetching airlines:', error);
    res.status(500).json({ message: 'Havayolu şirketleri alınırken hata oluştu', error: error.message });
  }
};

exports.getActiveAirlines = async (req, res) => {
  try {
    const airlines = await Airline.getActive();
    res.json(airlines);
  } catch (error) {
    console.error('Error fetching active airlines:', error);
    res.status(500).json({ message: 'Aktif havayolu şirketleri alınırken hata oluştu', error: error.message });
  }
};

exports.getAirlineById = async (req, res) => {
  try {
    const airline = await Airline.getById(req.params.id);
    if (!airline) {
      return res.status(404).json({ message: 'Havayolu şirketi bulunamadı' });
    }
    res.json(airline);
  } catch (error) {
    console.error('Error fetching airline:', error);
    res.status(500).json({ message: 'Havayolu şirketi alınırken hata oluştu', error: error.message });
  }
};

exports.getAirlineByCode = async (req, res) => {
  try {
    const airline = await Airline.getByCode(req.params.code);
    if (!airline) {
      return res.status(404).json({ message: 'Havayolu şirketi bulunamadı' });
    }
    res.json(airline);
  } catch (error) {
    console.error('Error fetching airline:', error);
    res.status(500).json({ message: 'Havayolu şirketi alınırken hata oluştu', error: error.message });
  }
};

exports.createAirline = async (req, res) => {
  try {
    const airline = await Airline.create(req.body);
    res.status(201).json(airline);
  } catch (error) {
    console.error('Error creating airline:', error);
    res.status(500).json({ message: 'Havayolu şirketi oluşturulurken hata oluştu', error: error.message });
  }
};

exports.updateAirline = async (req, res) => {
  try {
    const airline = await Airline.update(req.params.id, req.body);
    res.json(airline);
  } catch (error) {
    console.error('Error updating airline:', error);
    res.status(500).json({ message: 'Havayolu şirketi güncellenirken hata oluştu', error: error.message });
  }
};

exports.deleteAirline = async (req, res) => {
  try {
    await Airline.delete(req.params.id);
    res.json({ message: 'Havayolu şirketi silindi' });
  } catch (error) {
    console.error('Error deleting airline:', error);
    res.status(500).json({ message: 'Havayolu şirketi silinirken hata oluştu', error: error.message });
  }
};
