|
1 | | -import { sql } from "typegres"; |
2 | | -import { Int8, Text, Timestamptz } from "typegres/postgres"; |
3 | 1 | import { db } from "../db"; |
| 2 | +import { expose, sql } from "typegres"; |
| 3 | +import { Int8, Text, Timestamptz } from "typegres/postgres"; |
4 | 4 | import { Teams } from "./teams"; |
5 | 5 | import { Collars } from "./collars"; |
6 | 6 | import { Microchips } from "./microchips"; |
7 | 7 | import { Toys } from "./toys"; |
| 8 | + |
8 | 9 | export class Dogs extends db.Table("dogs") { |
9 | 10 | // @generated-start |
10 | | - id = (Int8<1>).column({ nonNull: true, generated: true }); |
11 | | - name = (Text<1>).column({ nonNull: true }); |
12 | | - breed = (Text<0 | 1>).column(); |
13 | | - created_at = (Timestamptz<1>).column({ nonNull: true, default: sql`now()` }); |
14 | | - team_id = (Int8<1>).column({ nonNull: true }); |
15 | | - rival_id = (Int8<0 | 1>).column(); |
| 11 | + @expose() id = (Int8<1>).column({ nonNull: true, generated: true }); |
| 12 | + @expose() name = (Text<1>).column({ nonNull: true }); |
| 13 | + @expose() breed = (Text<0 | 1>).column(); |
| 14 | + @expose() created_at = (Timestamptz<1>).column({ nonNull: true, default: sql`now()` }); |
| 15 | + @expose() team_id = (Int8<1>).column({ nonNull: true }); |
| 16 | + @expose() rival_id = (Int8<0 | 1>).column(); |
16 | 17 | // relations |
17 | | - rival() { return Dogs.from().where(({ dogs }) => dogs.id["="](this.rival_id)).cardinality("maybe"); } |
18 | | - team() { return Teams.from().where(({ teams }) => teams.id["="](this.team_id)).cardinality("one"); } |
19 | | - collars() { return Collars.from().where(({ collars }) => collars.dog_id["="](this.id)).cardinality("one"); } |
20 | | - dogs() { return Dogs.from().where(({ dogs }) => dogs.rival_id["="](this.id)).cardinality("many"); } |
21 | | - microchips() { return Microchips.from().where(({ microchips }) => microchips.dog_id["="](this.id)).cardinality("maybe"); } |
22 | | - toys() { return Toys.from().where(({ toys }) => toys.dog_id["="](this.id)).cardinality("many"); } |
| 18 | + @expose() rival() { return Dogs.scope(Dogs.contextOf(this)).where(({ dogs }) => dogs.id.eq(this.rival_id)).cardinality("maybe"); } |
| 19 | + @expose() team() { return Teams.scope(Dogs.contextOf(this)).where(({ teams }) => teams.id.eq(this.team_id)).cardinality("one"); } |
| 20 | + @expose() collars() { return Collars.scope(Dogs.contextOf(this)).where(({ collars }) => collars.dog_id.eq(this.id)).cardinality("one"); } |
| 21 | + @expose() dogs() { return Dogs.scope(Dogs.contextOf(this)).where(({ dogs }) => dogs.rival_id.eq(this.id)).cardinality("many"); } |
| 22 | + @expose() microchips() { return Microchips.scope(Dogs.contextOf(this)).where(({ microchips }) => microchips.dog_id.eq(this.id)).cardinality("maybe"); } |
| 23 | + @expose() toys() { return Toys.scope(Dogs.contextOf(this)).where(({ toys }) => toys.dog_id.eq(this.id)).cardinality("many"); } |
23 | 24 | // @generated-end |
24 | 25 | } |
0 commit comments