@fleetbase/fleetops-data
Version:
Fleetbase Fleet-Ops based models, serializers, transforms, adapters and GeoJson utility functions.
171 lines (148 loc) • 4.89 kB
JavaScript
import Model, { attr, belongsTo, hasMany } from '@ember-data/model';
import { computed } from '@ember/object';
import { format as formatDate, isValid as isValidDate, formatDistanceToNow } from 'date-fns';
export default class MaintenanceModel extends Model {
/** @ids */
public_id;
company_uuid;
work_order_uuid;
maintainable_type;
maintainable_uuid;
performed_by_type;
performed_by_uuid;
/** @relationships */
work_order;
custom_field_values;
/** @attributes */
type;
status;
priority;
odometer;
engine_hours;
summary;
notes;
line_items;
labor_cost;
parts_cost;
tax;
total_cost;
attachments;
meta;
slug;
/** @dates */
scheduled_at;
started_at;
completed_at;
deleted_at;
created_at;
updated_at;
/** @computed */
get updatedAgo() {
if (!isValidDate(this.updated_at)) {
return null;
}
return formatDistanceToNow(this.updated_at);
}
get updatedAt() {
if (!isValidDate(this.updated_at)) {
return null;
}
return formatDate(this.updated_at, 'yyyy-MM-dd HH:mm');
}
get updatedAtShort() {
if (!isValidDate(this.updated_at)) {
return null;
}
return formatDate(this.updated_at, 'dd, MMM');
}
get createdAgo() {
if (!isValidDate(this.created_at)) {
return null;
}
return formatDistanceToNow(this.created_at);
}
get createdAt() {
if (!isValidDate(this.created_at)) {
return null;
}
return formatDate(this.created_at, 'yyyy-MM-dd HH:mm');
}
get createdAtShort() {
if (!isValidDate(this.created_at)) {
return null;
}
return formatDate(this.created_at, 'dd, MMM');
}
get deletedAgo() {
if (!isValidDate(this.deleted_at)) {
return null;
}
return formatDistanceToNow(this.deleted_at);
}
get deletedAt() {
if (!isValidDate(this.deleted_at)) {
return null;
}
return formatDate(this.deleted_at, 'yyyy-MM-dd HH:mm');
}
get deletedAtShort() {
if (!isValidDate(this.deleted_at)) {
return null;
}
return formatDate(this.deleted_at, 'dd, MMM');
}
get scheduledAgo() {
if (!isValidDate(this.scheduled_at)) {
return null;
}
return formatDistanceToNow(this.scheduled_at);
}
get scheduledAt() {
if (!isValidDate(this.scheduled_at)) {
return null;
}
return formatDate(this.scheduled_at, 'yyyy-MM-dd HH:mm');
}
get scheduledAtShort() {
if (!isValidDate(this.scheduled_at)) {
return null;
}
return formatDate(this.scheduled_at, 'dd, MMM');
}
get startedAgo() {
if (!isValidDate(this.started_at)) {
return null;
}
return formatDistanceToNow(this.started_at);
}
get startedAt() {
if (!isValidDate(this.started_at)) {
return null;
}
return formatDate(this.started_at, 'yyyy-MM-dd HH:mm');
}
get startedAtShort() {
if (!isValidDate(this.started_at)) {
return null;
}
return formatDate(this.started_at, 'dd, MMM');
}
get completedAgo() {
if (!isValidDate(this.completed_at)) {
return null;
}
return formatDistanceToNow(this.completed_at);
}
get completedAt() {
if (!isValidDate(this.completed_at)) {
return null;
}
return formatDate(this.completed_at, 'yyyy-MM-dd HH:mm');
}
get completedAtShort() {
if (!isValidDate(this.completed_at)) {
return null;
}
return formatDate(this.completed_at, 'dd, MMM');
}
}