Files
aurak/server/src/tenant/tenant-member.entity.ts
T
Developer 0a9588abb7 feat: implement QuestionBank CRUD with pagination and template query
- Add pagination support to findAll (page, limit query params)
- Add findByTemplateId method to service
- Add GET /by-template/:templateId endpoint to controller
- Service already includes CRUD for QuestionBank and QuestionBankItem
2026-04-23 17:19:11 +08:00

50 lines
1.1 KiB
TypeScript

import {
Column,
CreateDateColumn,
Entity,
JoinColumn,
ManyToOne,
PrimaryGeneratedColumn,
UpdateDateColumn,
} from 'typeorm';
import { User } from '../user/user.entity';
import { UserRole } from '../user/user-role.enum';
import { Tenant } from './tenant.entity';
/**
* Join table for User and Tenant to support Many-to-Many relationship.
* A user can belong to multiple tenants with different roles in each.
*/
@Entity('tenant_members')
export class TenantMember {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ name: 'user_id' })
userId: string;
@ManyToOne(() => User, (user) => user.tenantMembers, { onDelete: 'CASCADE' })
@JoinColumn({ name: 'user_id' })
user: User;
@Column({ name: 'tenant_id' })
tenantId: string;
@ManyToOne(() => Tenant, (tenant) => tenant.members, { onDelete: 'CASCADE' })
@JoinColumn({ name: 'tenant_id' })
tenant: Tenant;
@Column({
type: 'simple-enum',
enum: UserRole,
default: UserRole.USER,
})
role: UserRole;
@CreateDateColumn({ name: 'created_at' })
createdAt: Date;
@UpdateDateColumn({ name: 'updated_at' })
updatedAt: Date;
}