91 lines
12 KiB
Plaintext
91 lines
12 KiB
Plaintext
5ca2d04a14488641599da5575598d386
|
|
"use strict";
|
|
// File: src/modules/user/entities/user-assignment.entity.ts
|
|
// บันทึกการแก้ไข: Entity สำหรับการมอบหมาย Role ให้กับ User ตาม Scope (T1.3, RBAC 4-Level)
|
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
};
|
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
};
|
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.UserAssignment = void 0;
|
|
const typeorm_1 = require("typeorm");
|
|
const user_entity_1 = require("./user.entity");
|
|
const role_entity_1 = require("./role.entity");
|
|
const organization_entity_1 = require("../../organization/entities/organization.entity"); // ปรับ Path ให้ตรงกับ ProjectModule
|
|
const project_entity_1 = require("../../project/entities/project.entity"); // ปรับ Path ให้ตรงกับ ProjectModule
|
|
const contract_entity_1 = require("../../contract/entities/contract.entity"); // ปรับ Path ให้ตรงกับ ProjectModule
|
|
let UserAssignment = class UserAssignment {
|
|
};
|
|
exports.UserAssignment = UserAssignment;
|
|
__decorate([
|
|
(0, typeorm_1.PrimaryGeneratedColumn)(),
|
|
__metadata("design:type", Number)
|
|
], UserAssignment.prototype, "id", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.Column)({ name: 'user_id' }),
|
|
__metadata("design:type", Number)
|
|
], UserAssignment.prototype, "userId", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.Column)({ name: 'role_id' }),
|
|
__metadata("design:type", Number)
|
|
], UserAssignment.prototype, "roleId", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.Column)({ name: 'organization_id', nullable: true }),
|
|
__metadata("design:type", Number)
|
|
], UserAssignment.prototype, "organizationId", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.Column)({ name: 'project_id', nullable: true }),
|
|
__metadata("design:type", Number)
|
|
], UserAssignment.prototype, "projectId", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.Column)({ name: 'contract_id', nullable: true }),
|
|
__metadata("design:type", Number)
|
|
], UserAssignment.prototype, "contractId", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.Column)({ name: 'assigned_by_user_id', nullable: true }),
|
|
__metadata("design:type", Number)
|
|
], UserAssignment.prototype, "assignedByUserId", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.CreateDateColumn)({ name: 'assigned_at' }),
|
|
__metadata("design:type", typeof (_a = typeof Date !== "undefined" && Date) === "function" ? _a : Object)
|
|
], UserAssignment.prototype, "assignedAt", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.ManyToOne)(() => user_entity_1.User, (user) => user.assignments, { onDelete: 'CASCADE' }),
|
|
(0, typeorm_1.JoinColumn)({ name: 'user_id' }),
|
|
__metadata("design:type", typeof (_b = typeof user_entity_1.User !== "undefined" && user_entity_1.User) === "function" ? _b : Object)
|
|
], UserAssignment.prototype, "user", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.ManyToOne)(() => role_entity_1.Role, { onDelete: 'CASCADE' }),
|
|
(0, typeorm_1.JoinColumn)({ name: 'role_id' }),
|
|
__metadata("design:type", typeof (_c = typeof role_entity_1.Role !== "undefined" && role_entity_1.Role) === "function" ? _c : Object)
|
|
], UserAssignment.prototype, "role", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.ManyToOne)(() => organization_entity_1.Organization, { onDelete: 'CASCADE', nullable: true }),
|
|
(0, typeorm_1.JoinColumn)({ name: 'organization_id' }),
|
|
__metadata("design:type", typeof (_d = typeof organization_entity_1.Organization !== "undefined" && organization_entity_1.Organization) === "function" ? _d : Object)
|
|
], UserAssignment.prototype, "organization", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.ManyToOne)(() => project_entity_1.Project, { onDelete: 'CASCADE', nullable: true }),
|
|
(0, typeorm_1.JoinColumn)({ name: 'project_id' }),
|
|
__metadata("design:type", typeof (_e = typeof project_entity_1.Project !== "undefined" && project_entity_1.Project) === "function" ? _e : Object)
|
|
], UserAssignment.prototype, "project", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.ManyToOne)(() => contract_entity_1.Contract, { onDelete: 'CASCADE', nullable: true }),
|
|
(0, typeorm_1.JoinColumn)({ name: 'contract_id' }),
|
|
__metadata("design:type", typeof (_f = typeof contract_entity_1.Contract !== "undefined" && contract_entity_1.Contract) === "function" ? _f : Object)
|
|
], UserAssignment.prototype, "contract", void 0);
|
|
__decorate([
|
|
(0, typeorm_1.ManyToOne)(() => user_entity_1.User, { nullable: true }),
|
|
(0, typeorm_1.JoinColumn)({ name: 'assigned_by_user_id' }),
|
|
__metadata("design:type", typeof (_g = typeof user_entity_1.User !== "undefined" && user_entity_1.User) === "function" ? _g : Object)
|
|
], UserAssignment.prototype, "assignedBy", void 0);
|
|
exports.UserAssignment = UserAssignment = __decorate([
|
|
(0, typeorm_1.Entity)('user_assignments')
|
|
], UserAssignment);
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJmaWxlIjoiRDpcXG5hcC1kbXMubGNicDNcXGJhY2tlbmRcXHNyY1xcbW9kdWxlc1xcdXNlclxcZW50aXRpZXNcXHVzZXItYXNzaWdubWVudC5lbnRpdHkudHMiLCJtYXBwaW5ncyI6IjtBQUFBLDREQUE0RDtBQUM1RCwwRkFBMEY7Ozs7Ozs7Ozs7Ozs7QUFFMUYscUNBT2lCO0FBQ2pCLCtDQUFxQztBQUNyQywrQ0FBcUM7QUFDckMseUZBQStFLENBQUMsb0NBQW9DO0FBQ3BILDBFQUFnRSxDQUFDLG9DQUFvQztBQUNyRyw2RUFBbUUsQ0FBQyxvQ0FBb0M7QUFHakcsSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBYztDQW1EMUIsQ0FBQTtBQW5EWSx3Q0FBYztBQUV6QjtJQURDLElBQUEsZ0NBQXNCLEdBQUU7OzBDQUNiO0FBR1o7SUFEQyxJQUFBLGdCQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OzhDQUNaO0FBR2hCO0lBREMsSUFBQSxnQkFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDOzs4Q0FDWjtBQUloQjtJQURDLElBQUEsZ0JBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7O3NEQUM1QjtBQUd4QjtJQURDLElBQUEsZ0JBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDOztpREFDNUI7QUFHbkI7SUFEQyxJQUFBLGdCQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQzs7a0RBQzVCO0FBR3BCO0lBREMsSUFBQSxnQkFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQzs7d0RBQzlCO0FBRzFCO0lBREMsSUFBQSwwQkFBZ0IsRUFBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQztrREFDN0IsSUFBSSxvQkFBSixJQUFJO2tEQUFDO0FBTWxCO0lBRkMsSUFBQSxtQkFBUyxFQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDMUUsSUFBQSxvQkFBVSxFQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO2tEQUN6QixrQkFBSSxvQkFBSixrQkFBSTs0Q0FBQztBQUlaO0lBRkMsSUFBQSxtQkFBUyxFQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFJLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDOUMsSUFBQSxvQkFBVSxFQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO2tEQUN6QixrQkFBSSxvQkFBSixrQkFBSTs0Q0FBQztBQUlaO0lBRkMsSUFBQSxtQkFBUyxFQUFDLEdBQUcsRUFBRSxDQUFDLGtDQUFZLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN0RSxJQUFBLG9CQUFVLEVBQUMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztrREFDekIsa0NBQVksb0JBQVosa0NBQVk7b0RBQUM7QUFJNUI7SUFGQyxJQUFBLG1CQUFTLEVBQUMsR0FBRyxFQUFFLENBQUMsd0JBQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2pFLElBQUEsb0JBQVUsRUFBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztrREFDekIsd0JBQU8sb0JBQVAsd0JBQU87K0NBQUM7QUFJbEI7SUFGQyxJQUFBLG1CQUFTLEVBQUMsR0FBRyxFQUFFLENBQUMsMEJBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xFLElBQUEsb0JBQVUsRUFBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQztrREFDekIsMEJBQVEsb0JBQVIsMEJBQVE7Z0RBQUM7QUFJcEI7SUFGQyxJQUFBLG1CQUFTLEVBQUMsR0FBRyxFQUFFLENBQUMsa0JBQUksRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxJQUFBLG9CQUFVLEVBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztrREFDL0Isa0JBQUksb0JBQUosa0JBQUk7a0RBQUM7eUJBbERQLGNBQWM7SUFEMUIsSUFBQSxnQkFBTSxFQUFDLGtCQUFrQixDQUFDO0dBQ2QsY0FBYyxDQW1EMUIiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiRDpcXG5hcC1kbXMubGNicDNcXGJhY2tlbmRcXHNyY1xcbW9kdWxlc1xcdXNlclxcZW50aXRpZXNcXHVzZXItYXNzaWdubWVudC5lbnRpdHkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRmlsZTogc3JjL21vZHVsZXMvdXNlci9lbnRpdGllcy91c2VyLWFzc2lnbm1lbnQuZW50aXR5LnRzXG4vLyDguJrguLHguJnguJfguLbguIHguIHguLLguKPguYHguIHguYnguYTguII6IEVudGl0eSDguKrguLPguKvguKPguLHguJrguIHguLLguKPguKHguK3guJrguKvguKHguLLguKIgUm9sZSDguYPguKvguYnguIHguLHguJogVXNlciDguJXguLLguKEgU2NvcGUgKFQxLjMsIFJCQUMgNC1MZXZlbClcblxuaW1wb3J0IHtcbiAgRW50aXR5LFxuICBDb2x1bW4sXG4gIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4sXG4gIE1hbnlUb09uZSxcbiAgSm9pbkNvbHVtbixcbiAgQ3JlYXRlRGF0ZUNvbHVtbixcbn0gZnJvbSAndHlwZW9ybSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi91c2VyLmVudGl0eSc7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnLi9yb2xlLmVudGl0eSc7XG5pbXBvcnQgeyBPcmdhbml6YXRpb24gfSBmcm9tICcuLi8uLi9vcmdhbml6YXRpb24vZW50aXRpZXMvb3JnYW5pemF0aW9uLmVudGl0eSc7IC8vIOC4m+C4o+C4seC4miBQYXRoIOC5g+C4q+C5ieC4leC4o+C4h+C4geC4seC4miBQcm9qZWN0TW9kdWxlXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSAnLi4vLi4vcHJvamVjdC9lbnRpdGllcy9wcm9qZWN0LmVudGl0eSc7IC8vIOC4m+C4o+C4seC4miBQYXRoIOC5g+C4q+C5ieC4leC4o+C4h+C4geC4seC4miBQcm9qZWN0TW9kdWxlXG5pbXBvcnQgeyBDb250cmFjdCB9IGZyb20gJy4uLy4uL2NvbnRyYWN0L2VudGl0aWVzL2NvbnRyYWN0LmVudGl0eSc7IC8vIOC4m+C4o+C4seC4miBQYXRoIOC5g+C4q+C5ieC4leC4o+C4h+C4geC4seC4miBQcm9qZWN0TW9kdWxlXG5cbkBFbnRpdHkoJ3VzZXJfYXNzaWdubWVudHMnKVxuZXhwb3J0IGNsYXNzIFVzZXJBc3NpZ25tZW50IHtcbiAgQFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4oKVxuICBpZCE6IG51bWJlcjtcblxuICBAQ29sdW1uKHsgbmFtZTogJ3VzZXJfaWQnIH0pXG4gIHVzZXJJZCE6IG51bWJlcjtcblxuICBAQ29sdW1uKHsgbmFtZTogJ3JvbGVfaWQnIH0pXG4gIHJvbGVJZCE6IG51bWJlcjtcblxuICAvLyAtLS0gU2NvcGVzICjguYDguKXguLfguK3guIHguYTguJTguYnguYDguJ7guLXguKLguIcgMSDguKvguKPguLfguK3guYDguJvguYfguJkgTlVMTCDguJfguLHguYnguIfguKvguKHguJTguKrguLPguKvguKPguLHguJogR2xvYmFsKSAtLS1cbiAgQENvbHVtbih7IG5hbWU6ICdvcmdhbml6YXRpb25faWQnLCBudWxsYWJsZTogdHJ1ZSB9KVxuICBvcmdhbml6YXRpb25JZD86IG51bWJlcjtcblxuICBAQ29sdW1uKHsgbmFtZTogJ3Byb2plY3RfaWQnLCBudWxsYWJsZTogdHJ1ZSB9KVxuICBwcm9qZWN0SWQ/OiBudW1iZXI7XG5cbiAgQENvbHVtbih7IG5hbWU6ICdjb250cmFjdF9pZCcsIG51bGxhYmxlOiB0cnVlIH0pXG4gIGNvbnRyYWN0SWQ/OiBudW1iZXI7XG5cbiAgQENvbHVtbih7IG5hbWU6ICdhc3NpZ25lZF9ieV91c2VyX2lkJywgbnVsbGFibGU6IHRydWUgfSlcbiAgYXNzaWduZWRCeVVzZXJJZD86IG51bWJlcjtcblxuICBAQ3JlYXRlRGF0ZUNvbHVtbih7IG5hbWU6ICdhc3NpZ25lZF9hdCcgfSlcbiAgYXNzaWduZWRBdCE6IERhdGU7XG5cbiAgLy8gLS0tIFJlbGF0aW9ucyAtLS1cblxuICBATWFueVRvT25lKCgpID0+IFVzZXIsICh1c2VyKSA9PiB1c2VyLmFzc2lnbm1lbnRzLCB7IG9uRGVsZXRlOiAnQ0FTQ0FERScgfSlcbiAgQEpvaW5Db2x1bW4oeyBuYW1lOiAndXNlcl9pZCcgfSlcbiAgdXNlciE6IFVzZXI7XG5cbiAgQE1hbnlUb09uZSgoKSA9PiBSb2xlLCB7IG9uRGVsZXRlOiAnQ0FTQ0FERScgfSlcbiAgQEpvaW5Db2x1bW4oeyBuYW1lOiAncm9sZV9pZCcgfSlcbiAgcm9sZSE6IFJvbGU7XG5cbiAgQE1hbnlUb09uZSgoKSA9PiBPcmdhbml6YXRpb24sIHsgb25EZWxldGU6ICdDQVNDQURFJywgbnVsbGFibGU6IHRydWUgfSlcbiAgQEpvaW5Db2x1bW4oeyBuYW1lOiAnb3JnYW5pemF0aW9uX2lkJyB9KVxuICBvcmdhbml6YXRpb24/OiBPcmdhbml6YXRpb247XG5cbiAgQE1hbnlUb09uZSgoKSA9PiBQcm9qZWN0LCB7IG9uRGVsZXRlOiAnQ0FTQ0FERScsIG51bGxhYmxlOiB0cnVlIH0pXG4gIEBKb2luQ29sdW1uKHsgbmFtZTogJ3Byb2plY3RfaWQnIH0pXG4gIHByb2plY3Q/OiBQcm9qZWN0O1xuXG4gIEBNYW55VG9PbmUoKCkgPT4gQ29udHJhY3QsIHsgb25EZWxldGU6ICdDQVNDQURFJywgbnVsbGFibGU6IHRydWUgfSlcbiAgQEpvaW5Db2x1bW4oeyBuYW1lOiAnY29udHJhY3RfaWQnIH0pXG4gIGNvbnRyYWN0PzogQ29udHJhY3Q7XG5cbiAgQE1hbnlUb09uZSgoKSA9PiBVc2VyLCB7IG51bGxhYmxlOiB0cnVlIH0pXG4gIEBKb2luQ29sdW1uKHsgbmFtZTogJ2Fzc2lnbmVkX2J5X3VzZXJfaWQnIH0pXG4gIGFzc2lnbmVkQnk/OiBVc2VyO1xufVxuIl0sInZlcnNpb24iOjN9 |