import { Column, Entity, PrimaryColumn } from 'typeorm';

import {
  encodeBigNumberKey,
  decodeBigNumberKey,
} from '../utils/big-number-key';
import { AssetRights } from '../asset/logic/Rights';

@Entity('asset_user_rights', { schema: 'public' })
export class AssetUserRightEntity {
  @PrimaryColumn({
    name: 'project_id',
    nullable: false,
    transformer: {
      from: (x) => encodeBigNumberKey(x),
      to: (x) => decodeBigNumberKey(x),
    },
  })
  projectId: string;

  @PrimaryColumn('uuid', {
    name: 'asset_id',
  })
  assetId: string;

  @Column('int', {
    name: 'user_id',
  })
  userId: number;

  @Column('int', {
    name: 'rights',
  })
  rights: AssetRights;
}
