"""Add project_billing_extras: per-project markup percentage + fixed monthly fee.

Covers Cloud/Infra costs not directly measured by CF (support, generic platform
overhead). Applied in the daily settlement task (src/workers/tasks/usage_snapshot.py)
on top of metered backend-service usage, per project.

Revision ID: 106
Revises: 105
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql

revision = "106"
down_revision = "105"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.create_table(
        "project_billing_extras",
        sa.Column("project_id", postgresql.UUID(as_uuid=True), primary_key=True),
        sa.Column("markup_percentage", sa.Numeric(6, 3), nullable=False, server_default="0"),
        sa.Column("fixed_monthly_fee_credits", sa.Numeric(12, 4), nullable=False, server_default="0"),
        sa.Column("created_at", sa.DateTime(timezone=True), server_default=sa.func.now(), nullable=False),
        sa.Column("updated_at", sa.DateTime(timezone=True), server_default=sa.func.now(), nullable=False),
        sa.ForeignKeyConstraint(["project_id"], ["projects.id"], ondelete="CASCADE"),
    )


def downgrade() -> None:
    op.drop_table("project_billing_extras")
