Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions addon/models/issue.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,23 @@ import isRelationMissing from '@fleetbase/ember-core/utils/is-relation-missing';

export default class IssueModel extends Model {
/** @ids */
@attr('string') uuid;
@attr('string') public_id;
@attr('string') issue_id;
@attr('string') company_uuid;
@attr('string') reported_by_uuid;
@attr('string') assigned_to_uuid;
@attr('string') driver_uuid;
@attr('string') vehicle_uuid;
@attr('string') order_uuid;

/** @relationships */
@belongsTo('user') reporter;
@belongsTo('user') assignee;
@belongsTo('vehicle') vehicle;
@belongsTo('driver') driver;
@belongsTo('user', { async: false }) reporter;
@belongsTo('user', { async: false }) assignee;
@belongsTo('vehicle', { async: false }) vehicle;
@belongsTo('driver', { async: false }) driver;
@belongsTo('order', { async: false }) order;
@hasMany('file', { async: false }) files;
@hasMany('custom-field-value', { async: false }) custom_field_values;

/** @attributes */
Expand All @@ -37,6 +41,7 @@ export default class IssueModel extends Model {
@attr('raw') meta;

/** @dates */
@attr('date') resolved_at;
@attr('date') deleted_at;
@attr('date') created_at;
@attr('date') updated_at;
Expand Down
1 change: 1 addition & 0 deletions addon/models/order.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ export default class OrderModel extends Model {
@attr('string') status;
@attr('string') latest_status;
@attr('string') latest_status_code;
@attr('string') currency;
@attr('number') adhoc_distance;
@attr('number') distance;
@attr('number') time;
Expand Down
6 changes: 5 additions & 1 deletion addon/models/service-rate-fee.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,11 @@ export default class ServiceRateFeeModel extends Model {
return formatDate(this.created_at, 'dd, MMM');
}

@computed('is_fallback', 'zone_uuid', 'service_area_uuid', 'zone.id', 'service_area.id') get geography_type() {
@computed('selected_geography_type', 'is_fallback', 'zone_uuid', 'service_area_uuid', 'zone.id', 'service_area.id') get geography_type() {
if (this.selected_geography_type) {
return this.selected_geography_type;
}

if (this.is_fallback) {
return 'fallback';
}
Expand Down
2 changes: 2 additions & 0 deletions addon/serializers/issue.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ export default class IssueSerializer extends ApplicationSerializer.extend(Embedd
vehicle: { embedded: 'always' },
reporter: { embedded: 'always' },
assignee: { embedded: 'always' },
order: { embedded: 'always' },
files: { embedded: 'always' },
custom_field_values: { embedded: 'always' },
};
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fleetbase/fleetops-data",
"version": "0.1.34",
"version": "0.1.35",
"description": "Fleetbase Fleet-Ops based models, serializers, transforms, adapters and GeoJson utility functions.",
"keywords": [
"fleetbase-data",
Expand Down
28 changes: 28 additions & 0 deletions tests/unit/models/service-rate-fee-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,32 @@ module('Unit | Model | service rate fee', function (hooks) {
let model = store.createRecord('service-rate-fee', {});
assert.ok(model);
});

test('geography type prefers transient selected geography type', function (assert) {
let store = this.owner.lookup('service:store');
let model = store.createRecord('service-rate-fee', {
service_area_uuid: 'service_area_1',
});

model.set('selected_geography_type', 'zone');

assert.strictEqual(model.geography_type, 'zone');
});

test('geography type derives from saved relationships when no transient type is selected', function (assert) {
let store = this.owner.lookup('service:store');
let zoneRule = store.createRecord('service-rate-fee', {
zone_uuid: 'zone_1',
});
let serviceAreaRule = store.createRecord('service-rate-fee', {
service_area_uuid: 'service_area_1',
});
let fallbackRule = store.createRecord('service-rate-fee', {
is_fallback: true,
});

assert.strictEqual(zoneRule.geography_type, 'zone');
assert.strictEqual(serviceAreaRule.geography_type, 'service_area');
assert.strictEqual(fallbackRule.geography_type, 'fallback');
});
});
Loading