
class Adresse
{
    string strasse ;
    string plz ;
    string ort ;
};

class Person
{
    string vorname ;
    string nachname ;
    Adresse adresse @embedded ;
    string telefonnummer ;
    string handynummer ;
    date geburtsdatum ;
    string konfession ;
};




class Variante
{
    string Name ;
    float BasePrice ;
    float includedHours ;
    float extraHoursPrice ;
    int minGuests ;
    int maxGuests ;
};
class Angebot
{
    string beschreibung ;
    Variante varianten @array @embedded ;
};
class Artikel : Angebot
{
    float price ;
};
class Dienstleistung : Angebot
{
};




class AngebotsGruppe
{
    string name ;
    Angebot angebote @array ;
};
class Kategorie
{
    string name ;
    Kategorie unterkategorien @array ;
    AngebotsGruppe angebotsgruppen @array ;
};




class Anbieter : User
{
    Person kontaktperson @embedded ;
    string telefonnummer ;
    string webseite ;
    Angebot angebote @array ;
};




class Auswahl
{
    int preis ;
    date datum ;
    Kategorie kategorie ;
    Angebot angebot ;
};
class Vereinbarung
{
    string Text ;
    int Preis ;
    date datum ;
};
class Brautpaar : User
{
    Person braut @embedded ;
    Person braeutigam @embedded ;
    date hochzeitsdatum ;
    int gaesteanzahl ;
    int budget ;
    float partystunden ;
    Person gaeste @array @embedded ;
    Auswahl auswahlen @array @embedded ;
};



