"""add addons_ratings table

Revision ID: b0c1d2e3f4a5
Revises: a8b9c0d1e2f3
Create Date: 2026-06-10
"""
from alembic import op
import sqlalchemy as sa

revision = 'b0c1d2e3f4a5'
down_revision = 'a8b9c0d1e2f3'
branch_labels = None
depends_on = None


def upgrade():
    op.create_table(
        'addons_ratings',
        sa.Column('id', sa.Integer, primary_key=True, autoincrement=True),
        sa.Column('order_id', sa.Integer, nullable=False, index=True),
        sa.Column('product_id', sa.Integer, nullable=False, index=True),
        sa.Column('product_name', sa.String(255), nullable=True),
        sa.Column('review_date', sa.Date, nullable=True),
        sa.Column('purchase_date', sa.Date, nullable=True),
        sa.Column('review_text', sa.Text, nullable=True),
        sa.Column('locale', sa.String(10), nullable=True),
        sa.Column('format', sa.String(10), nullable=False),
        sa.Column('customer_name', sa.String(255), nullable=True),
        sa.Column('star_rating', sa.Integer, nullable=True),
        sa.Column('has_seller_reply', sa.Boolean, nullable=False, server_default='false'),
        sa.Column('seller_reply_date', sa.Date, nullable=True),
        sa.Column('score_module', sa.Float, nullable=True),
        sa.Column('score_docs', sa.Float, nullable=True),
        sa.Column('score_install', sa.Float, nullable=True),
        sa.Column('score_average', sa.Float, nullable=True),
        sa.Column('skill_level', sa.String(50), nullable=True),
        sa.Column('imported_at', sa.DateTime, nullable=False,
                  server_default=sa.func.now()),
        sa.UniqueConstraint('order_id', 'product_id', name='uq_rating_order_product'),
    )


def downgrade():
    op.drop_table('addons_ratings')
