# -*- coding:utf-8 -*-

__projet__ = "Colle_session_1_2025-05-12"
__nom_fichier__ = "identite"
__author__ = "Christine Fay-Varnier"
__date__ = "mai 2025"

from insee import INSEE

"""
 modélise  un individu avec les attributs nom_, prenom_, jour_de_naissance_, numero_insee_ 
"""

class Identite:
    def __init__(self, prenom, nom, jour, num):
        self.prenom_ = prenom
        self.nom_ = nom
        self.jour_ = jour
        self.num_ = num # instance de la classe INSEE

    def __str__(self):
        ligne1 = self.prenom_ + " " + self.nom_ + "\n"
        ligne2 = "Date de naissance : " + str(self.jour_) + "/" + self.num_.get_mois() + "/" + self.num_.get_annee()
        return ligne1 + ligne2

    def jumeau(self, other):
        """

        @param other: autre identite
        @return:    True si self est jumeau de other
                    cad né le même jour, même mois, même année
        """
        if self.num_ == other.num_: # on utilise la méthode de surcharge __eq__ de la classe INSEE
            if self.jour_ == other.jour_:
                return True

        return False

class Identite_numerique(Identite):

    def __init__(self, prenom, nom, jour, num, mail) :
        # une identité numérique dispose en plus d'une adresse mail
        Identite.__init__(self, prenom, nom, jour, num) # on crée l'instance de la classe Identite
        self.mail_ = mail   # on ajoute l'attribut avec l'adresse mail

    def __str__(self):
        # on utilise la méthode __str__ de la classe parente pour ne pas avoir à tout réécrire
        return Identite.__str__(self) + "\nAdresse mail : " + self.mail_

if __name__ == '__main__':
    num = INSEE("2", "71", "12", "08", "105048")
    id = Identite("John", "Wayne", 14, num)
    print(id)

    id2 = Identite("John", "Wayne", 14, num)
    print(id.jumeau(id2))

    idn = Identite_numerique("Lucy", "Sky", 23, num, "lucy.sky@laposte.fr")

    print(idn)