#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
字段映射配置
将数据库字段名映射为中文显示名
"""

# 字段映射（根据实际数据库表结构）
FIELD_MAPPING = {
    # 基础信息
    'id': '订单ID',
    'order_no': '订单号',
    'platform_order_no': '平台订单号',
    'order_type': '订单类型',
    'order_time': '订单时间',
    'state': '订单状态',
    'operate_state': '操作状态',
    
    # 用户信息
    'user_id': '用户ID',
    'user_card_no': '用户卡号',
    'company_id': '企业ID',
    'charge_plate_no': '车牌号',
    'charge_vin': 'VIN码',
    
    # 充电站信息
    'station_id': '充电站ID',
    'equipment_id': '设备ID',
    'connector_id': '连接器ID',
    
    # 充电时间
    'charge_begin_time': '充电开始时间',
    'charge_end_time': '充电结束时间',
    'charge_duration': '充电时长(秒)',
    
    # 充电电量
    'charge_begin_degree': '开始电量',
    'charge_end_degree': '结束电量',
    'charge_degree': '充电电量(kWh)',
    'charge_ah': '充电安时',
    
    # 充电SOC
    'charge_begin_soc': '开始SOC',
    'charge_end_soc': '结束SOC',
    'charge_cur_soc': '当前SOC',
    
    # 充电费用（应收）
    'receivable_electric_fee': '应收电费(元)',
    'receivable_service_fee': '应收服务费(元)',
    'receivable_total_fee': '应收总费用(元)',
    
    # 充电费用（实际）
    'charge_elecfee_amount': '电费金额(元)',
    'charge_elecfee_cost_amount': '电费成本(元)',
    'charge_service_amount': '服务费金额(元)',
    'charging_amt': '充电金额(元)',
    
    # 支付信息
    'actual_pay_amount': '实际支付金额(元)',
    'pay_amount': '支付金额(元)',
    'pay_order_no': '支付订单号',
    'pay_method': '支付方式',
    'pay_status': '支付状态',
    'pay_time': '支付时间',
    
    # 单价信息
    'charge_unit_price': '单价(元/度)',
    'charge_unit_cost': '单位成本',
    'charge_unit_service_fee': '单位服务费',
    
    # 结算信息
    'charge_settle_type': '结算类型',
    'settle_electric_fee': '结算电费(元)',
    'settle_service_fee': '结算服务费(元)',
    'settle_fee': '结算费用(元)',
    'settle_method': '结算方式',
    'settle_status': '结算状态',
    'settle_coupon_amount': '结算优惠券金额',
    
    # 优惠券信息
    'user_coupon_id': '优惠券ID',
    'coupon_name': '优惠券名称',
    'coupon_type': '优惠券类型',
    'coupon_amount': '优惠券金额',
    'coupon_total_amount': '优惠券总金额',
    'elecfee_coupon_amount': '电费优惠券金额',
    'servicefee_coupon_amount': '服务费优惠券金额',
    
    # 发票信息
    'invoice_id': '发票ID',
    'invoice_fee': '发票金额',
    'ticket_status': '开票状态',
    
    # 活动信息
    'activity_electric_fee': '活动电费',
    'activity_service_fee': '活动服务费',
    'activity_name': '活动名称',
    'activity_total_fee': '活动总费用',
    
    # 企业活动信息
    'company_activity_id': '企业活动ID',
    'company_activity_name': '企业活动名称',
    'company_activity_total_fee': '企业活动总费用',
    'company_activity_service_fee': '企业活动服务费',
    'company_activity_electric_fee': '企业活动电费',
    
    # 补贴信息
    'subsidy_degree': '补贴电量',
    'subsidy_fee': '补贴费用',
    
    # 运营商信息
    'operator_id': '运营商ID',
    'operator_income': '运营商收入',
    'plat_service_fee': '平台服务费',
    
    # 佣金信息
    'com_service_fee': '佣金服务费',
    'com_electric_fee': '佣金电费',
    'com_total_fee': '佣金总费用',
    'com_charge_discount_type': '佣金折扣类型',
    'com_charge_discount': '佣金折扣',
    
    # 报告信息
    'report_time': '上报时间',
    'has_shallow_report': '是否有浅层报告',
    'has_deep_report': '是否有深层报告',
    'shallow_report_is_received': '浅层报告是否接收',
    
    # 订单完成信息
    'finish_type': '完成类型',
    'finish_code': '完成代码',
    'finish_msg': '完成消息',
    'finish_time': '完成时间',
    
    # 取消信息
    'cancel_type': '取消类型',
    'cancel_code': '取消代码',
    'cancel_msg': '取消消息',
    'cancel_time': '取消时间',
    
    # 异常信息
    'exception_flag': '异常标志',
    'exception_msg': '异常消息',
    'is_exception': '是否异常',
    
    # 其他信息
    'platform_sale_type': '平台销售类型',
    'platform_driver_id': '平台司机ID',
    'platform_phone': '平台电话',
    'charge_strategy': '充电策略',
    'charge_strategy_param': '充电策略参数',
    'boot_mode': '启动模式',
    'settlement_type': '结算类型',
    'is_parking_coupon': '是否停车优惠券',
    'control_source': '控制来源',
    'charge_market_id': '充电市场ID',
    'charge_times_degree': '充电次数电量',
    'special_channel_order_source': '特殊渠道订单来源',
    
    # 时间戳
    'create_time': '创建时间',
    'update_time': '更新时间',
    
    # 分时段电量（从detail表计算）
    'sharp_electricity': '尖时电量(kWh)',
    'peak_electricity': '峰时电量(kWh)',
    'flat_electricity': '平时电量(kWh)',
    'valley_electricity': '谷时电量(kWh)',
    
    # 数据来源
    'data_source': '数据来源',
}

# 获取字段中文名称
def get_field_name(field_key):
    """获取字段的中文名称"""
    return FIELD_MAPPING.get(field_key, field_key)

# 获取字段显示名称（别名）
def get_field_display_name(field_key):
    """获取字段的中文显示名称"""
    return FIELD_MAPPING.get(field_key, field_key)

# 获取所有字段选项
def get_all_fields():
    """获取所有字段选项"""
    return [{'key': k, 'name': v} for k, v in FIELD_MAPPING.items()]

# 获取所有字段（带显示名称）
def get_all_fields_with_display():
    """获取所有字段，包含key和显示名称"""
    return [{'key': k, 'display': v} for k, v in FIELD_MAPPING.items()]

# 默认字段列表（常用字段）
DEFAULT_FIELDS = [
    'order_no',
    'company_id',
    'user_id',
    'charge_begin_time',
    'charge_end_time',
    'charge_degree',
    'receivable_total_fee',
    'actual_pay_amount',
    'state',
    'report_time'
]
