Files
Investidor-V2/docs/investmoz/legacy-schema.json
T
nala 250ac35fd1
tests / ci (push) Canceled after 0s
first commit
2026-09-28 10:01:09 +02:00

1550 lines
51 KiB
JSON

{
"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
}
]
}