{ "tables": [ { "name": "users", "domain": "Aplicação existente", "purpose": "Autenticação Laravel/Fortify", "columns": [ { "name": "id", "type": "bigint", "nullable": false, "default": "nextval('users_id_seq'::regclass)", "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "id()", "description": "id" }, { "name": "name", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "string('name')", "description": "name" }, { "name": "email", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "string('email')->unique()", "description": "email" }, { "name": "email_verified_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "timestamp('email_verified_at')->nullable()", "description": "email verified at" }, { "name": "password", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "string('password')", "description": "password" }, { "name": "remember_token", "type": "character varying(100)", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "rememberToken()", "description": "remember token" }, { "name": "created_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "timestamps()", "description": "created at" }, { "name": "updated_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "timestamps()", "description": "updated at" }, { "name": "two_factor_secret", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php", "definition": "text('two_factor_secret')->after('password')->nullable()", "description": "two factor secret" }, { "name": "two_factor_recovery_codes", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php", "definition": "text('two_factor_recovery_codes')->after('two_factor_secret')->nullable()", "description": "two factor recovery codes" }, { "name": "two_factor_confirmed_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2025_08_14_170933_add_two_factor_columns_to_users_table.php", "definition": "timestamp('two_factor_confirmed_at')->after('two_factor_recovery_codes')->nullable()", "description": "two factor confirmed at" } ], "pk": [ "id" ], "migration": "database/migrations/0001_01_01_000000_create_users_table.php" }, { "name": "password_reset_tokens", "domain": "Aplicação existente", "purpose": "Recuperação de palavra-passe", "columns": [ { "name": "email", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "string('email')->primary()", "description": "email" }, { "name": "token", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "string('token')", "description": "token" }, { "name": "created_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "timestamp('created_at')->nullable()", "description": "created at" } ], "pk": [ "email" ], "migration": "database/migrations/0001_01_01_000000_create_users_table.php" }, { "name": "sessions", "domain": "Aplicação existente", "purpose": "Sessões Laravel", "columns": [ { "name": "id", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "string('id')->primary()", "description": "id" }, { "name": "user_id", "type": "bigint", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "foreignId('user_id')->nullable()->index()", "description": "user id" }, { "name": "ip_address", "type": "character varying(45)", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "string('ip_address', 45)->nullable()", "description": "ip address" }, { "name": "user_agent", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "text('user_agent')->nullable()", "description": "user agent" }, { "name": "payload", "type": "text", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "longText('payload')", "description": "payload" }, { "name": "last_activity", "type": "integer", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "definition": "integer('last_activity')->index()", "description": "last activity" } ], "pk": [ "id" ], "migration": "database/migrations/0001_01_01_000000_create_users_table.php" }, { "name": "cache", "domain": "Aplicação existente", "purpose": "Cache Laravel", "columns": [ { "name": "key", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "definition": "string('key')->primary()", "description": "key" }, { "name": "value", "type": "text", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "definition": "mediumText('value')", "description": "value" }, { "name": "expiration", "type": "bigint", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "definition": "bigInteger('expiration')->index()", "description": "expiration" } ], "pk": [ "key" ], "migration": "database/migrations/0001_01_01_000001_create_cache_table.php" }, { "name": "cache_locks", "domain": "Aplicação existente", "purpose": "Bloqueios de cache", "columns": [ { "name": "key", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "definition": "string('key')->primary()", "description": "key" }, { "name": "owner", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "definition": "string('owner')", "description": "owner" }, { "name": "expiration", "type": "bigint", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "definition": "bigInteger('expiration')->index()", "description": "expiration" } ], "pk": [ "key" ], "migration": "database/migrations/0001_01_01_000001_create_cache_table.php" }, { "name": "jobs", "domain": "Aplicação existente", "purpose": "Fila Laravel", "columns": [ { "name": "id", "type": "bigint", "nullable": false, "default": "nextval('jobs_id_seq'::regclass)", "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "id()", "description": "id" }, { "name": "queue", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "string('queue')->index()", "description": "queue" }, { "name": "payload", "type": "text", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "longText('payload')", "description": "payload" }, { "name": "attempts", "type": "smallint", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "unsignedSmallInteger('attempts')", "description": "attempts" }, { "name": "reserved_at", "type": "integer", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "unsignedInteger('reserved_at')->nullable()", "description": "reserved at" }, { "name": "available_at", "type": "integer", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "unsignedInteger('available_at')", "description": "available at" }, { "name": "created_at", "type": "integer", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "unsignedInteger('created_at')", "description": "created at" } ], "pk": [ "id" ], "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php" }, { "name": "job_batches", "domain": "Aplicação existente", "purpose": "Lotes de jobs", "columns": [ { "name": "id", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "string('id')->primary()", "description": "id" }, { "name": "name", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "string('name')", "description": "name" }, { "name": "total_jobs", "type": "integer", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "integer('total_jobs')", "description": "total jobs" }, { "name": "pending_jobs", "type": "integer", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "integer('pending_jobs')", "description": "pending jobs" }, { "name": "failed_jobs", "type": "integer", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "integer('failed_jobs')", "description": "failed jobs" }, { "name": "failed_job_ids", "type": "text", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "longText('failed_job_ids')", "description": "failed job ids" }, { "name": "options", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "mediumText('options')->nullable()", "description": "options" }, { "name": "cancelled_at", "type": "integer", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "integer('cancelled_at')->nullable()", "description": "cancelled at" }, { "name": "created_at", "type": "integer", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "integer('created_at')", "description": "created at" }, { "name": "finished_at", "type": "integer", "nullable": true, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "integer('finished_at')->nullable()", "description": "finished at" } ], "pk": [ "id" ], "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php" }, { "name": "failed_jobs", "domain": "Aplicação existente", "purpose": "Falhas de jobs", "columns": [ { "name": "id", "type": "bigint", "nullable": false, "default": "nextval('failed_jobs_id_seq'::regclass)", "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "id()", "description": "id" }, { "name": "uuid", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "string('uuid')->unique()", "description": "uuid" }, { "name": "connection", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "string('connection')", "description": "connection" }, { "name": "queue", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "string('queue')", "description": "queue" }, { "name": "payload", "type": "text", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "longText('payload')", "description": "payload" }, { "name": "exception", "type": "text", "nullable": false, "default": null, "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "longText('exception')", "description": "exception" }, { "name": "failed_at", "type": "timestamp(0) without time zone", "nullable": false, "default": "CURRENT_TIMESTAMP", "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "definition": "timestamp('failed_at')->useCurrent()", "description": "failed at" } ], "pk": [ "id" ], "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php" }, { "name": "passkeys", "domain": "Aplicação existente", "purpose": "Credenciais passkey", "columns": [ { "name": "id", "type": "bigint", "nullable": false, "default": "nextval('passkeys_id_seq'::regclass)", "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "id()", "description": "id" }, { "name": "user_id", "type": "bigint", "nullable": false, "default": null, "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "foreignId('user_id')->constrained()->cascadeOnDelete()", "description": "user id" }, { "name": "name", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "string('name')", "description": "name" }, { "name": "credential_id", "type": "character varying(255)", "nullable": false, "default": null, "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "string('credential_id')->unique()", "description": "credential id" }, { "name": "credential", "type": "json", "nullable": false, "default": null, "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "json('credential')", "description": "credential" }, { "name": "last_used_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "timestamp('last_used_at')->nullable()", "description": "last used at" }, { "name": "created_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "timestamps()", "description": "created at" }, { "name": "updated_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "definition": "timestamps()", "description": "updated at" } ], "pk": [ "id" ], "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php" }, { "name": "sectors", "domain": "Aplicação existente", "purpose": "Sectores do catálogo público", "columns": [ { "name": "id", "type": "bigint", "nullable": false, "default": "nextval('sectors_id_seq'::regclass)", "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "id()", "description": "id" }, { "name": "name", "type": "character varying(150)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "string('name', 150)", "description": "name" }, { "name": "slug", "type": "character varying(180)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "string('slug', 180)->unique()", "description": "slug" }, { "name": "short_description", "type": "character varying(255)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "string('short_description', 255)->nullable()", "description": "short description" }, { "name": "description", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "text('description')->nullable()", "description": "description" }, { "name": "icon", "type": "character varying(100)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "string('icon', 100)->nullable()", "description": "icon" }, { "name": "sort_order", "type": "integer", "nullable": false, "default": "0", "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "unsignedInteger('sort_order')->default(0)", "description": "sort order" }, { "name": "is_active", "type": "boolean", "nullable": false, "default": "true", "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "boolean('is_active')->default(true)", "description": "is active" }, { "name": "published_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "timestamp('published_at')->nullable()", "description": "published at" }, { "name": "created_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "timestamps()", "description": "created at" }, { "name": "updated_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "timestamps()", "description": "updated at" }, { "name": "deleted_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "definition": "softDeletes()", "description": "deleted at" } ], "pk": [ "id" ], "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php" }, { "name": "opportunities", "domain": "Aplicação existente", "purpose": "Catálogo público de oportunidades", "columns": [ { "name": "id", "type": "bigint", "nullable": false, "default": "nextval('opportunities_id_seq'::regclass)", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "id()", "description": "id" }, { "name": "sector_id", "type": "bigint", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "foreignId('sector_id')\n ->constrained('sectors')\n ->cascadeOnUpdate()\n ->restrictOnDelete()", "description": "sector id" }, { "name": "reference", "type": "character varying(80)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('reference', 80)->unique()", "description": "reference" }, { "name": "title", "type": "character varying(200)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('title', 200)", "description": "title" }, { "name": "slug", "type": "character varying(220)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('slug', 220)->unique()", "description": "slug" }, { "name": "summary", "type": "character varying(500)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('summary', 500)->nullable()", "description": "summary" }, { "name": "description", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "longText('description')->nullable()", "description": "description" }, { "name": "province", "type": "character varying(100)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('province', 100)->nullable()", "description": "province" }, { "name": "district", "type": "character varying(100)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('district', 100)->nullable()", "description": "district" }, { "name": "promoter_name", "type": "character varying(200)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('promoter_name', 200)->nullable()", "description": "promoter name" }, { "name": "promoter_type", "type": "character varying(100)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('promoter_type', 100)->nullable()", "description": "promoter type" }, { "name": "maturity_level", "type": "smallint", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "unsignedTinyInteger('maturity_level')->nullable()", "description": "maturity level" }, { "name": "maturity_label", "type": "character varying(120)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('maturity_label', 120)->nullable()", "description": "maturity label" }, { "name": "estimated_investment_amount", "type": "numeric(18,2)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "decimal('estimated_investment_amount', 18, 2)->nullable()", "description": "estimated investment amount" }, { "name": "estimated_investment_currency", "type": "character varying(10)", "nullable": false, "default": "'USD'", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('estimated_investment_currency', 10)->default('USD')", "description": "estimated investment currency" }, { "name": "financing_modality", "type": "character varying(120)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('financing_modality', 120)->nullable()", "description": "financing modality" }, { "name": "expected_impact", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "text('expected_impact')->nullable()", "description": "expected impact" }, { "name": "status", "type": "character varying(50)", "nullable": false, "default": "'draft'", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "string('status', 50)->default('draft')", "description": "status" }, { "name": "is_featured", "type": "boolean", "nullable": false, "default": "false", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "boolean('is_featured')->default(false)", "description": "is featured" }, { "name": "published_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "timestamp('published_at')->nullable()", "description": "published at" }, { "name": "last_validated_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "timestamp('last_validated_at')->nullable()", "description": "last validated at" }, { "name": "created_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "timestamps()", "description": "created at" }, { "name": "updated_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "timestamps()", "description": "updated at" }, { "name": "deleted_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "definition": "softDeletes()", "description": "deleted at" } ], "pk": [ "id" ], "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php" }, { "name": "interest_requests", "domain": "Aplicação existente", "purpose": "Manifestações de interesse", "columns": [ { "name": "id", "type": "bigint", "nullable": false, "default": "nextval('interest_requests_id_seq'::regclass)", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "id()", "description": "id" }, { "name": "opportunity_id", "type": "bigint", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "foreignId('opportunity_id')\n ->nullable()\n ->constrained('opportunities')\n ->cascadeOnUpdate()\n ->nullOnDelete()", "description": "opportunity id" }, { "name": "reference", "type": "character varying(80)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('reference', 80)->unique()", "description": "reference" }, { "name": "full_name", "type": "character varying(150)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('full_name', 150)", "description": "full name" }, { "name": "email", "type": "character varying(150)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('email', 150)", "description": "email" }, { "name": "phone", "type": "character varying(30)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('phone', 30)->nullable()", "description": "phone" }, { "name": "investor_type", "type": "character varying(80)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('investor_type', 80)", "description": "investor type" }, { "name": "country", "type": "character varying(100)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('country', 100)", "description": "country" }, { "name": "sector_interest", "type": "character varying(150)", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('sector_interest', 150)", "description": "sector interest" }, { "name": "opportunity_reference", "type": "character varying(80)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('opportunity_reference', 80)->nullable()", "description": "opportunity reference" }, { "name": "investment_range", "type": "character varying(80)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('investment_range', 80)->nullable()", "description": "investment range" }, { "name": "message", "type": "text", "nullable": false, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "text('message')", "description": "message" }, { "name": "privacy_consent", "type": "boolean", "nullable": false, "default": "false", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "boolean('privacy_consent')->default(false)", "description": "privacy consent" }, { "name": "consented_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "timestamp('consented_at')->nullable()", "description": "consented at" }, { "name": "status", "type": "character varying(50)", "nullable": false, "default": "'received'", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('status', 50)->default('received')", "description": "status" }, { "name": "source_page", "type": "character varying(255)", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "string('source_page', 255)->nullable()", "description": "source page" }, { "name": "ip_address", "type": "inet", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "ipAddress('ip_address')->nullable()", "description": "ip address" }, { "name": "user_agent", "type": "text", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "text('user_agent')->nullable()", "description": "user agent" }, { "name": "metadata", "type": "json", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "json('metadata')->nullable()", "description": "metadata" }, { "name": "reviewed_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "timestamp('reviewed_at')->nullable()", "description": "reviewed at" }, { "name": "reviewed_by", "type": "bigint", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "foreignId('reviewed_by')->nullable()->constrained('users')->nullOnDelete()", "description": "reviewed by" }, { "name": "created_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "timestamps()", "description": "created at" }, { "name": "updated_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "timestamps()", "description": "updated at" }, { "name": "deleted_at", "type": "timestamp(0) without time zone", "nullable": true, "default": null, "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "definition": "softDeletes()", "description": "deleted at" } ], "pk": [ "id" ], "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php" } ], "relationships": [ { "table": "passkeys", "column": "user_id", "target": "users", "target_column": "id", "nullable": false, "on_delete": "CASCADE", "on_update": "NO ACTION", "name": "passkeys_user_id_foreign", "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "logical": false }, { "table": "opportunities", "column": "sector_id", "target": "sectors", "target_column": "id", "nullable": false, "on_delete": "RESTRICT", "on_update": "CASCADE", "name": "opportunities_sector_id_foreign", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "logical": false }, { "table": "interest_requests", "column": "opportunity_id", "target": "opportunities", "target_column": "id", "nullable": true, "on_delete": "SET NULL", "on_update": "CASCADE", "name": "interest_requests_opportunity_id_foreign", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "logical": false }, { "table": "interest_requests", "column": "reviewed_by", "target": "users", "target_column": "id", "nullable": true, "on_delete": "SET NULL", "on_update": "NO ACTION", "name": "interest_requests_reviewed_by_foreign", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "logical": false } ], "indexes": [ { "table": "users", "columns": [ "email" ], "unique": true, "method": "btree", "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "name": "users_email_unique", "predicate": null }, { "table": "sessions", "columns": [ "user_id" ], "unique": false, "method": "btree", "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "name": "sessions_user_id_index", "predicate": null }, { "table": "sessions", "columns": [ "last_activity" ], "unique": false, "method": "btree", "migration": "database/migrations/0001_01_01_000000_create_users_table.php", "name": "sessions_last_activity_index", "predicate": null }, { "table": "cache", "columns": [ "expiration" ], "unique": false, "method": "btree", "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "name": "cache_expiration_index", "predicate": null }, { "table": "cache_locks", "columns": [ "expiration" ], "unique": false, "method": "btree", "migration": "database/migrations/0001_01_01_000001_create_cache_table.php", "name": "cache_locks_expiration_index", "predicate": null }, { "table": "jobs", "columns": [ "queue" ], "unique": false, "method": "btree", "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "name": "jobs_queue_index", "predicate": null }, { "table": "failed_jobs", "columns": [ "uuid" ], "unique": true, "method": "btree", "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "name": "failed_jobs_uuid_unique", "predicate": null }, { "table": "failed_jobs", "columns": [ "connection", "queue", "failed_at" ], "unique": false, "method": "btree", "migration": "database/migrations/0001_01_01_000002_create_jobs_table.php", "name": "failed_jobs_connection_queue_failed_at_index", "predicate": null }, { "table": "passkeys", "columns": [ "credential_id" ], "unique": true, "method": "btree", "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "name": "passkeys_credential_id_unique", "predicate": null }, { "table": "passkeys", "columns": [ "user_id" ], "unique": false, "method": "btree", "migration": "database/migrations/2024_01_01_000000_create_passkeys_table.php", "name": "passkeys_user_id_index", "predicate": null }, { "table": "sectors", "columns": [ "slug" ], "unique": true, "method": "btree", "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "name": "sectors_slug_unique", "predicate": null }, { "table": "sectors", "columns": [ "slug" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "name": "sectors_slug_index", "predicate": null }, { "table": "sectors", "columns": [ "is_active" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000001_create_sectors_table.php", "name": "sectors_is_active_index", "predicate": null }, { "table": "opportunities", "columns": [ "reference" ], "unique": true, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_reference_unique", "predicate": null }, { "table": "opportunities", "columns": [ "slug" ], "unique": true, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_slug_unique", "predicate": null }, { "table": "opportunities", "columns": [ "sector_id" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_sector_id_index", "predicate": null }, { "table": "opportunities", "columns": [ "reference" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_reference_index", "predicate": null }, { "table": "opportunities", "columns": [ "slug" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_slug_index", "predicate": null }, { "table": "opportunities", "columns": [ "status" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_status_index", "predicate": null }, { "table": "opportunities", "columns": [ "is_featured" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_is_featured_index", "predicate": null }, { "table": "opportunities", "columns": [ "province" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_province_index", "predicate": null }, { "table": "opportunities", "columns": [ "maturity_level" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000002_create_opportunities_table.php", "name": "opportunities_maturity_level_index", "predicate": null }, { "table": "interest_requests", "columns": [ "reference" ], "unique": true, "method": "btree", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "name": "interest_requests_reference_unique", "predicate": null }, { "table": "interest_requests", "columns": [ "reference" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "name": "interest_requests_reference_index", "predicate": null }, { "table": "interest_requests", "columns": [ "email" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "name": "interest_requests_email_index", "predicate": null }, { "table": "interest_requests", "columns": [ "status" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "name": "interest_requests_status_index", "predicate": null }, { "table": "interest_requests", "columns": [ "created_at" ], "unique": false, "method": "btree", "migration": "database/migrations/2026_01_01_000003_create_interest_requests_table.php", "name": "interest_requests_created_at_index", "predicate": null } ] }