import json import arrow from service_app_test.bases import RequestToApi from service_app_test.api_configs import LocalAPI, BothAPIS from service_app_test.test_application.evyos.decision_book import ( run_decision_book_depends, list_decision_books, ) from service_app_test.test_application.evyos.decision_book_items import ( send_invitation_to_building_residents, collect_invitation_to_building_residents, assign_people_to_pre_or_wrt, run_decision_book_items, ) from service_app_test.test_application.migrate_old_data.get_occupants_codes import ( get_occupants_types, ) from service_app_test.test_application.migrate_old_data.get_type_codes import ( get_type_codes_key_and_class, ) from service_app_test.test_application.migrate_old_data.people import migrate_people from service_app_test.test_application.migrate_old_data.building import ( migrate_build, migrate_build_living_space, ) from service_app_test.test_application.migrate_old_data.company import migrate_company from service_app_test.test_application.migrate_old_data.accounts import ( migrate_account_records, ) from service_app_test.test_application.migrate_old_data.decision_book_project import ( approve_build_decision_book_project_approval, update_decision_book_project, create_decision_book_project_items, generate_insert_project_item, generate_update_project_item, generate_approval_project_item, list_decision_book_project, ) local_api = RequestToApi() local_api.overwrite_base_url(base_url=LocalAPI.base_url) both_apis = BothAPIS() both_apis.local_api = local_api def decode_as_json_indent(data): return json.dumps(json.loads(json.dumps(data)), indent=2) password_token = "AVqRAPWQ9yvZqX14pWEAHfv72MsTYbjrlPNH97xDPr9RrDySPmu1zlPEH-IsQ9GNR1wrGQHv4xsR6eNbZYDe8rnvYbaiGOFpu1t18AMOZBEB3cKiashFCXznglPGd670QmAsRAqC-VO8GsIoGjtRr2ZQCKVY2lXTc3RcqRA26YXP31Bc-mDr_nzpjQCGrVcd" password_token_occ = "" login_data = { "domain": "evyos.com.tr", "access_key": "karatay.berkay.sup@evyos.com.tr", "password": "string", "remember_me": False, "password_token": password_token, } login_creds_occupant = { "domain": "evyos.com.tr", "access_key": "mehmet.karatay@hotmail.com", "password": "string", "remember_me": False, "password_token": password_token_occ, } selection_list = [ # "d9ffa716-331c-48fc-83b2-47bf31289b3e", # "afebb7f8-9f62-4703-b11c-ee8f14fe73b7", ] manager_token = "g0Z1YYjh2WqFfoI3MdJ9wrfXAHeL6f7UatEkySzOK0dFX6CH1sXgjQ" people_uu_id = "2c8781f6-c1bc-432d-bb0c-9f5247ecc750" list_of_attendees = [ "_Ky6UyaoatH5CZEQHZ1gdoj_7HDxSJ2DgBwq6hSXbCKR-WG8E9DPuQ", "KhdJF7XP6ni_qdIRXSByGHKez8oTSbmzOAZxdi2A_iy-oOW6-VbfPA", "vn01wNh5moTiNzw2qOvT4h5eqgCQ10jmN3OK659NN-ekriFSmVju_Q", "EMsteygK4Myingptlpi_sr7Xu0Wsrl7xpQD-ukVY4GBjv6NJakpQ4Q", "26p4QD1CofK6-Pk_VyDOB2Xstdv_sx88kh4kResWg4TuCuAy7tAT-A", "2FgntLgLfFM20d32-gOwaHu44Vk_fDlpOh8IvS8gahiW-V0Dv0qLWg", "TwC_dNuT6Iln0NFinEuvxbnjmb_HwcS8qWg-097gjc8pHTQ1p0nTGA", "Yn35HP9TJonn9PTFpsq1lH3w-x-zHjTWymBeP6v4XPcwJP_aMj8JsQ", "C2DbYn1jcocKwjQ8gvJ_jCU0IGAmbJB3JgHj-N_OTu1jNtmhVrW7aQ", "TT5-9a_JVSf_WBAcN1sAfUyV45J2e7J1NoVGe3BcrrlAI1GNoU2_rw", "ED4H5zpmxpLXX5rO6eoTb7wIa2x1v0YbNwsFh-iAohWh7fDyhvq_BQ", ] constant = "Toplantı sonucunda araştırmalar tamamlandı, katılımcılara e-posta gönderildi. Onaylayan sayısı yeterli olmadığı için karar alınamadı ve proje iptal edildi ve sonlandırıldı." assign_people_to_create_item = -1 if assign_people_to_create_item == -1: local_api.selected_object = local_api.login_via_email_and_password( login_data=login_data, is_password_valid=False ) migrate_company(requester=both_apis) migrate_people(requester=both_apis) migrate_build(requester=both_apis) migrate_build_living_space(requester=both_apis) # migrate_account_records(requester=both_apis) if assign_people_to_create_item == 0: if not bool(selection_list): local_api.selected_object = local_api.login_via_email_and_password( login_data=login_data, is_password_valid=True ) occupant_manager = get_occupants_types( occupant_code="BU-MNG", requester=both_apis.local_api )["data"]["uu_id"] response = both_apis.local_api.post( endpoint="/building/parts/list", data={"query": {"part_code": "MAN-ROOM"}}, ) print("text", response.text) print("json", response.json()) response_json = response.json() build_parts_uu_id = response_json["data"][0]["uu_id"] response = both_apis.local_api.post( endpoint="/user/list", data={"query": {"email": "mehmet.karatay@hotmail.com"}}, ) print("text", response.text) print("json", response.json()) response_json = response.json() person_uu_id = response_json["data"][0]["person_uu_id"] response = local_api.post( endpoint="/building/living_space/create", data=dict( build_parts_uu_id=build_parts_uu_id, person_uu_id=person_uu_id, occupant_type_uu_id=occupant_manager, expiry_starts=arrow.now().date().__str__(), ), ) print("response", response.text) local_api.selected_object = local_api.login_via_email_and_password( login_data=login_creds_occupant, is_password_valid=bool(selection_list), selection_list=selection_list, ) selected_decision_book_uu_id = run_decision_book_depends( requester=both_apis.local_api ) send_invitation = { "build_decision_book_uu_id": selected_decision_book_uu_id, "message": "Request for a Regular Building Meeting", "planned_date": arrow.now().shift(days=2).date().__str__(), } send_invitation_to_building_residents( send_invitation_dict=send_invitation, requester=both_apis.local_api ) elif assign_people_to_create_item == 1: local_api.selected_object = local_api.login_via_email_and_password( login_data=login_creds_occupant, is_password_valid=True, selection_list=selection_list, ) count = 7 list_of_attendees.insert(0, manager_token) collect_invitation_to_building_residents( attended_dict_list=list_of_attendees, attend_count=count + 1, requester=both_apis.local_api, ) elif assign_people_to_create_item == 2: local_api.selected_object = local_api.login_via_email_and_password( login_data=login_creds_occupant, is_password_valid=True, selection_list=selection_list, ) assign_people_to_pre_or_wrt( person_uu_id=people_uu_id, manager_token=manager_token, occupant_code="MT-VPR", requester=both_apis.local_api, ) assign_people_to_pre_or_wrt( person_uu_id=people_uu_id, manager_token=manager_token, occupant_code="MT-WRT", requester=both_apis.local_api, ) assign_people_to_pre_or_wrt( person_uu_id=people_uu_id, manager_token=manager_token, occupant_code="MT-PRS", requester=both_apis.local_api, ) elif assign_people_to_create_item == 3: local_api.selected_object = local_api.login_via_email_and_password( login_data=login_creds_occupant, is_password_valid=True, selection_list=selection_list, ) selected_decision_book_uu_id = list_decision_books(requester=both_apis.local_api)[ "data" ][0]["uu_id"] print("select_company_uu_id", local_api.selected_object) is_fixed_price = False start_date, end_date = "2024-11-01", "2024-12-01" info_type_reno_uu_id = get_type_codes_key_and_class( class_name="BuildDuesTypes", key_name="BDT-R", requester=both_apis.local_api )["data"]["uu_id"] info_type_deb_uu_id = get_type_codes_key_and_class( class_name="BuildDuesTypes", key_name="BDT-D", requester=both_apis.local_api )["data"]["uu_id"] info_type_inf_uu_id = get_type_codes_key_and_class( class_name="BuildDuesTypes", key_name="BDT-I", requester=both_apis.local_api )["data"]["uu_id"] run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="En son toplantıda bahsedilen 2 nolu daireyi etkiliyen çözüm için kanalizasyon ve " "tamirleri için fiyat alınarak arka alan yağmur suyu direnajının yaplımasının projelendirilmesi.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) unit_price = 17.04 run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_deb_uu_id, item_comment="Aidat gündemi için 1,2,3 nolu daireler için 1400 TL, diğer daireler için 1500 TL " "olmasına karar verildi.", unit_price=unit_price, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="Hali hazırda yöneticilik görevini ifa eden 4 nolu daire sahibi Mehmet Karatayın bu " "görevinin devam etmesine ve apartmanın bank hesaplarının kullanımı ile ilgili yetkisinin devam etmesine.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="Kiriş içinden geçen borunun çıkarılmadan kesilmesine, gerekli tadilatın yapılıp problemin " "çözülmesine ayrıca bu aşamada yaplımasına onay verilirse her daire kendi radyatölerinin temizliği ve tadilatın yapılmasına.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="Dogalgazdan tadilatında çıkan eski boruların satışının yapılmasına.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="Apartman içinin tadilat yapılması, ışık ve elektrik sisteminin elden geçirilmesine ve elektrik " "sayaç il panoların kutuya konulmasına, doğalgaz borularının astar boya ile " "boyanmasına teklif alınarak projec açılması.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="İç kapı teklif alınarak gerektiğinde tadilatın geliştirilmesi, tek kapı yapılması " "yada iki kapının alternatifi ile değerlendirilerek fiyat alınması.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="Bina su deposunun temizletilmesi.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_reno_uu_id, item_comment="Çatının havalandırma camlarının değiştirilmesi ve onarılması.", start_date=start_date, end_date=end_date, requester=both_apis.local_api, ) run_decision_book_items( writers_token=manager_token, info_type_uu_id=info_type_inf_uu_id, item_comment="Arka zemin daire sahibinin yoğun yağmurlarda evin su basmaması için " "arka bölüme saçak yapabilmesine onay verildi.", requester=both_apis.local_api, ) elif assign_people_to_create_item == 4: local_api.selected_object = local_api.login_via_email_and_password( login_data=login_creds_occupant, is_password_valid=True, selection_list=selection_list, ) # for i in range(8): # index = i + 1 # print("index", index) # if index in [1, 7, 8]: # continue # project_no = f"BDT-R_2024_{index}" # project = list_decision_book_project( # requester=both_apis.local_api, project_no=project_no # ) # print("project", decode_as_json_indent(project)) # project_uu_id = project["uu_id"] # # insert_project_item = generate_insert_project_item( # **{ # "build_decision_book_project_uu_id": project_uu_id, # "item_header": "Toplantı sonrası alınan kararlar", # "item_comment": constant, # } # ) # create_decision_book_project_items( # insert_project_item=insert_project_item, requester=both_apis.local_api # ) # approve_project_item = { # "build_decision_book_project_uu_id": project_uu_id, # "project_stop_date": "2024-12-01", # "status_code": 9 # } # approve_build_decision_book_project_approval( # approval_project_item=generate_approval_project_item(**approve_project_item), # requester=both_apis.local_api, # ) # # project = list_decision_book_project( # requester=both_apis.local_api, project_no=project_no # ) # print("project", decode_as_json_indent(project)) project_no = f"BDT-R_2024_7" project = list_decision_book_project( requester=both_apis.local_api, project_no=project_no ) print("project", decode_as_json_indent(project)) project_uu_id = project["uu_id"] approve_project_item = lambda final_price_list: { "build_decision_book_project_uu_id": project_uu_id, "project_stop_date": "2024-12-01", "final_price_list": final_price_list, "status_code": 9, } approve_project_dict = approve_project_item( [{"date": "2024-11-03", "price": 585.00}] ) insert_project_item = generate_insert_project_item( **{ "build_decision_book_project_uu_id": project_uu_id, "item_header": "Toplantı sonrası alınan kararlar", "item_comment": "Bina çalışmaları sonucunda 7020 ₺ lik maliyet çıkmıştır.", } ) create_decision_book_project_items( insert_project_item=insert_project_item, requester=both_apis.local_api ) approve_build_decision_book_project_approval( approval_project_item=generate_approval_project_item(**approve_project_dict), requester=both_apis.local_api, ) project = list_decision_book_project( requester=both_apis.local_api, project_no=project_no ) print("project", decode_as_json_indent(project)) project_no = f"BDT-R_2024_8" project = list_decision_book_project( requester=both_apis.local_api, project_no=project_no ) print("project", decode_as_json_indent(project)) project_uu_id = project["uu_id"] approve_project_dict = approve_project_item( [ {"date": "2024-12-01", "price": 600.25}, {"date": "2025-01-01", "price": 600.50}, ] ) insert_project_item = generate_insert_project_item( **{ "build_decision_book_project_uu_id": project_uu_id, "item_header": "Toplantı sonrası alınan kararlar", "item_comment": "Bina çalışmaları sonucunda 12500 ₺ lik maliyet çıkmıştır.", } ) create_decision_book_project_items( insert_project_item=insert_project_item, requester=both_apis.local_api ) approve_build_decision_book_project_approval( approval_project_item=generate_approval_project_item(**approve_project_dict), requester=both_apis.local_api, ) project = list_decision_book_project( requester=both_apis.local_api, project_no=project_no ) print("project", decode_as_json_indent(project))