#pragma once

#include <string>

class CritterEvent {
    public:
        int id;
        int critter_id;
        std::string name;
        std::string date;
        std::string time;
        std::string description;
};

class CritterDocument {
    public:
        int id;
        int critter_id;
        std::string name;
        std::string doc_type;
        std::string cached_path;
};

class Critter {
    public:
        int id;
        std::string name;
        std::string birthdate;
        std::string notes;
        int mother_id;
        int father_id;
        std::string gender;
        std::string species;

        Critter() = default;

        Critter(int id, std::string name, std::string gender, int mother_id, int father_id, std::string notes, std::string species) :
            id(id), name(std::move(name)), gender(std::move(gender)),
            mother_id(mother_id), father_id(father_id), 
            notes(std::move(notes)), species(std::move(species)) {}
};

struct CritterEntry {
    int key;
    Critter value;
};
