{
    "prisma model": {
        "prefix": "model",
        "body": [
            "model $1 {",
            "   id              Int       @id @default(autoincrement())",
            "   createdAt       DateTime  @default(now()) @map(\"created_at\")",
            "   updatedAt       DateTime  @updatedAt @map(\"updated_at\")",
            "   deletedAt       DateTime? @map(\"deleted_at\")",
            "   isActive        Boolean   @default(true) @map(\"is_active\")",
            "   createdBy       User?     @relation(fields: [createdByUserId], references: [id], onDelete: SetNull, onUpdate: Cascade)",
            "   createdByUserId Int?      @map(\"created_by_user_id\")",
            "   name            String    @unique",
            "   description     String?",
            "",
            "$0",
            "@@map(\"${1/(^[A-Z])|(?<=[a-z0-9])([A-Z])/${1:/downcase}${2:+_${2:/downcase}/g}\")",
            "}",
        ],
        "scope": "prisma"
    },
    "prisma model map": {
        "prefix": "prisma model map",
        "body": [
            "model ${1}${2} {",
            "  ${1/([A-Z])/${1:/downcase}/g}   $1 @relation(fields: [${1/([A-Z])/${1:/downcase}/g}Id], references: [id], onDelete: Cascade, onUpdate: Cascade)",
            "  ${1/([A-Z])/${1:/downcase}/g}Id Int  @map(\"${1/([A-Z])/${1:/downcase}/g}_id\")",
            "",
            "  ${2/([A-Z])/${1:/downcase}/g}   $2 @relation(fields: [${2/([A-Z])/${1:/downcase}/g}Id], references: [id], onDelete: Cascade, onUpdate: Cascade)",
            "  ${2/([A-Z])/${1:/downcase}/g}Id Int  @map(\"${2/([A-Z])/${1:/downcase}/g}_id\")",
            "",
            "  @@id([${1/([A-Z])/${1:/downcase}/g}Id, ${2/([A-Z])/${1:/downcase}/g}Id])",
            "  @@map(\"${1/([A-Z])/${1:/downcase}/g}_${2/([A-Z])/${1:/downcase}/g}s\")",
            "}"
        ],
        "scope": "prisma"
    }
}