#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""生成周末任务清单 Word 文档"""

from docx import Document
from docx.shared import Pt, Cm, Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.style import WD_STYLE_TYPE
from docx.oxml.ns import qn
from docx.oxml import OxmlElement

def set_chinese_font(run, font_name='微软雅黑', size=12):
    """设置中文字体"""
    run.font.name = font_name
    run.font.size = Pt(size)
    r = run._element
    r.rPr.rFonts.set(qn('w:eastAsia'), font_name)

def add_title(doc, text, size=20):
    """添加标题"""
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run = p.add_run(text)
    set_chinese_font(run, '微软雅黑', size)
    run.bold = True

def add_subtitle(doc, text, size=14):
    """添加副标题"""
    p = doc.add_paragraph()
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER
    run = p.add_run(text)
    set_chinese_font(run, '微软雅黑', size)

def add_task(doc, emoji, task_name, time_str):
    """添加任务行"""
    p = doc.add_paragraph()
    p.paragraph_format.space_before = Pt(6)
    p.paragraph_format.space_after = Pt(6)
    
    # 复选框
    run = p.add_run('☐ ')
    set_chinese_font(run, '微软雅黑', 14)
    
    # Emoji
    run = p.add_run(f'{emoji} ')
    set_chinese_font(run, '微软雅黑', 14)
    
    # 任务名称
    run = p.add_run(task_name)
    set_chinese_font(run, '微软雅黑', 14)
    
    # 时间
    run = p.add_run(f' （{time_str}）')
    set_chinese_font(run, '微软雅黑', 12)
    run.italic = True

def add_section_title(doc, text):
    """添加小节标题"""
    p = doc.add_paragraph()
    p.paragraph_format.space_before = Pt(12)
    run = p.add_run(text)
    set_chinese_font(run, '微软雅黑', 14)
    run.bold = True

def add_note(doc, text):
    """添加备注"""
    p = doc.add_paragraph()
    p.paragraph_format.space_before = Pt(6)
    run = p.add_run(text)
    set_chinese_font(run, '微软雅黑', 11)
    run.italic = True

def create_xuanbo_doc():
    """创建宣博的任务清单"""
    doc = Document()
    
    # 设置页面边距
    sections = doc.sections
    for section in sections:
        section.top_margin = Cm(2)
        section.bottom_margin = Cm(2)
        section.left_margin = Cm(2.5)
        section.right_margin = Cm(2.5)
    
    # 标题
    add_title(doc, '👦 宣博 周末任务清单', 22)
    add_subtitle(doc, '2026年3月28日 周六', 14)
    
    doc.add_paragraph()  # 空行
    
    # 周末固定任务
    add_section_title(doc, '📝 周末任务')
    add_task(doc, '📖', '看图写话', '30分钟')
    add_task(doc, '🏃', '跳绳', '30分钟')
    add_task(doc, '📚', 'Emma英语学习', '30分钟')
    add_task(doc, '📖', '阅读时间', '30分钟')
    add_task(doc, '✏️', '练字阶段性成果', '30分钟')
    
    # 待补作业
    add_section_title(doc, '📋 待补作业')
    add_task(doc, '📐', '学而思数学课后作业（周五课程）', '40分钟')
    add_task(doc, '📚', '自然拼读课后题', '15分钟')
    add_task(doc, '📋', '检查周一到周五遗漏作业', '30分钟')
    
    doc.add_paragraph()  # 空行
    
    # 时间建议
    add_section_title(doc, '⏰ 时间建议')
    add_note(doc, '🌅 上午 09:00-10:30 学而思数学 + 自然拼读（55分钟）')
    add_note(doc, '🏃 上午 10:30-11:00 跳绳（30分钟）')
    add_note(doc, '🍚 中午 11:00-13:00 午餐、休息')
    add_note(doc, '✏️ 下午 13:00-13:30 练字（30分钟）')
    add_note(doc, '📖 下午 13:30-14:00 看图写话（30分钟）')
    add_note(doc, '📚 下午 14:00-14:30 Emma英语（30分钟）')
    add_note(doc, '📖 下午 14:30-15:00 阅读（30分钟）')
    add_note(doc, '📋 下午 15:00-15:30 检查遗漏作业（30分钟）')
    add_note(doc, '🎮 下午 15:30后 自由活动～')
    
    doc.add_paragraph()  # 空行
    
    # 小提醒
    add_section_title(doc, '💡 小提醒')
    add_note(doc, '• 学而思数学课后作业是周五的课程，记得先复习再做题哦～')
    add_note(doc, '• 自然拼读课后题：先听原声→跟读→练习→再交作业')
    
    return doc

def create_pinxuan_doc():
    """创建品瑄的任务清单"""
    doc = Document()
    
    # 设置页面边距
    sections = doc.sections
    for section in sections:
        section.top_margin = Cm(2)
        section.bottom_margin = Cm(2)
        section.left_margin = Cm(2.5)
        section.right_margin = Cm(2.5)
    
    # 标题
    add_title(doc, '👧 品瑄 周末任务清单', 22)
    add_subtitle(doc, '2026年3月28日 周六', 14)
    
    doc.add_paragraph()  # 空行
    
    # 周末固定任务
    add_section_title(doc, '📝 周末任务')
    add_task(doc, '📋', '语文五三天天练卷子', '40分钟')
    add_task(doc, '🔢', '数学五三天天练卷子', '40分钟')
    add_task(doc, '📝', '英语五三天天练卷子', '30分钟')
    add_task(doc, '✍️', '作文', '45分钟')
    add_task(doc, '📐', '思维小班课举一反三', '30分钟')
    add_task(doc, '✏️', '练字阶段性成果', '30分钟')
    add_task(doc, '📖', '阅读时间', '30分钟')
    add_task(doc, '🏃', '体育运动', '30分钟')
    
    # 待补作业
    add_section_title(doc, '📋 待补作业')
    add_task(doc, '📋', '检查周一到周五遗漏作业', '30分钟')
    
    doc.add_paragraph()  # 空行
    
    # 时间建议
    add_section_title(doc, '⏰ 时间建议')
    add_note(doc, '🌅 上午 09:00-09:40 语文五三天天练（40分钟）')
    add_note(doc, '🔢 上午 09:40-10:20 数学五三天天练（40分钟）')
    add_note(doc, '📝 上午 10:20-10:50 英语五三天天练（30分钟）')
    add_note(doc, '🏃 上午 10:50-11:20 体育运动（30分钟）')
    add_note(doc, '🍚 中午 11:20-13:00 午餐、休息')
    add_note(doc, '✍️ 下午 13:00-13:45 作文（45分钟）')
    add_note(doc, '📐 下午 13:45-14:15 思维小班课举一反三（30分钟）')
    add_note(doc, '✏️ 下午 14:15-14:45 练字（30分钟）')
    add_note(doc, '📖 下午 14:45-15:15 阅读（30分钟）')
    add_note(doc, '📋 下午 15:15-15:45 检查遗漏作业（30分钟）')
    add_note(doc, '🎨 下午 15:45后 自由活动～做手工！')
    
    doc.add_paragraph()  # 空行
    
    # 小提醒
    add_section_title(doc, '💡 小提醒')
    add_note(doc, '• 作文可以先用思维导图整理思路，再动笔写会更轻松～')
    add_note(doc, '• 英语五三天天练遇到不熟悉的单词，标记出来，之后重点复习')
    
    return doc

if __name__ == '__main__':
    # 生成宣博的任务清单
    doc_xuanbo = create_xuanbo_doc()
    doc_xuanbo.save('/root/.openclaw/workspace/study/宣博/宣博_周六任务清单_20260328.docx')
    print('✅ 宣博任务清单已生成')
    
    # 生成品瑄的任务清单
    doc_pinxuan = create_pinxuan_doc()
    doc_pinxuan.save('/root/.openclaw/workspace/study/品瑄/品瑄_周六任务清单_20260328.docx')
    print('✅ 品瑄任务清单已生成')
