From 75381e75efa4d32f736d09bf27289cda418ef2ff Mon Sep 17 00:00:00 2001 From: fro1991 Date: Mon, 4 Aug 2025 17:14:14 +0700 Subject: [PATCH] update --- src/entity/eform_accounts.ts | 52 ++++++++++++++++++ src/entity/eform_cifs.ts | 48 ++++++++++++++++ src/entity/eform_requests.ts | 104 +++++++++++++++++++++++++++++++++++ src/schema/eform.ts | 1 + src/types/eform.ts | 17 ++++++ 5 files changed, 222 insertions(+) create mode 100644 src/entity/eform_accounts.ts create mode 100644 src/entity/eform_cifs.ts create mode 100644 src/entity/eform_requests.ts create mode 100644 src/types/eform.ts diff --git a/src/entity/eform_accounts.ts b/src/entity/eform_accounts.ts new file mode 100644 index 0000000..07965ff --- /dev/null +++ b/src/entity/eform_accounts.ts @@ -0,0 +1,52 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; +import { Status } from "../types/status"; +import { EformLanguage } from "./eform_languages"; +import { EformCif } from "./eform_cifs"; +import { EformRequest } from "./eform_requests"; + +@Entity("eform_accounts", { schema: "eforms" }) +export class EformAccount { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => EformRequest, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + request: EformRequest; + + @ManyToOne(() => EformCif, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + cif: EformCif; + + @Column({ + nullable: true, + length: 256, + }) + name: string; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} diff --git a/src/entity/eform_cifs.ts b/src/entity/eform_cifs.ts new file mode 100644 index 0000000..d9fdba9 --- /dev/null +++ b/src/entity/eform_cifs.ts @@ -0,0 +1,48 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Index, JoinColumn, ManyToOne } from "typeorm"; +import { Status } from "../types/status"; +import { EformLanguage } from "./eform_languages"; +import { Branch } from "./branchs"; + +@Entity("eform_cifs", { schema: "eforms" }) +export class EformCif { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: true, + length: 256, + }) + number: string; + + @Column({ + nullable: true, + }) + generated_at: Date; + + @Column({ + nullable: false, + length: 64, + }) + status: Status; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} diff --git a/src/entity/eform_requests.ts b/src/entity/eform_requests.ts new file mode 100644 index 0000000..e6acbf1 --- /dev/null +++ b/src/entity/eform_requests.ts @@ -0,0 +1,104 @@ +import { Column, CreateDateColumn, DeleteDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn, UpdateDateColumn } from "typeorm"; +import { EformRequestRequestorType, EformRequestSourceType, EformRequestStatusType } from "../types/eform"; +import { Branch } from "./branchs"; +import { EformAccount } from "./eform_accounts"; +import { EformCif } from "./eform_cifs"; + +@Entity("eform_requests", { schema: "eforms" }) +export class EformRequest { + @PrimaryGeneratedColumn("uuid") + id: string; + + @Column({ + nullable: true, + length: 256, + }) + code: string; + + @Column({ + nullable: false, + length: 64, + }) + source: EformRequestSourceType; + + @Column({ + nullable: true, + length: 4096, + }) + name: string; + + @Column({ + nullable: true, + length: 128, + }) + phone: string; + + @Column({ + nullable: false, + length: 64, + }) + requestor_type: EformRequestRequestorType; + + @ManyToOne(() => EformAccount, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + account: EformAccount; + + @ManyToOne(() => EformCif, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + cif: EformCif; + + @Column({ + nullable: false, + length: 64, + }) + status: EformRequestStatusType; + + @Column({ nullable: true }) + requested_at: Date; + + @Column({ nullable: true, length: 256 }) + requested_by: string; + + @ManyToOne(() => Branch, { onDelete: "RESTRICT", nullable: true }) + @JoinColumn() + branch: Branch; + + @Column({ nullable: true }) + opened_at: Date; + + @Column({ nullable: true, length: 256 }) + opened_by: string; + + @Column({ nullable: true }) + processed_at: Date; + + @Column({ nullable: true, length: 256 }) + processed_by: string; + + @Column({ nullable: true }) + closed_at: Date; + + @Column({ nullable: true, length: 256 }) + closed_by: string; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} diff --git a/src/schema/eform.ts b/src/schema/eform.ts index c75d9be..1a5a51d 100644 --- a/src/schema/eform.ts +++ b/src/schema/eform.ts @@ -19,3 +19,4 @@ export * from "../entity/eform_region_munisipos"; export * from "../entity/eform_region_administrativus"; export * from "../entity/eform_region_aldeias"; export * from "../entity/eform_region_sucos"; +export * from "../entity/eform_requests"; diff --git a/src/types/eform.ts b/src/types/eform.ts new file mode 100644 index 0000000..e6a8123 --- /dev/null +++ b/src/types/eform.ts @@ -0,0 +1,17 @@ +export enum EformRequestSourceType { + "web" = "web", + "app_brizzi" = "app_brizzi", +} + +export enum EformRequestStatusType { + "verify" = "verify", + "open" = "open", + "process" = "process", + "close" = "close", + "reject" = "reject", +} + +export enum EformRequestRequestorType { + "wic" = "wic", + "bri" = "bri", +}