export type PermissionType = { serviceId: string; begin: number; end: number; flag: number; extend: string; }; export enum Flags { None = 0, Enabled = 1, Disabled = 2 } class Permission { serviceId: string; begin: number; end: number; flag: number; extend: string; static fromString(string: string) { const split = string.split("\t"); return new Permission({ serviceId: split[0], begin: Number(split[1]), end: Number(split[2]), flag: split.length === 5 ? Number(split[3]) : Permission.Flags.Enabled, extend: split.length === 5 ? split[4] : split[3] }); } static toString(permission: Permission) { return [ permission.serviceId, permission.begin, permission.end, permission.flag, permission.extend ].join("\t"); } static Flags = Flags; constructor(permissionShape: PermissionType) { this.serviceId = permissionShape.serviceId; this.begin = permissionShape.begin; this.end = permissionShape.end; this.flag = permissionShape.flag; this.extend = permissionShape.extend; } } export default Permission;