mirror of
https://iceshrimp.dev/limepotato/jormungandr-bite.git
synced 2025-03-04 07:18:50 -07:00
65 lines
1.3 KiB
TypeScript
65 lines
1.3 KiB
TypeScript
import { Entity, PrimaryColumn, Column, Index, ManyToOne, JoinColumn } from "typeorm";
|
|
import { id } from "../id.js";
|
|
import { OAuthApp } from "@/models/entities/oauth-app.js";
|
|
import { User } from "@/models/entities/user.js";
|
|
|
|
@Entity('oauth_token')
|
|
export class OAuthToken {
|
|
@PrimaryColumn(id())
|
|
public id: string;
|
|
|
|
@Column("timestamp with time zone", {
|
|
comment: "The created date of the OAuth token",
|
|
})
|
|
public createdAt: Date;
|
|
|
|
@Column(id())
|
|
public appId: OAuthApp["id"];
|
|
|
|
@ManyToOne(() => OAuthApp, {
|
|
onDelete: "CASCADE",
|
|
})
|
|
@JoinColumn()
|
|
public app: OAuthApp;
|
|
|
|
@Column(id())
|
|
public userId: User["id"];
|
|
|
|
@ManyToOne(() => User, {
|
|
onDelete: "CASCADE",
|
|
})
|
|
@JoinColumn()
|
|
public user: User;
|
|
|
|
@Index()
|
|
@Column("varchar", {
|
|
length: 64,
|
|
comment: "The auth code for the OAuth token",
|
|
})
|
|
public code: string;
|
|
|
|
@Index()
|
|
@Column("varchar", {
|
|
length: 64,
|
|
comment: "The OAuth token",
|
|
})
|
|
public token: string;
|
|
|
|
@Column("boolean", {
|
|
comment: "Whether or not the token has been activated",
|
|
})
|
|
public active: boolean;
|
|
|
|
@Column("varchar", {
|
|
length: 64,
|
|
array: true,
|
|
comment: "The scopes requested by the OAuth token",
|
|
})
|
|
public scopes: string[];
|
|
|
|
@Column("varchar", {
|
|
length: 64,
|
|
comment: "The redirect URI of the OAuth token",
|
|
})
|
|
public redirectUri: string;
|
|
}
|