
type Project {
  id: ID! @unique @id
  createdAt: DateTime! @createdAt
  updatedAt: DateTime! @updatedAt
  name: String!
  description: String
  url: String

  """По хосту определяется к какому именно проекту относится запрос"""
  domain: String @unique
  
  Members: [ProjectMember!]! @relation(name: "ProjectMemberProject")
  CreatedBy: User @relation(name: "ProjectCreatedBy")
  
  # Tasks: [Task!]! @relation(name: "ProjectTasks")
  ProjectTasks: [ProjectTask!]! @relation(name: "ProjectTaskProject" onDelete: CASCADE)
  
  """Команда-исполнитель"""
  Team: Team @relation(name: "TeamProjects")

  """Команды-заказчики (Как правило одна)"""
  Customers: [Team!]! @relation(name: "ProjectCustomers")

  ChatRoom: ChatRoom @relation(name: "ProjectChatRoom" link: INLINE)

  """Генерируемая последовательность, чтобы с заявками было проще ориентироваться"""
  sequence: Int @unique

  """Описание проекта."""
  content: Json

  """Контент, сохраненный в простой текст. Для поиска"""
  contentText: String

  """Статус выполнения проекта"""
  status: ProjectStatus @default(value: New)

  """Публичные проекты доступны всем"""
  public: Boolean @default(value: true)

}


enum ProjectStatus {

  """Новый"""
  New

  """Принят"""
  Accepted

  """Отменен"""
  Rejected

  """В работе"""
  Processing

  """Выполнен"""
  Completed

  """Возобновлен"""
  Reopened
}

# enum ProjectRole{
#   Owner
#   Member
#   Viewer
# }
