phibernate
Version:
Client side ORM and Delta Tracker for Relational data
56 lines (46 loc) • 1.37 kB
text/typescript
import {DeltaRecord} from "./DeltaRecord";
import {MappedSuperclass, Column, JoinColumn, ManyToOne} from "querydsl-typescript";
import {ChangeGroup} from "./ChangeGroup";
/**
* Created by Papa on 10/4/2016.
*/
export enum EntityChangeType {
CREATE,
DELETE,
DELETE_WHERE,
UPDATE,
UPDATE_WHERE
}
export interface AbstractEntityChangeApi {
entityName: string;
changeType: EntityChangeType;
entityChangeIdInGroup: number;
changeGroup: ChangeGroup;
}
()
export class AbstractEntityChange extends DeltaRecord{
static getEntityChangeId(
entityIdInGroup: number,
createDeviceId: string,
createDateTime: Date,
createUserId: string,
indexInMillisecond: number
): string {
return `${entityIdInGroup}_${createDeviceId}_${createDateTime.getTime()}_${indexInMillisecond}_${createUserId}`;
}
({name: "ENTITY_NAME"})
entityName: string;
({name: "CHANGE_TYPE"})
changeType: EntityChangeType;
({name: "ENTITY_CHANGE_ID_IN_GROUP"})
entityChangeIdInGroup: number;
()
({name: "CHANGE_GROUP_ID", nullable: false})
changeGroup: ChangeGroup;
}
export class StubAbstractEntityChange implements AbstractEntityChangeApi {
entityName: string;
changeType: EntityChangeType;
entityChangeIdInGroup: number;
changeGroup: ChangeGroup;
}