Skip to content
This repository has been archived by the owner on Nov 12, 2020. It is now read-only.

Commit

Permalink
feat: add guild tax rates
Browse files Browse the repository at this point in the history
  • Loading branch information
Quantumlyy committed Sep 19, 2020
1 parent 6e56aa9 commit ae39763
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 4 deletions.
21 changes: 21 additions & 0 deletions src/lib/orm/entities/GuildEconomyEntity.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { BaseEntity, Column, Entity, JoinColumn, OneToOne } from "typeorm";
import { GuildEntity } from "./GuildEntity";

@Entity("guild_economy", { schema: "public" })
export class GuildEconomyEntity extends BaseEntity {
// #region Global tax rate offsets
@Column("numeric", { name: "tax_offset_general", precision: 8, default: 0 })
public toGeneral = 0;

@Column("numeric", { name: "tax_offset_gambling", precision: 8, default: 0 })
public toGambling = 0;

@Column("numeric", { name: "tax_offset_sales", precision: 8, default: 0 })
public toSales = 0;
// #endregion Global tax rate offsets

@OneToOne(() => GuildEntity, { primary: true, onDelete: "CASCADE" })
@JoinColumn()
public guild?: GuildEntity;
}
8 changes: 6 additions & 2 deletions src/lib/orm/entities/GuildEntity.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { PREFIX } from "@root/config";
import { BaseEntity, Check, Column, Entity, PrimaryColumn } from "typeorm";
import { BaseEntity, Check, Column, Entity, OneToOne, PrimaryColumn } from "typeorm";
import { GuildEconomyEntity } from "./GuildEconomyEntity";

@Entity("guild", { schema: "public" })
@Check(/* sql */ `"prefix"::text <> ''::text`)
Expand All @@ -11,5 +12,8 @@ export class GuildEntity extends BaseEntity {
public prefix: string = PREFIX;

@Column("varchar", { name: "language", length: 10, default: "en-US" })
public language = "en-US";
public language = "en-US";

@OneToOne(() => GuildEconomyEntity, eco => eco.guild, { cascade: true })
public economy?: GuildEconomyEntity;
}
9 changes: 7 additions & 2 deletions src/lib/structures/DbSet.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import { connect } from "@orm/dbConfig";
import { GuildEconomyEntity } from "@orm/entities/GuildEconomyEntity";
import { UserEconomyEntity } from "@orm/entities/UserEconomyEntity";
import { UserGametagEntity } from "@orm/entities/UserGametagEntity";
import { GuildRepository } from "@orm/repositories/GuildRepository";
import { UserRepository } from "@orm/repositories/UserRepository";
import type { Connection } from "typeorm";
import { UserGametagEntity } from "@orm/entities/UserGametagEntity";
import { UserEconomyEntity } from "@orm/entities/UserEconomyEntity";

export class DbSet {

Expand All @@ -16,6 +17,10 @@ export class DbSet {
return this.connection.getCustomRepository(GuildRepository);
}

public get guildEconomyEntities() {
return this.connection.getRepository(GuildEconomyEntity);
}

public get users() {
return this.connection.getCustomRepository(UserRepository);
}
Expand Down

0 comments on commit ae39763

Please sign in to comment.