Files
dh-inspeccion-v2/api-v3/src/database/entities/organization-membership.entity.ts
T

22 lines
1.5 KiB
TypeScript

import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';
import { TimestampedEntity } from './timestamped.entity';
export enum OrganizationMembershipRole { MEMBER='MEMBER', LEAD_MEMBER='LEAD_MEMBER', OTHER='OTHER' }
@Entity({name:'organization_memberships'})
@Index('idx_organization_memberships_parent_id',['parentOrganizationId'])
@Index('idx_organization_memberships_member_id',['memberOrganizationId'])
@Index('idx_organization_memberships_valid_until',['validUntil'])
export class OrganizationMembership extends TimestampedEntity {
@PrimaryGeneratedColumn('uuid') id!:string;
@Column({name:'parent_organization_id',type:'uuid'}) parentOrganizationId!:string;
@Column({name:'member_organization_id',type:'uuid'}) memberOrganizationId!:string;
@Column({type:'enum',enum:OrganizationMembershipRole,enumName:'organization_membership_role'}) role!:OrganizationMembershipRole;
@Column({name:'participation_percent',type:'numeric',precision:7,scale:4,nullable:true}) participationPercent!:string|null;
@Column({name:'valid_from',type:'date',default:()=> 'CURRENT_DATE'}) validFrom!:string;
@Column({name:'valid_until',type:'date',nullable:true}) validUntil!:string|null;
@Column({name:'source_document_id',type:'uuid',nullable:true}) sourceDocumentId!:string|null;
@Column({type:'text',nullable:true}) notes!:string|null;
@Column({name:'end_reason',type:'text',nullable:true}) endReason!:string|null;
@Column({name:'created_by',type:'uuid',nullable:true}) createdBy!:string|null;
@Column({name:'ended_by',type:'uuid',nullable:true}) endedBy!:string|null;
}