mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.1 KiB
78 lines
2.1 KiB
import { ProjectReadItem, ProjectType, ProjectItemList } from '~/domain/models/project/project'
|
|
|
|
export class ProjectDTO {
|
|
id: number
|
|
name: string
|
|
description: string
|
|
guideline: string
|
|
projectType: ProjectType
|
|
updatedAt: string
|
|
enableRandomOrder: boolean
|
|
enableShareAnnotation: boolean
|
|
singleClassClassification: boolean
|
|
pageLink: string
|
|
tags: Object[] | string[]
|
|
canDefineLabel: boolean
|
|
canDefineRelation: boolean
|
|
canDefineCategory: boolean
|
|
isTextProject: boolean
|
|
allowOverlapping: boolean
|
|
graphemeMode: boolean
|
|
hasCategory: boolean
|
|
hasSpan: boolean
|
|
taskNames: string[]
|
|
useRelation: boolean
|
|
|
|
constructor(item: ProjectReadItem) {
|
|
this.id = item.id
|
|
this.name = item.name
|
|
this.description = item.description
|
|
this.guideline = item.guideline
|
|
this.projectType = item.projectType
|
|
this.updatedAt = item.updatedAt
|
|
this.enableRandomOrder = item.randomOrder
|
|
this.enableShareAnnotation = item.collaborative_annotation
|
|
this.singleClassClassification = item.exclusiveCategories
|
|
this.pageLink = item.annotationPageLink
|
|
this.tags = item.tags
|
|
this.canDefineLabel = item.canDefineLabel
|
|
this.canDefineRelation = item.canDefineRelation
|
|
this.canDefineCategory = item.canDefineCategory
|
|
this.isTextProject = item.isTextProject
|
|
this.allowOverlapping = item.allowOverlapping
|
|
this.graphemeMode = item.graphemeMode
|
|
this.hasCategory = item.canDefineCategory
|
|
this.hasSpan = item.canDefineSpan
|
|
this.taskNames = item.taskNames
|
|
this.useRelation = item.useRelation
|
|
}
|
|
}
|
|
|
|
export type ProjectWriteDTO = Pick<
|
|
ProjectDTO,
|
|
| 'id'
|
|
| 'name'
|
|
| 'description'
|
|
| 'guideline'
|
|
| 'projectType'
|
|
| 'enableRandomOrder'
|
|
| 'enableShareAnnotation'
|
|
| 'singleClassClassification'
|
|
| 'allowOverlapping'
|
|
| 'graphemeMode'
|
|
| 'useRelation'
|
|
> & { tags: string[] }
|
|
|
|
export class ProjectListDTO {
|
|
count: number
|
|
next: string | null
|
|
prev: string | null
|
|
items: ProjectDTO[]
|
|
|
|
constructor(item: ProjectItemList) {
|
|
this.count = item.count
|
|
this.next = item.next
|
|
this.prev = item.prev
|
|
this.items = item.items.map((_) => new ProjectDTO(_))
|
|
}
|
|
}
|