131 lines
8.4 KiB
Python
131 lines
8.4 KiB
Python
|
|
# 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,
|
||
|
|
},
|
||
|
|
),
|
||
|
|
]
|