# Generated by Django 5.2.16 on 2026-08-16 12:19 import django.db.models.deletion import uuid from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('ventures', '0005_alter_autonomousoperabilityassessment_venture_track_and_more'), ] operations = [ migrations.CreateModel( name='PreTokenMonetizationAssessment', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('mode', models.CharField(choices=[('NONE', 'None'), ('PAID_BETA_ACCESS', 'Paid Beta Access'), ('SERVICE_CREDITS', 'Service Credits'), ('STABLECOIN_USAGE_FEES', 'Stablecoin Usage Fees'), ('SUBSCRIPTION', 'Subscription'), ('FOUNDING_MEMBERSHIP', 'Founding Membership'), ('FOUNDING_MEMBERSHIP_NFT', 'Founding Membership Nft'), ('OTHER', 'Other')], default='NONE', max_length=40)), ('pre_token_monetization_potential', models.FloatField(default=0.0)), ('pre_token_business', models.TextField(blank=True)), ('immediate_utility', models.JSONField(blank=True, default=list)), ('revenue_ladder', models.JSONField(blank=True, default=dict)), ('founding_membership_policy', models.JSONField(blank=True, default=dict)), ('autonomous_fulfillment_notes', models.TextField(blank=True)), ('metadata', models.JSONField(blank=True, default=dict)), ('proposal', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='pretoken_monetization', to='ventures.companyproposal')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='ProtocolSecurityAssessment', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('decision', models.CharField(choices=[('PASS_FOR_TESTNET_DESIGN', 'Pass For Testnet Design'), ('REVISE_SECURITY_MODEL', 'Revise Security Model'), ('BLOCK_TESTNET', 'Block Testnet')], max_length=40)), ('threat_model', models.JSONField(blank=True, default=dict)), ('missing_controls', models.JSONField(blank=True, default=list)), ('privileged_roles', models.JSONField(blank=True, default=list)), ('economic_attack_surfaces', models.JSONField(blank=True, default=list)), ('key_management_assumptions', models.JSONField(blank=True, default=list)), ('rationale', models.TextField(blank=True)), ('metadata', models.JSONField(blank=True, default=dict)), ('proposal', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='protocol_security_assessment', to='ventures.companyproposal')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='TokenEconomicModel', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('unit_of_service', models.CharField(blank=True, max_length=160)), ('expected_usage_frequency', models.CharField(blank=True, max_length=160)), ('transaction_fee_model', models.TextField(blank=True)), ('average_fee', models.FloatField(default=0.0)), ('payment_asset', models.CharField(blank=True, max_length=80)), ('stake_requirement', models.FloatField(default=0.0)), ('collateral_requirement', models.FloatField(default=0.0)), ('provider_count', models.PositiveIntegerField(default=0)), ('demand_side_users', models.PositiveIntegerField(default=0)), ('slash_event_assumptions', models.JSONField(blank=True, default=dict)), ('slash_amount', models.FloatField(default=0.0)), ('emission_schedule', models.JSONField(blank=True, default=dict)), ('bootstrap_subsidies', models.FloatField(default=0.0)), ('treasury_share', models.FloatField(default=0.0)), ('provider_reward_share', models.FloatField(default=0.0)), ('token_sinks', models.JSONField(blank=True, default=list)), ('unlock_assumptions', models.JSONField(blank=True, default=dict)), ('circulation_assumptions', models.JSONField(blank=True, default=dict)), ('metadata', models.JSONField(blank=True, default=dict)), ('proposal', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='token_economic_model', to='ventures.companyproposal')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='TokenLaunchReadinessAssessment', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('real_users', models.BooleanField(default=False)), ('repeat_usage', models.BooleanField(default=False)), ('real_protocol_fees', models.BooleanField(default=False)), ('token_necessity_validated', models.BooleanField(default=False)), ('token_demand_loop_validated', models.BooleanField(default=False)), ('security_audit_status', models.CharField(blank=True, max_length=120)), ('testnet_stability', models.CharField(blank=True, max_length=120)), ('tokenomics_stress_tests', models.JSONField(blank=True, default=dict)), ('legal_review_status', models.CharField(blank=True, max_length=120)), ('jurisdiction_policy_status', models.CharField(blank=True, max_length=120)), ('admin_key_controls', models.CharField(blank=True, max_length=120)), ('treasury_controls', models.CharField(blank=True, max_length=120)), ('decentralization_readiness', models.CharField(blank=True, max_length=120)), ('launch_readiness_status', models.CharField(choices=[('NOT_READY', 'Not Ready'), ('PRODUCT_TRACTION_REQUIRED', 'Product Traction Required'), ('TOKEN_MODEL_REVISION_REQUIRED', 'Token Model Revision Required'), ('SECURITY_REVIEW_REQUIRED', 'Security Review Required'), ('LEGAL_REVIEW_REQUIRED', 'Legal Review Required'), ('READY_FOR_HUMAN_LAUNCH_REVIEW', 'Ready For Human Launch Review')], default='NOT_READY', max_length=60)), ('metadata', models.JSONField(blank=True, default=dict)), ('proposal', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='token_launch_readiness', to='ventures.companyproposal')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='TokenRoleDecomposition', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('roles', models.JSONField(blank=True, default=dict)), ('required_roles', models.JSONField(blank=True, default=list)), ('stablecoin_counterfactual', models.JSONField(blank=True, default=dict)), ('native_token_removed_outcome', models.TextField(blank=True)), ('metadata', models.JSONField(blank=True, default=dict)), ('proposal', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='token_role_decomposition', to='ventures.companyproposal')), ], options={ 'abstract': False, }, ), ]