#include <fstream>
#include <iostream>
#include <vector>

#include "class.h"

void initialize(vector<Person>& oList);
void output_address(ofstream& ofs, unsigned indent, Address const& address)
{
    string space(indent, ' ');
    ofs << space << "Address\n";
    ofs << space << "  City:"          << address.city                 << "\n";
    ofs << space << "  State:"         << address.state                << "\n";
    ofs << space << "  Postcode:"      << address.postcode             << "\n";
    ofs << space << "  Country:"       << address.country              << "\n";
}

int main()
{
    vector<Person> list;
    initialize(list);

    // 保存処理
    {
        ofstream ofs("data.txt");
        for (size_t i=0; i < list.size(); ++i)
        {
            ofs << "Number:" << i << "\n";

            ofs << "  First Name:"      << list[i].name.first                   << "\n";
            ofs << "  Last Name:"       << list[i].name.last                    << "\n";
            ofs << "  Age:"             << list[i].age                          << "\n";
            output_address(ofs, 2, list[i].address);
            ofs << "  Phone:"           << list[i].phone                        << "\n";
            ofs << "  Mobile Phone:"    << list[i].mobile_phone                 << "\n";
            ofs << "  Fax:"             << list[i].fax                          << "\n";
            ofs << "  E-mail:"          << list[i].email                        << "\n";

            ofs << "  Employer\n";
            ofs << "    Company name:"  << list[i].employer.company_name        << "\n";
            output_address(ofs, 4, list[i].employer.address);
            ofs << "    Phone:"         << list[i].employer.phone               << "\n";
            ofs << "    FAX:"           << list[i].employer.fax                 << "\n";

            ofs << "  Emergency contact\n";
            ofs << "    First Name:"    << list[i].emergency.name.first         << "\n";
            ofs << "    Last Name:"     << list[i].emergency.name.last          << "\n";
            output_address(ofs, 4, list[i].emergency.address);
            ofs << "    Phone:"         << list[i].emergency.phone              << "\n";
            ofs << "    E-mail:"        << list[i].emergency.email              << "\n";
            ofs << "    Relationship:"  << list[i].emergency.relationship       << "\n";

            ofs << "\n";
        }
    }

    return 0;
}