from tqdm import tqdm

from patch.include import *

import phonenumbers


@app_context(commit=True)
def patch():
    users = models.CmfPerson.list(order_by=['phone'], filter=['phone', '!=', None], fields=['phone'],
                                  include_deleted=True)
    for user in users:
        dubles = models.CmfPerson.list(filter=[['phone', '==', user.phone.value], ['id', '!=', user.id]],
                                       include_deleted=True, fields=['phone'])
        for duble in dubles:
            phone = phonenumbers.parse(duble.phone.value, 'RU')
            print(f'Дубль {duble.code}: {phonenumbers.format_number(phone, phonenumbers.PhoneNumberFormat.E164)}')
            duble.phone = f'{phonenumbers.format_number(phone, phonenumbers.PhoneNumberFormat.E164)[1:]};{duble.code}'
            duble.save(only_data=True)



if __name__ == "__main__":
    patch()
