Files
gh-venturo-id-venturo-claud…/commands/new-crud.md
2025-11-30 09:04:43 +08:00

3.3 KiB

description
description
Quick CRUD entity design (simplified version of new-feature)

New CRUD Entity Creation

You will guide the user through creating a simple CRUD entity with ERD, DBML, PostgreSQL migration, and standard API contract.

Workflow

This command uses an incremental 3-phase workflow for quick CRUD entity creation.

Interactive Discovery

Ask the user these questions first:

  1. Entity name (singular, snake_case, e.g., product, category, tag)
  2. Attributes with types:
    • Attribute name
    • Data type (VARCHAR, INT, DECIMAL, TEXT, TIMESTAMP, etc.)
    • Length (for VARCHAR)
    • Required or optional
    • Unique constraint needed?
    • Default value (if any)
  3. Soft delete needed? (yes/no, default: yes)
  4. Common filters (e.g., search by name, filter by status)

Present a complete plan and ask for confirmation before proceeding.

Implementation Phases

After confirmation, execute these phases sequentially (read each phase file when needed):

  1. Schema Generation - phases/new-crud/01-crud-schema.md (ERD + DBML)
  2. PostgreSQL Migration - phases/new-crud/02-crud-migrations.md
  3. API Contract - phases/new-crud/03-crud-api-contract.md (Standard CRUD)

After each phase:

  • Stop and report what was created
  • Ask user to review
  • Wait for "continue" before next phase

Key Implementation Rules

Database Standards:

  • Read DATABASE_STANDARDS.md before starting
  • Apply all audit standards automatically
  • UUID primary key (VARCHAR 40)
  • 6 audit trail columns
  • Standard indexes (deleted_at, unique constraints)
  • NO foreign key constraints

Standard CRUD Endpoints:

GET    /api/v1/{entity_plural}           - List with pagination
GET    /api/v1/{entity_plural}/{id}      - Get by ID
POST   /api/v1/{entity_plural}           - Create
PUT    /api/v1/{entity_plural}/{id}      - Update
DELETE /api/v1/{entity_plural}/{id}      - Soft delete

File Naming:

  • ERD: docs/database/erd/{entity_name}.mmd
  • DBML: docs/database/dbml/{entity_name}.dbml
  • Migration: docs/database/migrations/{timestamp}_add_{entity_name}.sql
  • API: docs/api/contracts/{entity_name}.md

Example Usage

User: /venturo-planner:new-crud

Claude: I'll help you create a simple CRUD entity.

        Let me ask some questions:

        1. What is the entity name? (singular, snake_case)

User: tag

Claude: 2. What attributes should this entity have?
        Please provide: name, type, length (if VARCHAR), required/optional, unique

User: 
- name: VARCHAR(100), required, unique
- color: VARCHAR(7), optional (hex color code)
- description: TEXT, optional

Claude: 3. Should this entity support soft delete?

User: yes

Claude: 4. What filters should be available?

User: search by name

[Presents plan, executes phases]

Output Files

  • docs/database/erd/{entity_name}.mmd - Mermaid ERD
  • docs/database/dbml/{entity_name}.dbml - DBML schema
  • docs/database/migrations/{timestamp}_add_{entity_name}.sql - PostgreSQL migration
  • docs/api/contracts/{entity_name}.md - Standard CRUD API contract

Use Cases

Perfect for:

  • Simple lookup tables (tags, categories, statuses)
  • Reference data (countries, currencies)
  • Configuration entities
  • Small entities without complex relationships

For complex entities with multiple relationships, use /venturo-planner:new-feature instead.