166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

166 ajustar lista de ramal - #167

Merged
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal
Oct 1, 2025
Merged

166 ajustar lista de ramal#167
rbxyz merged 3 commits into
mainfrom
166-ajustar-lista-de-ramal

Conversation

@rbxyz

@rbxyzrbxyz commented Oct 1, 2025

Copy link
Copy Markdown
Collaborator

Summary by CodeRabbit

  • New Features

    • Export ramais to Excel (Setor, Nome, Ramal, Email).
    • Added custom ramal fields: Setor and Nome; fully editable.
    • New Setor column and reordered table (Setor, Nome, Ramal, Email).
    • Context-aware dialogs and actions for Manual vs Colaborador entries.
    • Unified refresh after create/update/delete for up-to-date lists.
  • Bug Fixes

    • Improved validation and clear error messages for invalid emails during ramal updates.
  • Chores

    • Backend data model aligned with new ramal fields and naming for improved consistency.

@vercel

vercelBot commented Oct 1, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloReadyReadyPreviewCommentOct 1, 2025 2:15pm

@rbxyz
rbxyz merged commit ce75d13 into mainOct 1, 2025
3 checks passed
@coderabbitai

coderabbitaiBot commented Oct 1, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Initial database migration adds comprehensive public schema with enums, tables, indexes, and FKs. Prisma schema renames CustomExtension to custom_extension, adds new user fields, and maps to custom_extensions. UI and API updated to use new model and snake_case TRPC procedures, extend ramal fields, and add Excel export on the extensions page.

Changes

Cohort / File(s)Summary
Database bootstrap
prisma/migrations/0_init/migration.sql
Adds initial schema with multiple ENUMs, tables (users, content, commerce, forms, notifications, chat, analytics), indexes, defaults, and FK constraints; includes join tables and mappings for custom_extensions and others.
Prisma models
prisma/schema.prisma
Renames model CustomExtension to custom_extension (mapped to "custom_extensions"); adds relations, indexes, and fields; updates User with optional nameExtension and setorExtension; updates User.customExtensions type to custom_extension[].
API router
src/server/api/routers/user.ts
Renames TRPC procedures to snake_case: listcustom_extensions/createcustom_extension/updatecustom_extension/deletecustom_extension; updates Prisma model references to custom_extension; extends updateExtension to handle emailExtension, nameExtension, setorExtension; listExtensions selects new fields.
Extension UIs
src/app/(authenticated)/admin/extension/page.tsx, src/app/(authenticated)/extension/page.tsx
Updates imports/types from CustomExtension to custom_extension; switches to renamed TRPC procedures; adds Setor/Name fields to edit flows; introduces Excel export (XLSX) on main extensions page; refetch aggregator used after mutations; UI columns adjusted.

Sequence Diagram(s)

sequenceDiagram
autonumber
participant U as User
participant FE as Extensions Page (FE)
participant API as TRPC user router
participant DB as Prisma/DB
rect rgba(200,230,255,0.3)
note right of FE: Load data
U->>FE: Open extensions
FE->>API: listExtensions(), listcustom_extensions()
API->>DB: users.select(nameExtension,setorExtension,extension,emailExtension)
API->>DB: custom_extension.findMany()
DB-->>API: Results
API-->>FE: Merged datasets
end
rect rgba(230,255,230,0.4)
note right of FE: Edit user ramal
U->>FE: Save changes (extension, email/name/setor)
FE->>API: updateExtension({ extension, emailExtension, nameExtension, setorExtension })
API->>DB: user.update(...)
DB-->>API: Updated user
API-->>FE: OK
FE->>API: refetch listExtensions + listcustom_extensions
end
rect rgba(255,240,200,0.4)
note right of FE: Manage manual contact
U->>FE: Create/Update/Delete manual ramal
FE->>API: create/update/deletecustom_extension(...)
API->>DB: custom_extension.create/update/delete
DB-->>API: Result
API-->>FE: OK
FE->>API: refetch both lists
end
rect rgba(245,245,255,0.5)
note right of FE: Export
U->>FE: Click Exportar Excel
FE->>FE: Build workbook (Setor, Nome, Ramal, Email)
FE-->>U: Download .xlsx
end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Poem

A rabbit dials a brand-new tone,
With setor, name, and ramal shown.
I export sheets—xlsx delight—
Hop-hop, the rows align just right.
New routes in snake_case softly hum,
custom_extension beating drum.
Schema set—let features come! 🐇📞📊

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 166-ajustar-lista-de-ramal

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a6ce8b4 and 0f3166a.

📒 Files selected for processing (5)
  • prisma/migrations/0_init/migration.sql (1 hunks)
  • prisma/schema.prisma (3 hunks)
  • src/app/(authenticated)/admin/extension/page.tsx (5 hunks)
  • src/app/(authenticated)/extension/page.tsx (20 hunks)
  • src/server/api/routers/user.ts (10 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rbxyzrbxyz linked an issue Oct 1, 2025 that may be closed by this pull request
@coderabbitaicoderabbitaiBot mentioned this pull request Oct 6, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ajustar lista de ramal

1 participant

@rbxyz