import Foundation
import SwiftUI

let cvStyle = CVStyle(
    pageWidth: 600,
    accentColor: .init(244, 144, 0),
    header: HeaderStyle(
        height: 100,
        lineWidth: 1,
        iconHeight: 20,
        imageShadowSize: 5,
        imageBorderWidth: 2),
    columnSpacing: 10,
    section: .init(
        titleSpacing: 10,
        borderSpacing: 5,
        borderWidth: 3,
        bottomSpacing: 10,
        paragraphSpacing: 5),
    skillStyle: SkillStyle(
        iconSize: 20,
        rowSpacing: 3,
        verticalTagSpacing: 3,
        horizontalGap: 3,
        tagBackground: .gray.opacity(0.1),
        tagRounding: 8)
)

let cvInfoEnglish = CVInfo(
    language: "English",
    top: TopInfo(
        imageName: "Cover",
        name: "Christoph Hagen",
        tagLine: "Problem solver and creative mind with a favour for interdisciplinary work.",
        place: "Würzburg, Germany",
        ageText: "Age 32",
        web: "christophhagen.de",
        email: "jobs@christophhagen.de",
        phone: "Upon Request",
        github: "github.com/christophhagen"),
    work: .init(title: "Work experience", items: [
        CareerStation(
            time: "Jul 2020 - Jul 2023",
            location: "Braunschweig, Germany",
            title: "German Aerospace Center",
            subtitle: "Systems engineer",
            text: "Responsible for aircraft systems and avionics of a high-altitude solar drone, safety, and software."),
        CareerStation(
            time: "Mar 2018 - Dec 2019",
            location: "Würzburg, Germany",
            title: "Julius-Maximilians-Universität",
            subtitle: "Research Assistant",
            text: "Working on privacy and security technologies in the Secure Software Systems group."),
        CareerStation(
            time: "Jul 2017 - Oct 2017",
            location: "Tokyo, Japan",
            title: "National Institute of Informatics",
            subtitle: "Research Intern (Intelligent Robotics)",
            text: "Topic: Concept Acquisition through interactions between Humans and Robots"),
        CareerStation(
            time: "Sep 2014 - Nov 2016",
            location: "Würzburg, Germany",
            title: "Julius-Maximilians-Universität",
            subtitle: "Research & Teaching Assistant",
            text: "Teaching exercises and robotics workshops, design of a modular robot arm connector.")
    ]),
    education: .init(title: "Education", items: [
        CareerStation(
            time: "Oct 2015 - Sep 2017",
            location: "Kiruna, Sweden",
            title: "Luleå University of Technology",
            subtitle: "M. Sc. in Space Technology",
            text: "Erasmus Mundus Double Degree Master with courses on robotics, satellite design and control, atmosphere and space physics."),
        CareerStation(
            time: "Oct 2015 - Sep 2017",
            location: "Espoo, Finland",
            title: "Aalto University of Electrical Engineering",
            subtitle: "M. Sc. in Space Robotics and Automation",
            text: "Thesis topic: A Bluetooth based intra-satellite communication system"),
        CareerStation(
            time: "Oct 2013 - Aug 2015",
            location: "Würzburg, Germany",
            title: "Julius-Maximilians-Universität",
            subtitle: "B. Sc. in Aerospace Computer Science",
            text: "Mobile robotics, satellite subsystems, real-time systems, mathematics and physics.")
    ]),
    publications: .init(title: "Publications", items: [
        Publication(
            venue: "33rd Anual INCOSE International Symposium 2023",
            title: "Model Based Verification and Validation Planning for a Solar Powered High-Altitude Platform"),
        Publication(
            venue: "ACM Transactions on Privacy and Security 2022",
            title: "Contact Discovery in Mobile Messengers: Low-cost Attacks, Quantitative Analyses, and Efficient Mitigations"),
        Publication(
            venue: "Network and Distributed Systems Symposium 2021",
            title: "All the Numbers are US: Large-scale Abuse of Contact Discovery in Mobile Messengers")
    ]),
    skills: .init(title: "Skills", items: [
        SkillsSet(
            systemSymbol: .characterBubble,
            entries: ["German", "English"]),
        SkillsSet(
            systemSymbol: .keyboard,
            entries: ["Swift", "C", "C++", "Python"]),
        SkillsSet(
            systemSymbol: .display2,
            entries: ["iOS", "Embedded", "macOS", "Linux"]),
        SkillsSet(
            systemSymbol: .theatermaskAndPaintbrush,
            entries: ["UI design", "CAD", "Woodworking", "Electronics", "Photo/Video editing"]),
        SkillsSet(
            systemSymbol: .personFillCheckmark,
            entries: ["Problem solving", "Decision making", "Analytical thinking", "Optimizing"])
    ]),
    about: .init(title: "About", items: [
        "I'm interested in acquiring knowledge and new skills, developing cutting-edge technologies, and finding efficient solutions.",
        "I usually work on various creative projects, including woodworking, electronics, sewing, and programming. I also love being active in nature."
    ]),
    footer: "Design by Christoph Hagen, 2023.")

let cvInfoGerman = CVInfo(
    language: "German",
    top: TopInfo(
        imageName: "Cover",
        name: "Christoph Hagen",
        tagLine: "Problemlöser und kreativer Kopf mit einer Vorliebe für interdisziplinäre Arbeit.",
        place: "Würzburg",
        ageText: "32 Jahre",
        web: "christophhagen.de",
        email: "jobs@christophhagen.de",
        phone: "Auf Anfrage",
        github: "github.com/christophhagen"),
    work: .init(title: "Berufserfahrung", items: [
        CareerStation(
            time: "Jul 2020 - Jul 2023",
            location: "Braunschweig",
            title: "Deutsches Zentrum für Luft- und Raumfahrt",
            subtitle: "Systemingenieur",
            text: "Leitung Flugzeugsysteme und Avionik, Software, und Sicherheitsanalysen einer hochfliegenden Solardrohne."),
        CareerStation(
            time: "Mär 2018 - Dez 2019",
            location: "Würzburg",
            title: "Julius-Maximilians-Universität",
            subtitle: "Wissenschaftlicher Mitarbeiter",
            text: "Forschung zu Privatsphäre und IT-Sicherheit im Bereich Mobile Messenger"),
        CareerStation(
            time: "Jul 2017 - Okt 2017",
            location: "Tokio, Japan",
            title: "National Institute of Informatics",
            subtitle: "Praktikant (Intelligente Robotik)",
            text: "Thema: Concept Acquisition through interactions between Humans and Robots"),
        CareerStation(
            time: "Sep 2014 - Nov 2016",
            location: "Würzburg",
            title: "Julius-Maximilians-Universität",
            subtitle: "Übungsleiter und wissenschaftlicher Mitarbeiter",
            text: "Leitung von Übungen und Robotikworkshops, Entwurf einer modularen Verbindung für einen Roboterarm.")
    ]),
    education: .init(title: "Bildung", items: [
        CareerStation(
            time: "Okt 2015 - Sep 2017",
            location: "Kiruna, Schweden",
            title: "Luleå University of Technology",
            subtitle: "M. Sc. in Space Technology",
            text: "Erasmus Mundus Double Degree Master mit Kursen in Robotik, Satellitenentwicklung und -kontrolle, Atmosphären- und Weltraumphsyik."),
        CareerStation(
            time: "Okt 2015 - Sep 2017",
            location: "Espoo, Finnland",
            title: "Aalto University of Electrical Engineering",
            subtitle: "M. Sc. in Space Robotics and Automation",
            text: "Abschlussarbeit: A Bluetooth based intra-satellite communication system"),
        CareerStation(
            time: "Okt 2013 - Aug 2015",
            location: "Würzburg",
            title: "Julius-Maximilians-Universität",
            subtitle: "B. Sc. in Luft- und Raumfahrtinformatik",
            text: "Mobile Robotik, Satellitensysteme, Echtzeitbetriebssysteme, Mathematik and Physik.")
    ]),
    publications: .init(title: "Publikationen", items: [
        Publication(
            venue: "33rd Anual INCOSE International Symposium 2023",
            title: "Model Based Verification and Validation Planning for a Solar Powered High-Altitude Platform"),
        Publication(
            venue: "ACM Transactions on Privacy and Security 2022",
            title: "Contact Discovery in Mobile Messengers: Low-cost Attacks, Quantitative Analyses, and Efficient Mitigations"),
        Publication(
            venue: "Network and Distributed Systems Symposium 2021",
            title: "All the Numbers are US: Large-scale Abuse of Contact Discovery in Mobile Messengers")
    ]),
    skills: .init(title: "Fähigkeiten", items: [
        SkillsSet(
            systemSymbol: .characterBubble,
            entries: ["Deutsch", "Englisch"]),
        SkillsSet(
            systemSymbol: .keyboard,
            entries: ["Swift", "C", "C++", "Python"]),
        SkillsSet(
            systemSymbol: .display2,
            entries: ["iOS", "Embedded", "macOS", "Linux"]),
        SkillsSet(
            systemSymbol: .theatermaskAndPaintbrush,
            entries: ["UI Design", "CAD", "Holzverarbeitung", "Elektronik", "Foto/Videobearbeitung"]),
        SkillsSet(
            systemSymbol: .personFillCheckmark,
            entries: ["Problemlösung", "Analytisches Denken", "Entscheidungsfindung", "Optimierung"])
    ]),
    about: .init(title: "Über mich", items: [
        "Ich eigne mir gerne neues Wissen und Fähigkeiten an, mag die Arbeit an Zukunftstechnologien, und schätze effizente Lösungen für Probleme.",
        "Ich arbeite oft an verschiedenen Kreativprojekten, unter anderem Möbelbau, Elektronik, Software, oder Näharbeiten. Außerdem bin ich sehr gerne sportlich in der Natur aktiv."
    ]),
    footer:  "Design by Christoph Hagen, 2023.")
