# -*- coding: utf-8 -*-

# This file defines the entities needed by our legislation.
from openfisca_core.entities import build_entity

Household = build_entity(
    key = "household",
    plural = "households",
    label = 'Household',
    doc = '''
    Household is an example of a group entity.
    A group entity contains one or more individual·s.
    For more information, see: https://openfisca.org/doc/coding-the-legislation/50_entities.html
    ''',
    roles = [
        {
            'key': 'personne_de_reference',
            'label': 'Personne de reference (Chef-fe de ménage)',
            'doc': 'La personne de référence dans le ménage.',
            'max': 1,
            },
        {
            'key': 'conjoint',
            'label': 'Conjoint de la personne de référence',
            'doc': 'Le/la conjoint-e de la personne de référence.',
            'max': 1,
            },
        {
            'key': 'enfant',
            'plural': 'enfants',
            'label': 'Enfant',
            'doc': '''Enfant à la charge de la personne de référence et de son conjoint
            - il peut y avoir d'autres enfant dans le ménage '''
            },
        {
            'key': 'autre_membre',
            'plural': 'autres_membres',
            'label': 'Autres membres du ménage',
            'doc': 'Membres du ménage différents de la personne de référence, de son/sa conjoint-e et de leurs enfants'
            }
        ]
    )

Person = build_entity(
    key = "person",
    plural = "persons",
    label = 'Person',
    doc = '''
    A Person represents an individual, the minimal legal entity on which a legislation might be applied.
    For more information, see: https://openfisca.org/doc/coding-the-legislation/50_entities.html
    ''',
    is_person = True,
    )

entities = [Household, Person]
