- Framework: NestJS avec TypeORM - Authentification: JWT (access + refresh tokens) - Gestion utilisateurs: CRUD complet avec validation - Routes: auth, users, parents, assistantes maternelles - Dockerfile pour conteneurisation
32 lines
1014 B
TypeScript
32 lines
1014 B
TypeScript
import {
|
|
Entity, PrimaryColumn, OneToOne, JoinColumn,
|
|
ManyToOne, OneToMany
|
|
} from 'typeorm';
|
|
import { Users } from './users.entity';
|
|
import { ParentsChildren } from './parents_children.entity';
|
|
import { Dossier } from './dossiers.entity';
|
|
|
|
@Entity('parents', { schema: 'public' })
|
|
export class Parents {
|
|
// PK = FK vers utilisateurs.id
|
|
@PrimaryColumn('uuid', { name: 'id_utilisateur' })
|
|
user_id: string;
|
|
|
|
@OneToOne(() => Users, user => user.parent, { onDelete: 'CASCADE' })
|
|
@JoinColumn({ name: 'id_utilisateur', referencedColumnName: 'id' })
|
|
user: Users;
|
|
|
|
// Co-parent (nullable) → FK vers utilisateurs.id
|
|
@ManyToOne(() => Users, { nullable: true })
|
|
@JoinColumn({ name: 'id_co_parent', referencedColumnName: 'id' })
|
|
co_parent?: Users;
|
|
|
|
// Lien vers enfants via la table enfants_parents
|
|
@OneToMany(() => ParentsChildren, pc => pc.parent)
|
|
parentChildren: ParentsChildren[];
|
|
|
|
// Lien vers les dossiers de ce parent
|
|
@OneToMany(() => Dossier, d => d.parent)
|
|
dossiers: Dossier[];
|
|
}
|