mirror of
https://github.com/immich-app/immich.git
synced 2025-12-28 17:24:56 +03:00
feat: sync implementation for the user entity (#16234)
* ci: print out typeorm generation changes * feat: sync implementation for the user entity wip --------- Co-authored-by: Jason Rasmussen <jason@rasm.me>
This commit is contained in:
@@ -20,8 +20,10 @@ import { SessionEntity } from 'src/entities/session.entity';
|
||||
import { SharedLinkEntity } from 'src/entities/shared-link.entity';
|
||||
import { SmartSearchEntity } from 'src/entities/smart-search.entity';
|
||||
import { StackEntity } from 'src/entities/stack.entity';
|
||||
import { SessionSyncCheckpointEntity } from 'src/entities/sync-checkpoint.entity';
|
||||
import { SystemMetadataEntity } from 'src/entities/system-metadata.entity';
|
||||
import { TagEntity } from 'src/entities/tag.entity';
|
||||
import { UserAuditEntity } from 'src/entities/user-audit.entity';
|
||||
import { UserMetadataEntity } from 'src/entities/user-metadata.entity';
|
||||
import { UserEntity } from 'src/entities/user.entity';
|
||||
import { VersionHistoryEntity } from 'src/entities/version-history.entity';
|
||||
@@ -44,12 +46,14 @@ export const entities = [
|
||||
MoveEntity,
|
||||
PartnerEntity,
|
||||
PersonEntity,
|
||||
SessionSyncCheckpointEntity,
|
||||
SharedLinkEntity,
|
||||
SmartSearchEntity,
|
||||
StackEntity,
|
||||
SystemMetadataEntity,
|
||||
TagEntity,
|
||||
UserEntity,
|
||||
UserAuditEntity,
|
||||
UserMetadataEntity,
|
||||
SessionEntity,
|
||||
LibraryEntity,
|
||||
|
||||
24
server/src/entities/sync-checkpoint.entity.ts
Normal file
24
server/src/entities/sync-checkpoint.entity.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { SessionEntity } from 'src/entities/session.entity';
|
||||
import { SyncEntityType } from 'src/enum';
|
||||
import { Column, CreateDateColumn, Entity, ManyToOne, PrimaryColumn, UpdateDateColumn } from 'typeorm';
|
||||
|
||||
@Entity('session_sync_checkpoints')
|
||||
export class SessionSyncCheckpointEntity {
|
||||
@ManyToOne(() => SessionEntity, { onDelete: 'CASCADE', onUpdate: 'CASCADE' })
|
||||
session?: SessionEntity;
|
||||
|
||||
@PrimaryColumn()
|
||||
sessionId!: string;
|
||||
|
||||
@PrimaryColumn({ type: 'varchar' })
|
||||
type!: SyncEntityType;
|
||||
|
||||
@CreateDateColumn({ type: 'timestamptz' })
|
||||
createdAt!: Date;
|
||||
|
||||
@UpdateDateColumn({ type: 'timestamptz' })
|
||||
updatedAt!: Date;
|
||||
|
||||
@Column()
|
||||
ack!: string;
|
||||
}
|
||||
14
server/src/entities/user-audit.entity.ts
Normal file
14
server/src/entities/user-audit.entity.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Column, CreateDateColumn, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';
|
||||
|
||||
@Entity('users_audit')
|
||||
@Index('IDX_users_audit_deleted_at_asc_user_id_asc', ['deletedAt', 'userId'])
|
||||
export class UserAuditEntity {
|
||||
@PrimaryGeneratedColumn('increment')
|
||||
id!: number;
|
||||
|
||||
@Column({ type: 'uuid' })
|
||||
userId!: string;
|
||||
|
||||
@CreateDateColumn({ type: 'timestamptz' })
|
||||
deletedAt!: Date;
|
||||
}
|
||||
@@ -10,12 +10,14 @@ import {
|
||||
CreateDateColumn,
|
||||
DeleteDateColumn,
|
||||
Entity,
|
||||
Index,
|
||||
OneToMany,
|
||||
PrimaryGeneratedColumn,
|
||||
UpdateDateColumn,
|
||||
} from 'typeorm';
|
||||
|
||||
@Entity('users')
|
||||
@Index('IDX_users_updated_at_asc_id_asc', ['updatedAt', 'id'])
|
||||
export class UserEntity {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string;
|
||||
|
||||
Reference in New Issue
Block a user