#pragma once

#include "afxwin.h"
#include "gruenland.h"
#include <string>
#include <vector>
using namespace std;
class art
{
public:
    //Parameter der Arten 
    CString m_name;
    CString m_name_latein;
    CString _gruppe;
    CString person_name;
    double _anspruch_wasser;
    double _anspruch_siedlung;
    double _anspruch_wald;
    double _neutral;
    double _foerdernd;
    double _essentiel;
    double _monatsviertel1;
    double _monatsviertel2;
    double _monatsviertel3;
    double _monatsviertel4;
    double _monatsviertel5;
    double _monatsviertel6;
    double _monatsviertel7;
    double _monatsviertel8;
    double _monatsviertel9; //Parameter für % Eiablage in dem jeweiligen Monatsviertel
    double _monatsviertel10;
    double _monatsviertel11;
    double _monatsviertel12;
    double _monatsviertel13;
    double _monatsviertel14;
    double _monatsviertel15;
    double _monatsviertel16;
    double _monatsviertel17;
    double _monatsviertel18;
    double _monatsviertel19;
    double _monatsviertel20;
    double _monatsviertel21;
    double _monatsviertel22;
    double _monatsviertel23;
    double _monatsviertel24;
    double _monatsviertel25;
    double _monatsviertel26;
    double _monatsviertel27;
    double _monatsviertel28;
    double _monatsviertel29;
    double _monatsviertel30;
    double _monatsviertel31;
    double _monatsviertel32;
    double _monatsviertel33;
    double _monatsviertel34;
    double _monatsviertel35;
    double _monatsviertel36;
    double _monatsviertel37;
    double _monatsviertel38;
    double _monatsviertel39;
    double _monatsviertel40;
    double _monatsviertel41;
    double _monatsviertel42;
    double _monatsviertel43;
    double _monatsviertel44;
    double _monatsviertel45;
    double _monatsviertel46;
    double _monatsviertel47;
    double _monatsviertel48;
    int last_egg_dep;
    int _monatsviertel_ersatzbrut;
    double _ersatzbrut_erfolg;
    int _reproduktion_kritisch;
    int _reproduktion_gesammt;
    int _reproduktion_gesammt2;
    //double _mobilitaetsradius;
    double _hoehe_kurz;
    double _hoehe_mittel;
    double _hoehe_hoch;
    double _feuchte_trocken;
    double _feuchte_frisch;
    double _feuchte_feucht;
    //double _individuen_flaeche;
    double _ausbreitungsradius;
    int _trittmortalitaettyp;
    //Lebensraum/Gruenlandtypen fuer die Schmetterlinge
    bool _brenndoldenauenwiese;
    bool _pfeifengraswiesen;
    bool _dotterblumenwiese;
    bool _flachlanmaehwiese;
    bool _flachlanmaehwiese_mager;
    bool _bergmaehwiese;
    bool _artenreicheborstgrasen;
    bool _kalktrockenrasen;
    bool _maehweide;
    bool _weisskleeweiden;
    bool _bergweiden;

    bool _gruenland;
    bool _gruenland2;

    vector< gruenland> gruen;
    vector< int> gruenlandID;
    //zweite Generation für Schmetterlinge == MV in dem die 2.Generation startet
    int _zweitegeneration;
    int _zweitegeneration_ende;
//parameter der Lebensraeume
    int Lebensraumnr;
    bool _weide;
    bool _duengung;
    bool _keineduengung;
    // frueheste bzw letzte moegliche erst Nutzung abhaenging von Gruenlandnutzung
    int _artID;

    art( void);
    ~art( void);
    string savet;
    double praedation;
    bool wiesenknopf;
    void set_m_name( CString);
    void set_m_name_latein( CString);
    void set_gruppe( CString);
    void set_person_name( CString);
    void set_anspruch_wasser( double);
    void set_anspruch_siedlung( double);
    void set_anspruch_wald( double);
    void set_neutral( double);
    void set_foerdernd( double);
    void set_essentiel( double);
    void set_monatsviertel1( double);
    void set_monatsviertel2( double);
    void set_monatsviertel3( double);
    void set_monatsviertel4( double);
    void set_monatsviertel5( double);
    void set_monatsviertel6( double);
    void set_monatsviertel7( double);
    void set_monatsviertel8( double);
    void set_monatsviertel9( double);
    void set_monatsviertel10( double);
    void set_monatsviertel11( double);
    void set_monatsviertel12( double);
    void set_monatsviertel13( double);
    void set_monatsviertel14( double);
    void set_monatsviertel15( double);
    void set_monatsviertel16( double);
    void set_monatsviertel17( double);
    void set_monatsviertel18( double);
    void set_monatsviertel19( double);
    void set_monatsviertel20( double);
    void set_monatsviertel21( double);
    void set_monatsviertel22( double);
    void set_monatsviertel23( double);
    void set_monatsviertel24( double);
    void set_monatsviertel25( double);
    void set_monatsviertel26( double);
    void set_monatsviertel27( double);
    void set_monatsviertel28( double);
    void set_monatsviertel29( double);
    void set_monatsviertel30( double);
    void set_monatsviertel31( double);
    void set_monatsviertel32( double);
    void set_monatsviertel33( double);
    void set_monatsviertel34( double);
    void set_monatsviertel35( double);
    void set_monatsviertel36( double);
    void set_monatsviertel37( double);
    void set_monatsviertel38( double);
    void set_monatsviertel39( double);
    void set_monatsviertel40( double);
    void set_monatsviertel41( double);
    void set_monatsviertel42( double);
    void set_monatsviertel43( double);
    void set_monatsviertel44( double);
    void set_monatsviertel45( double);
    void set_monatsviertel46( double);
    void set_monatsviertel47( double);
    void set_monatsviertel48( double);

    void set_monatsviertel_ersatzbrut( int);
    void set_ersatzbrut_erfolg( double);
    void set_reproduktion_kritisch( int);
    void set_reproduktion_gesammt( int);
    void set_reproduktion_gesammt2( int);
    //void set_mobilitaetsradius(double);
    void set_hoehe_kurz( double);
    void set_hoehe_mittel( double);
    void set_hoehe_hoch( double);
    void set_feuchte_trocken( double);
    void set_feuchte_frisch( double);
    void set_feuchte_feucht( double);
    //void set_individuen_flaeche(double);
    void set_ausbreitungsradius( double);
    void set_trittmortalitaettyp( int);

    void set_brenndoldenauenwiese( bool);
    void set_pfeifengraswiesen( bool);
    void set_dotterblumenwiese( bool);
    void set_flachlanmaehwiese( bool);
    void set_flachlanmaehwiese_mager( bool);
    void set_bergmaehwiese( bool);
    void set_artenreicheborstgrasen( bool);
    void set_kalktrockenrasen( bool);
    void set_maehweide( bool);
    void set_weisskleeweiden( bool);
    void set_bergweiden( bool);
    void set_gruenland( bool);
    void set_gruenland2( bool);
    void set_zweitegeneration( int);
    void set_zweitegeneration_ende( int);

    void set_Lebensraumnr( int);
    void set_weide( bool);
    void set_duengung( bool);
    void set_keineduengung( bool);
    void set_artID( int);

    CString get_m_name();
    CString get_m_name_latein();
    CString get_gruppe();
    CString get_person_name();
    double get_anspruch_wasser();
    double get_anspruch_siedlung();
    double get_anspruch_wald();
    double get_neutral();
    double get_foerdernd();
    double get_essentiel();
    double get_monatsviertel( int mv);
    double get_monatsviertel1();
    double get_monatsviertel2();
    double get_monatsviertel3();
    double get_monatsviertel4();
    double get_monatsviertel5();
    double get_monatsviertel6();
    double get_monatsviertel7();
    double get_monatsviertel8();
    double get_monatsviertel9();
    double get_monatsviertel10();
    double get_monatsviertel11();
    double get_monatsviertel12();
    double get_monatsviertel13();
    double get_monatsviertel14();
    double get_monatsviertel15();
    double get_monatsviertel16();
    double get_monatsviertel17();
    double get_monatsviertel18();
    double get_monatsviertel19();
    double get_monatsviertel20();
    double get_monatsviertel21();
    double get_monatsviertel22();
    double get_monatsviertel23();
    double get_monatsviertel24();
    double get_monatsviertel25();
    double get_monatsviertel26();
    double get_monatsviertel27();
    double get_monatsviertel28();
    double get_monatsviertel29();
    double get_monatsviertel30();
    double get_monatsviertel31();
    double get_monatsviertel32();
    double get_monatsviertel33();
    double get_monatsviertel34();
    double get_monatsviertel35();
    double get_monatsviertel36();
    double get_monatsviertel37();
    double get_monatsviertel38();
    double get_monatsviertel39();
    double get_monatsviertel40();
    double get_monatsviertel41();
    double get_monatsviertel42();
    double get_monatsviertel43();
    double get_monatsviertel44();
    double get_monatsviertel45();
    double get_monatsviertel46();
    double get_monatsviertel47();
    double get_monatsviertel48();

    int get_monatsviertel_ersatzbrut();
    double get_ersatzbrut_erfolg();
    int get_reproduktion_kritisch();
    int get_reproduktion_gesammt();
    int get_reproduktion_gesammt2();
    //double get_mobilitaetsradius();
    double get_hoehe_kurz();
    double get_hoehe_mittel();
    double get_hoehe_hoch();
    double get_feuchte_trocken();
    double get_feuchte_frisch();
    double get_feuchte_feucht();
    //double get_individuen_flaeche();
    double get_ausbreitungsradius();
    int get_trittmortalitaettyp();

    bool get_brenndoldenauenwiese();
    bool get_pfeifengraswiesen();
    bool get_dotterblumenwiese();
    bool get_flachlanmaehwiese();
    bool get_flachlanmaehwiese_mager();
    bool get_bergmaehwiese();
    bool get_artenreicheborstgrasen();
    bool get_kalktrockenrasen();
    bool get_maehweide();
    bool get_weisskleeweiden();
    bool get_bergweiden();
    bool get_gruenland();
    bool get_gruenland2();
    int get_zweitegeneration();
    int get_zweitegeneration_ende();

    int get_Lebensraumnr();
    bool get_weide();
    bool get_duengung();
    bool get_keineduengung();
    int get_artID();

    int save_art_in_database( art& newart);
    art* get_art_from_database( string, string);
    bool delete_art_from_database( string, string);

};
