File

libs/rucken/todo-core/src/lib/models/project.ts

Implements

IModel

Index

Properties
Methods
Accessors

Properties

completedTasksCount
Type : number
Default value : undefined
createdAt
Type : Date | string
Default value : undefined
Decorators :
@Transform(transformStringToDate, {toClassOnly: true})
@Transform(transformDateToString, {toPlainOnly: true})
createdUser
Type : User
Default value : undefined
Decorators :
@Type(undefined)
@Transform(transformStringToObject, {toPlainOnly: true})
description
Type : string
Default value : undefined
id
Type : number
Default value : undefined
isPublic
Type : boolean
Default value : undefined
statuses
Type : Status[]
Default value : []
Decorators :
@IsOptional()
@Type(undefined)
Static strings
Type : object
Default value : { id: translate('Id'), title: translate('Title'), description: translate('Description'), isPublic: translate('Is public'), createdAt: translate('Created at'), updatedAt: translate('Updated at'), statuses: translate('Statuses'), tasks: translate('Tasks'), users: translate('Users'), completedTasksCount: translate('Completed tasks'), tasksCount: translate('Tasks'), createTitle: translate('Add new project'), viewTitle: translate('Project #{{id}}'), updateTitle: translate('Update project #{{id}}'), deleteTitle: translate('Delete project #{{id}}'), deleteMessage: translate('Do you really want to delete project?') }
tasksCount
Type : number
Default value : undefined
title
Type : string
Default value : undefined
Decorators :
@IsNotEmpty()
updatedAt
Type : Date | string
Default value : undefined
Decorators :
@Transform(transformStringToDate, {toClassOnly: true})
@Transform(transformDateToString, {toPlainOnly: true})
updatedUser
Type : User
Default value : undefined
Decorators :
@Type(undefined)
@Transform(transformStringToObject, {toPlainOnly: true})
users
Type : User[]
Default value : []
Decorators :
@IsOptional()
@Type(undefined)

Methods

toString
toString()
Returns : string

Accessors

isPublicAsString
getisPublicAsString()
usersAsString
getusersAsString()
statusesAsString
getstatusesAsString()
import {
  serializeModel,
  transformDateToString,
  transformStringToDate,
  transformStringToObject,
  translate,
  User
} from '@rucken/core';
import { Transform, Type } from 'class-transformer';
import { IsNotEmpty, IsOptional } from 'class-validator';
import { IModel } from 'ngx-repository';
import { Status } from './status';

export class Project implements IModel {
  static strings = {
    id: translate('Id'),
    title: translate('Title'),
    description: translate('Description'),
    isPublic: translate('Is public'),
    createdAt: translate('Created at'),
    updatedAt: translate('Updated at'),
    statuses: translate('Statuses'),
    tasks: translate('Tasks'),
    users: translate('Users'),
    completedTasksCount: translate('Completed tasks'),
    tasksCount: translate('Tasks'),

    createTitle: translate('Add new project'),
    viewTitle: translate('Project #{{id}}'),
    updateTitle: translate('Update project #{{id}}'),
    deleteTitle: translate('Delete project #{{id}}'),
    deleteMessage: translate('Do you really want to delete project?')
  };

  id: number = undefined;

  completedTasksCount: number = undefined;

  tasksCount: number = undefined;

  @IsNotEmpty()
  title: string = undefined;

  description: string = undefined;

  isPublic: boolean = undefined;

  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  createdAt: Date | string = undefined;

  @Transform(transformStringToDate, { toClassOnly: true })
  @Transform(transformDateToString, { toPlainOnly: true })
  updatedAt: Date | string = undefined;

  @IsOptional()
  @Type(serializeModel(Status))
  statuses: Status[] = [];

  @IsOptional()
  @Type(serializeModel(User))
  users: User[] = [];

  @Type(serializeModel(User))
  @Transform(transformStringToObject, { toPlainOnly: true })
  createdUser: User = undefined;

  @Type(serializeModel(User))
  @Transform(transformStringToObject, { toPlainOnly: true })
  updatedUser: User = undefined;

  get isPublicAsString() {
    if (this.isPublic) {
      return translate('Yes');
    } else {
      return translate('No');
    }
  }

  get usersAsString() {
    return this.users.join(', ');
  }

  get statusesAsString() {
    return this.statuses.join(', ');
  }

  toString() {
    return this.title;
  }
}

result-matching ""

    No results matching ""