// EN: Prisma schema for microservice template
// VI: Schema Prisma cho template microservice

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
}


// EN: Feature model - represents a configurable feature in the system
// VI: Model Feature - đại diện cho một tính năng có thể cấu hình trong hệ thống
model Feature {
  // EN: Primary key / Khóa chính
  id        String   @id @default(cuid())

  // EN: Feature name (unique identifier) / Tên tính năng (mã định danh duy nhất)
  name      String   @unique

  // EN: Human-readable title / Tiêu đề dễ đọc
  title     String?

  // EN: Detailed description / Mô tả chi tiết
  description String?

  // EN: Feature configuration as JSON / Cấu hình tính năng dạng JSON
  config    Json?

  // EN: Whether the feature is enabled / Tính năng có được bật không
  enabled   Boolean  @default(true)

  // EN: Feature version for migration purposes / Phiên bản tính năng cho mục đích migration
  version   String?  @default("1.0.0")

  // EN: Timestamps / Dấu thời gian
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt

  // EN: Optional tags for categorization / Tags tùy chọn để phân loại
  tags      String[]

  // EN: Metadata for extensibility / Metadata để mở rộng
  metadata  Json?

  @@map("features")
}