#!/usr/bin/env python3
"""
Traditional Banner of Peace Generator
Creates the authentic Roerich Pax Cultura symbol: three solid circles within a larger circle
"""

import math
import xml.etree.ElementTree as ET

class TraditionalBanner:
    def __init__(self, size=300):
        self.size = size
        self.center = size / 2
        
        # Traditional proportions
        self.outer_radius = size * 0.4
        self.inner_radius = self.outer_radius * 0.2  # Small solid circles
        self.ring_width = self.outer_radius * 0.08  # Outer ring width
        
    def calculate_trinity_centers(self):
        """Calculate centers of three inner circles in traditional arrangement"""
        centers = []
        
        # Distance from center - traditional proportion
        distance = self.outer_radius * 0.5
        
        for i in range(3):
            # Start from top and rotate 120 degrees
            angle = -math.pi/2 + i * (2 * math.pi / 3)
            x = self.center + distance * math.cos(angle)
            y = self.center + distance * math.sin(angle)
            centers.append((x, y))
            
        return centers
    
    def generate_svg(self):
        """Generate the traditional Banner of Peace SVG"""
        # Create SVG root
        svg = ET.Element('svg')
        svg.set('xmlns', 'http://www.w3.org/2000/svg')
        svg.set('width', str(self.size))
        svg.set('height', str(self.size))
        svg.set('viewBox', f'0 0 {self.size} {self.size}')
        
        # Add title
        title = ET.SubElement(svg, 'title')
        title.text = "Traditional Banner of Peace - Pax Cultura"
        
        # White background
        bg = ET.SubElement(svg, 'rect')
        bg.set('width', str(self.size))
        bg.set('height', str(self.size))
        bg.set('fill', 'white')
        
        # Main group
        g = ET.SubElement(svg, 'g', id='banner-of-peace-traditional')
        
        # Outer circle (ring)
        outer = ET.SubElement(g, 'circle')
        outer.set('cx', str(self.center))
        outer.set('cy', str(self.center))
        outer.set('r', str(self.outer_radius - self.ring_width/2))
        outer.set('fill', 'none')
        outer.set('stroke', '#D2393C')
        outer.set('stroke-width', str(self.ring_width))
        
        # Three solid inner circles
        centers = self.calculate_trinity_centers()
        for i, (cx, cy) in enumerate(centers):
            circle = ET.SubElement(g, 'circle')
            circle.set('cx', str(cx))
            circle.set('cy', str(cy))
            circle.set('r', str(self.inner_radius))
            circle.set('fill', '#D2393C')
            
        return svg
    
    def save(self, filename):
        """Save the SVG to file"""
        svg = self.generate_svg()
        tree = ET.ElementTree(svg)
        ET.indent(tree, space='  ')
        
        with open(filename, 'wb') as f:
            f.write(b'<?xml version="1.0" encoding="UTF-8"?>\n')
            tree.write(f, encoding='utf-8', xml_declaration=False)
        
        print(f"Traditional Banner of Peace saved to {filename}")


if __name__ == "__main__":
    # Generate traditional version
    banner = TraditionalBanner(size=300)
    banner.save('hulylabs.com/public/banner_of_peace_traditional.svg')
    
    # The interlocking version might be a beautiful accident or deeper truth!
    print("\n🎨 Both versions created - traditional and the mysterious interlocking pattern!")