# -*- coding: utf-8 -*-
"""
汽修钣喷客户档案 - 本地文件夹一键生成工具 (Python版)
版本: V1.0
适用: Windows 7/8/10/11 (需系统自带Python 3.6+, 或已装Python)
特点: 纯标准库实现, 零网络依赖, 断网环境可完整运行

打包为exe教程 (断网可用):
  1. 安装PyInstaller: pip install pyinstaller  (仅在打包时联网一次)
  2. 进入本脚本所在目录, 打开cmd执行:
     pyinstaller --onefile --name 汽修档案生成器 汽修钣喷档案库一键生成.py
  3. 生成的exe在 dist/ 目录下, 可复制到任意Windows电脑运行, 无需Python环境
"""

import os
import sys


def get_root_dir():
    """获取根目录路径: 脚本同目录下的 汽修钣喷客户档案"""
    script_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
    return os.path.join(script_dir, "汽修钣喷客户档案")


def get_brands():
    """返回11个车辆品牌列表"""
    return [
        "雪佛兰",
        "吉利",
        "比亚迪",
        "理想",
        "小米汽车",
        "奔驰",
        "宝马",
        "奥迪",
        "奇瑞",
        "三菱",
        "极狐",
    ]


def get_sub_dirs():
    """返回每个品牌下的13个固定子目录"""
    return [
        "01车辆进厂预检记录",
        "02车身钣金拆解",
        "03凹陷修复/无腻子精修",
        "04车身校正整形",
        "05环氧底漆防锈处理",
        "06中涂底漆打磨找平",
        "07色漆配色喷涂",
        "08清漆层喷涂",
        "09漆面抛光矫正",
        "10车辆清洁交车",
        "维修前后照片存档",
        "维修工单、报价单",
        "配件耗材清单",
    ]


def create_directories(root_dir, brands, sub_dirs):
    """在本地硬盘创建完整目录结构, 纯文件操作, 无任何网络交互"""
    created_count = 0

    # 创建根目录
    if not os.path.exists(root_dir):
        os.makedirs(root_dir)
        print(f"[成功] 根目录已创建: {root_dir}")
        created_count += 1
    else:
        print(f"[提示] 根目录已存在, 跳过: {root_dir}")

    print()

    # 逐品牌创建子目录
    for brand in brands:
        brand_path = os.path.join(root_dir, brand)

        # 创建品牌文件夹
        if not os.path.exists(brand_path):
            os.makedirs(brand_path)
            created_count += 1

        # 在该品牌下创建13个子目录
        for sub in sub_dirs:
            sub_path = os.path.join(brand_path, sub)
            if not os.path.exists(sub_path):
                os.makedirs(sub_path)
                created_count += 1

        print(f"  [完成] {brand} -- 13个子目录已就绪")

    return created_count


def print_directory_tree(root_dir, brands, sub_dirs):
    """打印完整目录树预览 (仅展示结构, 不创建文件)"""
    print()
    print("=" * 56)
    print("           完整目录结构预览")
    print("=" * 56)
    print()
    print(os.path.basename(root_dir))

    for i, brand in enumerate(brands):
        is_last_brand = (i == len(brands) - 1)
        prefix_brand = "└─" if is_last_brand else "├─"
        prefix_sub  = "   " if is_last_brand else "│  "

        print(f"{prefix_brand}{brand}")

        for j, sub in enumerate(sub_dirs):
            is_last_sub = (j == len(sub_dirs) - 1)
            marker = "└─" if is_last_sub else "├─"
            print(f"{prefix_sub}{marker}{sub}")

    print()


def main():
    """主入口: 显示树形预览后执行创建"""
    print()
    print("=" * 56)
    print("    汽修钣喷客户档案 - 本地文件夹一键生成工具")
    print("    Python版 V1.0 | 纯本地运行 | 零网络依赖")
    print("=" * 56)
    print()

    root_dir = get_root_dir()
    brands = get_brands()
    sub_dirs = get_sub_dirs()

    # 先打印目录树预览
    print_directory_tree(root_dir, brands, sub_dirs)

    # 确认创建
    print("-" * 56)
    print(f"将在以下位置创建文件夹:")
    print(f"  {root_dir}")
    print(f"共计: {len(brands)} 个品牌 x {len(sub_dirs)} 个子目录")
    print(f"      = {len(brands) * len(sub_dirs) + 1} 个文件夹 (含根目录)")
    print("-" * 56)
    print()

    user_input = input("确认创建? 按 Y 继续, 按其他任意键退出: ").strip().upper()
    if user_input != "Y":
        print("已取消操作, 未创建任何文件夹。")
        return

    print()
    print("=" * 56)
    print("           正在创建文件夹...")
    print("=" * 56)
    print()

    count = create_directories(root_dir, brands, sub_dirs)

    print()
    print("=" * 56)
    print("           全部创建完成!")
    print("=" * 56)
    print()
    print(f"  生成位置: {root_dir}")
    print(f"  新创建文件夹: {count} 个")
    print(f"  目录结构: {len(brands)} 个品牌 x {len(sub_dirs)} 个子目录")
    print()
    print("  提示: 本工具仅在本地硬盘创建文件夹, 无任何网络上传/下载行为。")
    print()
    input("按回车键退出...")


if __name__ == "__main__":
    main()
