| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 |
- /**
- * $table->text('description',512)->nullable();
- $table->jsonb('assignees')->index()->nullable();
- $table->jsonb('roles')->index()->nullable();
- $table->uuid('executor')->index()->nullable();
- $table->uuid('executor_relation_task')->index()->nullable();
- $table->uuid('parent')->index()->nullable();
- $table->jsonb('pre_task')->index()->nullable();
- $table->uuid('owner')->index();
- $table->uuid('editor')->index();
- $table->string('status',32)->index()->default('pending');
- $table->timestamps();
- */
- import type { IStudio } from "../auth/Studio"
- import type { IUser } from "../auth/User"
- import type { TPrivacy } from "./ai"
- export type TTaskStatus =
- | "pending"
- | "published"
- | "running"
- | "done"
- | "restarted"
- | "requested_restart"
- | "closed"
- | "canceled"
- | "expired"
- | "queue"
- | "stop"
- | "quit"
- | "pause";
- export const StatusButtons: TTaskStatus[] = [
- "pending",
- "published",
- "running",
- "done",
- "restarted",
- "requested_restart",
- "quit",
- ];
- export type TTaskType = "instance" | "workflow" | "group";
- export interface IProject {
- id: string;
- sn: number;
- title: string;
- description: string | null;
- weight: number;
- }
- export type TTaskCategory =
- | "translate"
- | "suggest"
- | "vocabulary"
- | "team"
- | "review"
- | "proofread";
- export const ATaskCategory: TTaskCategory[] = [
- "translate",
- "suggest",
- "vocabulary",
- "team",
- "review",
- "proofread",
- ];
- export interface ITaskData {
- id: string;
- title: string;
- description?: string | null;
- category?: TTaskCategory | null;
- progress?: number;
- html?: string | null;
- type: TTaskType;
- order?: number;
- assignees?: IUser[] | null;
- assignees_id?: string[] | null;
- parent?: ITaskData | null;
- parent_id?: string | null;
- roles?: string[] | null;
- executor?: IUser | null;
- executor_id?: string | null;
- executor_relation_task?: ITaskData | null;
- executor_relation_task_id?: string | null;
- pre_task?: ITaskData[] | null;
- pre_task_id?: string | null;
- next_task?: ITaskData[] | null;
- next_task_id?: string | null;
- is_milestone: boolean;
- project?: IProject | null;
- project_id?: string | null;
- owner?: IStudio;
- owner_id?: string | null;
- editor?: IUser;
- editor_id?: string | null;
- status?: TTaskStatus;
- created_at?: string;
- updated_at?: string;
- started_at?: string | null;
- finished_at?: string | null;
- children?: ITaskData[];
- }
- export interface ITaskUpdateRequest {
- id: string;
- studio_name: string;
- title?: string;
- description?: string | null;
- category?: TTaskCategory | null;
- type?: TTaskType;
- assignees_id?: string[] | null;
- parent_id?: string | null;
- project_id?: string | null;
- roles?: string[] | null;
- executor_id?: string | null;
- executor_relation_task_id?: string | null;
- pre_task_id?: string | null;
- next_task_id?: string | null;
- is_milestone?: boolean;
- status?: string;
- }
- export interface ITaskListResponse {
- ok: boolean;
- message: string;
- data: {
- rows: ITaskData[];
- count: number;
- };
- }
- export interface ITaskCreateRequest {
- title: string;
- studio: string;
- type: TTaskType;
- }
- export interface ITaskResponse {
- ok: boolean;
- message: string;
- data: ITaskData;
- }
- /**
- * $table->uuid('id')->primary()->default(DB::raw('uuid_generate_v1mc()'));
- $table->string('title',512)->index();
- $table->boolean('is_template')->index()->default(false);
- $table->text('description')->nullable();
- $table->jsonb('executors')->index()->nullable();
- $table->uuid('parent')->index()->nullable();
- $table->jsonb('milestone')->index()->nullable();
- $table->uuid('owner')->index();
- $table->uuid('editor')->index();
- $table->jsonb('status')->index();
- $table->timestamps();
- */
- export interface IProjectData {
- id: string;
- title: string;
- type: TProjectType;
- weight: number;
- description: string | null;
- parent?: IProjectData | null;
- parent_id?: string | null;
- path?: IProjectData[] | null;
- executors?: IUser[] | null;
- milestone?: IMilestoneInProject[] | null;
- owner: IStudio;
- editor: IUser;
- status: ITaskStatusInProject[];
- privacy: TPrivacy;
- created_at: string;
- updated_at: string;
- deleted_at?: string | null;
- started_at?: string | null;
- finished_at?: string | null;
- children?: IProjectData[];
- }
- export interface IProjectUpdateRequest {
- id?: string;
- studio_name?: string;
- title: string;
- type: TProjectType;
- privacy?: TPrivacy;
- weight?: number;
- description?: string | null;
- parent_id?: string | null;
- res_id?: string;
- }
- export interface IProjectListResponse {
- data: { rows: IProjectData[]; count: number };
- message: string;
- ok: boolean;
- }
- export interface IProjectResponse {
- data: IProjectData;
- message: string;
- ok: boolean;
- }
- export type TProjectType = "instance" | "workflow" | "endpoint";
- export interface IProjectCreateRequest {
- title: string;
- type: TProjectType;
- studio_name: string;
- }
- export interface IMilestoneData {
- id: string;
- title: string;
- }
- export interface IMilestoneCount {
- value: number;
- total: number;
- }
- export interface IMilestoneInProject {
- milestone: IMilestoneData;
- projects: IMilestoneCount;
- chars: IMilestoneCount;
- }
- export interface ITaskStatusInProject {
- status: string;
- count: number;
- percent: number;
- }
- export interface ITaskGroupInsertRequest {
- data: ITaskGroupInsertData[];
- }
- export interface ITaskGroupInsertData {
- project_id: string;
- tasks: ITaskData[];
- }
- export interface ITaskGroupResponse {
- ok: boolean;
- message: string;
- data: { taskCount: number; taskRelationCount: number };
- }
- export interface IProjectTreeInsertRequest {
- studio_name: string;
- parent_id?: string | null;
- title?: string;
- data: IProjectUpdateRequest[];
- }
- export interface IProjectTreeData {
- id: string;
- resId?: string;
- isLeaf: boolean;
- }
- export interface IProjectTreeResponse {
- ok: boolean;
- message: string;
- data: { rows: IProjectTreeData[]; count: number };
- }
|