diff --git a/src/entity/administrativu.ts b/src/entity/administrativu.ts index 4c29028..6fde6b5 100644 --- a/src/entity/administrativu.ts +++ b/src/entity/administrativu.ts @@ -1,6 +1,7 @@ -import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index } from 'typeorm'; +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from 'typeorm'; import { Status } from '../types/status'; +import { Munisipo } from './munisipo'; @Entity('administrativus') export class Administrativu { @@ -13,6 +14,10 @@ export class Administrativu { }) code: string; + @ManyToOne(() => Munisipo, { onDelete: "NO ACTION" }) + @JoinColumn() + munisipo: Munisipo; + @Column({ nullable: false, length: 256 diff --git a/src/entity/aldeia.ts b/src/entity/aldeia.ts index 4949ef8..ddaf223 100644 --- a/src/entity/aldeia.ts +++ b/src/entity/aldeia.ts @@ -1,6 +1,7 @@ -import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index } from 'typeorm'; +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from 'typeorm'; import { Status } from '../types/status'; +import { Suco } from './suco'; @Entity('aldeias') export class Aldeia { @@ -25,6 +26,10 @@ export class Aldeia { }) status: Status; + @ManyToOne(() => Suco, { onDelete: "NO ACTION" }) + @JoinColumn() + suco: Suco; + @Column() @CreateDateColumn() created_at: Date; diff --git a/src/entity/hrms/hrms_employee.ts b/src/entity/hrms/hrms_employee.ts index 7cceb91..3953ae6 100644 --- a/src/entity/hrms/hrms_employee.ts +++ b/src/entity/hrms/hrms_employee.ts @@ -13,6 +13,11 @@ import { HrmsAirport } from "./hrms_airport"; import { HrmsDepartment } from "./hrms_department"; import { HrmsPosition } from "./hrms_position"; import { HrmsShift } from "./hrms_shift"; +import { Nationality } from "../nationality"; +import { Aldeia } from "../aldeia"; +import { Suco } from "../suco"; +import { Administrativu } from "../administrativu"; +import { Munisipo } from "../munisipo"; @Entity("hrms_employees", { schema: "hrms" }) export class HrmsEmployee { @@ -44,8 +49,9 @@ export class HrmsEmployee { @Column({ length: 128 }) email: string; - @Column({ length: 64 }) - nationality: string; + @ManyToOne(() => Nationality) + @JoinColumn({ name: "nationality_id" }) + nationality: Nationality; @Column({ length: 64 }) last_education: string; @@ -53,17 +59,21 @@ export class HrmsEmployee { @Column({ nullable: true, length: 256 }) photo_url: string; - @Column({ length: 64 }) - aldeia: string; + @ManyToOne(() => Aldeia) + @JoinColumn({ name: "aldeia_id" }) + aldeia: Aldeia; - @Column({ length: 64 }) - suco: string; + @ManyToOne(() => Suco) + @JoinColumn({ name: "suco_id" }) + suco: Suco; - @Column({ length: 64 }) - administrativu: string; + @ManyToOne(() => Administrativu) + @JoinColumn({ name: "administrativu_id" }) + administrativu: Administrativu; - @Column({ length: 64 }) - district: string; + @ManyToOne(() => Munisipo) + @JoinColumn({ name: "munisipo_id" }) + munisipo: Munisipo; @Column({ length: 256 }) street: string; @@ -87,6 +97,69 @@ export class HrmsEmployee { @Column({ type: "int" }) yearly_leave_quota: number; + @Column({ length: 128 }) + emergency_name: string; + + @Column({ length: 32 }) + emergency_phone: string; + + @Column({ length: 64 }) + emergency_relation: string; + + @Column({ length: 128, nullable: true }) + electoral_number: string; + + @Column({ type: "date", nullable: true }) + electoral_expired_at: Date; + + @Column({ length: 256, nullable: true }) + electoral_file_url: string; + + @Column({ length: 128, nullable: true }) + bi_number: string; + + @Column({ type: "date", nullable: true }) + bi_expired_at: Date; + + @Column({ length: 256, nullable: true }) + bi_file_url: string; + + @Column({ length: 128, nullable: true }) + niss_number: string; + + @Column({ type: "date", nullable: true }) + niss_expired_at: Date; + + @Column({ length: 256, nullable: true }) + niss_file_url: string; + + @Column({ length: 128, nullable: true }) + passport_number: string; + + @Column({ type: "date", nullable: true }) + passport_expired_at: Date; + + @Column({ length: 256, nullable: true }) + passport_file_url: string; + + @Column({ length: 128, nullable: true }) + visa_number: string; + + @Column({ type: "date", nullable: true }) + visa_expired_at: Date; + + @Column({ length: 256, nullable: true }) + visa_file_url: string; + + @Column({ length: 128, nullable: true }) + pr_number: string; + + @Column({ type: "date", nullable: true }) + pr_expired_at: Date; + + @Column({ length: 256, nullable: true }) + pr_file_url: string; + @Column({ length: 64 }) status: Status; diff --git a/src/entity/nationality.ts b/src/entity/nationality.ts new file mode 100644 index 0000000..a47158b --- /dev/null +++ b/src/entity/nationality.ts @@ -0,0 +1,39 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index } from 'typeorm'; + +import { Status } from '../types/status'; + +@Entity('nationality') +export class Nationality { + @PrimaryGeneratedColumn('uuid') + id: string; + + @Column({ + nullable: false, + length: 128 + }) + code: string; + + @Column({ + nullable: false, + length: 256 + }) + name: string; + + @Column({ + nullable: false, + length: 64 + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; +} \ No newline at end of file diff --git a/src/entity/suco.ts b/src/entity/suco.ts index 2c1ffde..50b2e09 100644 --- a/src/entity/suco.ts +++ b/src/entity/suco.ts @@ -1,6 +1,7 @@ -import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index } from 'typeorm'; +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, ManyToOne, JoinColumn } from 'typeorm'; import { Status } from '../types/status'; +import { Administrativu } from './administrativu'; @Entity('sucos') export class Suco { @@ -19,6 +20,10 @@ export class Suco { }) name: string; + @ManyToOne(() => Administrativu, { onDelete: "NO ACTION" }) + @JoinColumn() + administrativu: Administrativu; + @Column({ nullable: false, length: 64 diff --git a/src/schema/public.ts b/src/schema/public.ts index 6e86eb1..a42c14b 100644 --- a/src/schema/public.ts +++ b/src/schema/public.ts @@ -9,6 +9,7 @@ export * from "../entity/district"; export * from "../entity/munisipo"; export * from "../entity/suco"; export * from "../entity/application" +export * from "../entity/nationality" export * from "../types/action"; export * from "../types/error";