"""迁移 034:补充永明 SBIUL 2 和全美 GIUL 3 产品配置。""" import json import logging from sqlalchemy import text logger = logging.getLogger(__name__) def migrate(): from insurance.db.compat import db products = [ { "id": "sunlife-sbiul2-iul", "company_id": "sunlife", "display_name": "Sun Life SBIUL 2", "aliases": [ "SBIUL 2", "SBIUL2", "Sun Life SBIUL", "SunBrilliance Indexed Universal Life II", ], }, { "id": "transamerica-giul3-iul", "company_id": "transamerica", "display_name": "Transamerica GIUL 3", "aliases": [ "GIUL 3", "GIUL3", "Transamerica GIUL", "Global Indexed Universal Life 3", ], }, ] required_modules = json.dumps([ "cover", "company", "index-account-configuration", "guaranteed-floor-analysis", "legacy-leverage-analysis", "recommendation", "closing", ], ensure_ascii=False) for product in products: db.session.execute(text( "INSERT INTO insurance_ppt_products " "(id, company_id, plan_type, display_name, aliases_json, " "required_modules_json, status, sort_order) " "SELECT :id, :company_id, 'iul', :display_name, :aliases_json, " ":required_modules_json, 1, 20 " "WHERE NOT EXISTS (" "SELECT 1 FROM insurance_ppt_products WHERE id = :id" ")" ), { "id": product["id"], "company_id": product["company_id"], "display_name": product["display_name"], "aliases_json": json.dumps(product["aliases"], ensure_ascii=False), "required_modules_json": required_modules, }) db.session.commit() logger.info("[migrate_034] 已补充永明 SBIUL 2 和全美 GIUL 3 产品配置")