Compare commits
No commits in common. "3601b7fc0a05ddf03c60c5f8e5abbde4829ecdc1" and "0dabfcc4841a5427ee52213f6f405bbc4ff72bc0" have entirely different histories.
3601b7fc0a
...
0dabfcc484
19 changed files with 69 additions and 3816 deletions
|
|
@ -24,38 +24,9 @@ model users {
|
||||||
password String
|
password String
|
||||||
createdAt DateTime @default(now())
|
createdAt DateTime @default(now())
|
||||||
updatedAt DateTime
|
updatedAt DateTime
|
||||||
rides rides[]
|
|
||||||
tokens tokens[]
|
tokens tokens[]
|
||||||
}
|
}
|
||||||
|
|
||||||
model companies {
|
|
||||||
id String @id
|
|
||||||
name String
|
|
||||||
cost_per_km Decimal @db.Decimal(10, 2)
|
|
||||||
notes String? @default("")
|
|
||||||
createdAt DateTime? @default(now()) @db.Timestamptz(6)
|
|
||||||
updatedAt DateTime? @default(now()) @db.Timestamptz(6)
|
|
||||||
|
|
||||||
@@index([name], map: "idx_companies_name")
|
|
||||||
}
|
|
||||||
|
|
||||||
model rides {
|
|
||||||
id String @id
|
|
||||||
user_id String
|
|
||||||
company String
|
|
||||||
km Decimal @db.Decimal(10, 2)
|
|
||||||
cost_per_km Decimal @db.Decimal(10, 2)
|
|
||||||
total Decimal @db.Decimal(10, 2)
|
|
||||||
ride_date String
|
|
||||||
synced Int? @default(0) @db.SmallInt
|
|
||||||
createdAt DateTime? @default(now()) @db.Timestamptz(6)
|
|
||||||
updatedAt DateTime? @default(now()) @db.Timestamptz(6)
|
|
||||||
users users @relation(fields: [user_id], references: [id], onDelete: Cascade, onUpdate: NoAction)
|
|
||||||
|
|
||||||
@@index([synced], map: "idx_rides_synced")
|
|
||||||
@@index([user_id], map: "idx_rides_user_id")
|
|
||||||
}
|
|
||||||
|
|
||||||
enum TokenType {
|
enum TokenType {
|
||||||
REFRESH
|
REFRESH
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
import { Request, Response } from 'express';
|
|
||||||
import * as syncService from '../services/sync.service.js';
|
|
||||||
|
|
||||||
export async function syncCompanies(req: Request, res: Response): Promise<void> {
|
|
||||||
try {
|
|
||||||
const parsed = syncService.syncCompaniesSchema.safeParse(req.body);
|
|
||||||
if (!parsed.success) {
|
|
||||||
res.status(400).json({ error: parsed.error.flatten() });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const synced = await syncService.syncCompanies(parsed.data);
|
|
||||||
res.json({
|
|
||||||
success: true,
|
|
||||||
message: `${synced.length} company/companies synced`,
|
|
||||||
data: synced,
|
|
||||||
});
|
|
||||||
} catch (err: any) {
|
|
||||||
res.status(500).json({ error: err.message ?? 'Error syncing companies' });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function syncRides(req: Request, res: Response): Promise<void> {
|
|
||||||
try {
|
|
||||||
const parsed = syncService.syncRidesSchema.safeParse(req.body);
|
|
||||||
if (!parsed.success) {
|
|
||||||
res.status(400).json({ error: parsed.error.flatten() });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const synced = await syncService.syncRides(parsed.data);
|
|
||||||
res.json({
|
|
||||||
success: true,
|
|
||||||
message: `${synced.length} ride(s) synced`,
|
|
||||||
data: synced,
|
|
||||||
});
|
|
||||||
} catch (err: any) {
|
|
||||||
res.status(500).json({ error: err.message ?? 'Error syncing rides' });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -27,13 +27,3 @@ export type tokens = Prisma.tokensModel
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export type users = Prisma.usersModel
|
export type users = Prisma.usersModel
|
||||||
/**
|
|
||||||
* Model companies
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
export type companies = Prisma.companiesModel
|
|
||||||
/**
|
|
||||||
* Model rides
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
export type rides = Prisma.ridesModel
|
|
||||||
|
|
|
||||||
|
|
@ -51,13 +51,3 @@ export type tokens = Prisma.tokensModel
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export type users = Prisma.usersModel
|
export type users = Prisma.usersModel
|
||||||
/**
|
|
||||||
* Model companies
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
export type companies = Prisma.companiesModel
|
|
||||||
/**
|
|
||||||
* Model rides
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
export type rides = Prisma.ridesModel
|
|
||||||
|
|
|
||||||
|
|
@ -89,123 +89,6 @@ export type DateTimeWithAggregatesFilter<$PrismaModel = never> = {
|
||||||
_max?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
_max?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type DecimalFilter<$PrismaModel = never> = {
|
|
||||||
equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDecimalFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string
|
|
||||||
}
|
|
||||||
|
|
||||||
export type StringNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
mode?: Prisma.QueryMode
|
|
||||||
not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type DateTimeNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type SortOrderInput = {
|
|
||||||
sort: Prisma.SortOrder
|
|
||||||
nulls?: Prisma.NullsOrder
|
|
||||||
}
|
|
||||||
|
|
||||||
export type DecimalWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDecimalWithAggregatesFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_avg?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
_sum?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type StringNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
mode?: Prisma.QueryMode
|
|
||||||
not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type DateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type IntNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type IntNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_avg?: Prisma.NestedFloatNullableFilter<$PrismaModel>
|
|
||||||
_sum?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedStringFilter<$PrismaModel = never> = {
|
export type NestedStringFilter<$PrismaModel = never> = {
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
equals?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
||||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel>
|
||||||
|
|
@ -290,125 +173,4 @@ export type NestedDateTimeWithAggregatesFilter<$PrismaModel = never> = {
|
||||||
_max?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
_max?: Prisma.NestedDateTimeFilter<$PrismaModel>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type NestedDecimalFilter<$PrismaModel = never> = {
|
|
||||||
equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDecimalFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedStringNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringNullableFilter<$PrismaModel> | string | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedDateTimeNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeNullableFilter<$PrismaModel> | Date | string | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedDecimalWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
in?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
notIn?: runtime.Decimal[] | runtime.DecimalJsLike[] | number[] | string[] | Prisma.ListDecimalFieldRefInput<$PrismaModel>
|
|
||||||
lt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
lte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gt?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
gte?: runtime.Decimal | runtime.DecimalJsLike | number | string | Prisma.DecimalFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDecimalWithAggregatesFilter<$PrismaModel> | runtime.Decimal | runtime.DecimalJsLike | number | string
|
|
||||||
_count?: Prisma.NestedIntFilter<$PrismaModel>
|
|
||||||
_avg?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
_sum?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedDecimalFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedStringNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: string | Prisma.StringFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: string[] | Prisma.ListStringFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
lte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gt?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
gte?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
contains?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
startsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
endsWith?: string | Prisma.StringFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedStringNullableWithAggregatesFilter<$PrismaModel> | string | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedStringNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedIntNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntNullableFilter<$PrismaModel> | number | null
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedDateTimeNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: Date[] | string[] | Prisma.ListDateTimeFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
lte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gt?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
gte?: Date | string | Prisma.DateTimeFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedDateTimeNullableWithAggregatesFilter<$PrismaModel> | Date | string | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedDateTimeNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedIntNullableWithAggregatesFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.IntFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: number[] | Prisma.ListIntFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.IntFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedIntNullableWithAggregatesFilter<$PrismaModel> | number | null
|
|
||||||
_count?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_avg?: Prisma.NestedFloatNullableFilter<$PrismaModel>
|
|
||||||
_sum?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_min?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
_max?: Prisma.NestedIntNullableFilter<$PrismaModel>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type NestedFloatNullableFilter<$PrismaModel = never> = {
|
|
||||||
equals?: number | Prisma.FloatFieldRefInput<$PrismaModel> | null
|
|
||||||
in?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel> | null
|
|
||||||
notIn?: number[] | Prisma.ListFloatFieldRefInput<$PrismaModel> | null
|
|
||||||
lt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
lte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
gt?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
gte?: number | Prisma.FloatFieldRefInput<$PrismaModel>
|
|
||||||
not?: Prisma.NestedFloatNullableFilter<$PrismaModel> | number | null
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -385,9 +385,7 @@ type FieldRefInputType<Model, FieldType> = Model extends never ? never : FieldRe
|
||||||
|
|
||||||
export const ModelName = {
|
export const ModelName = {
|
||||||
tokens: 'tokens',
|
tokens: 'tokens',
|
||||||
users: 'users',
|
users: 'users'
|
||||||
companies: 'companies',
|
|
||||||
rides: 'rides'
|
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
||||||
|
|
@ -403,7 +401,7 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
|
||||||
omit: GlobalOmitOptions
|
omit: GlobalOmitOptions
|
||||||
}
|
}
|
||||||
meta: {
|
meta: {
|
||||||
modelProps: "tokens" | "users" | "companies" | "rides"
|
modelProps: "tokens" | "users"
|
||||||
txIsolationLevel: TransactionIsolationLevel
|
txIsolationLevel: TransactionIsolationLevel
|
||||||
}
|
}
|
||||||
model: {
|
model: {
|
||||||
|
|
@ -555,154 +553,6 @@ export type TypeMap<ExtArgs extends runtime.Types.Extensions.InternalArgs = runt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
companies: {
|
|
||||||
payload: Prisma.$companiesPayload<ExtArgs>
|
|
||||||
fields: Prisma.companiesFieldRefs
|
|
||||||
operations: {
|
|
||||||
findUnique: {
|
|
||||||
args: Prisma.companiesFindUniqueArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload> | null
|
|
||||||
}
|
|
||||||
findUniqueOrThrow: {
|
|
||||||
args: Prisma.companiesFindUniqueOrThrowArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>
|
|
||||||
}
|
|
||||||
findFirst: {
|
|
||||||
args: Prisma.companiesFindFirstArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload> | null
|
|
||||||
}
|
|
||||||
findFirstOrThrow: {
|
|
||||||
args: Prisma.companiesFindFirstOrThrowArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>
|
|
||||||
}
|
|
||||||
findMany: {
|
|
||||||
args: Prisma.companiesFindManyArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>[]
|
|
||||||
}
|
|
||||||
create: {
|
|
||||||
args: Prisma.companiesCreateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>
|
|
||||||
}
|
|
||||||
createMany: {
|
|
||||||
args: Prisma.companiesCreateManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
createManyAndReturn: {
|
|
||||||
args: Prisma.companiesCreateManyAndReturnArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>[]
|
|
||||||
}
|
|
||||||
delete: {
|
|
||||||
args: Prisma.companiesDeleteArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>
|
|
||||||
}
|
|
||||||
update: {
|
|
||||||
args: Prisma.companiesUpdateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>
|
|
||||||
}
|
|
||||||
deleteMany: {
|
|
||||||
args: Prisma.companiesDeleteManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
updateMany: {
|
|
||||||
args: Prisma.companiesUpdateManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
updateManyAndReturn: {
|
|
||||||
args: Prisma.companiesUpdateManyAndReturnArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>[]
|
|
||||||
}
|
|
||||||
upsert: {
|
|
||||||
args: Prisma.companiesUpsertArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$companiesPayload>
|
|
||||||
}
|
|
||||||
aggregate: {
|
|
||||||
args: Prisma.CompaniesAggregateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.AggregateCompanies>
|
|
||||||
}
|
|
||||||
groupBy: {
|
|
||||||
args: Prisma.companiesGroupByArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.CompaniesGroupByOutputType>[]
|
|
||||||
}
|
|
||||||
count: {
|
|
||||||
args: Prisma.companiesCountArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.CompaniesCountAggregateOutputType> | number
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
rides: {
|
|
||||||
payload: Prisma.$ridesPayload<ExtArgs>
|
|
||||||
fields: Prisma.ridesFieldRefs
|
|
||||||
operations: {
|
|
||||||
findUnique: {
|
|
||||||
args: Prisma.ridesFindUniqueArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload> | null
|
|
||||||
}
|
|
||||||
findUniqueOrThrow: {
|
|
||||||
args: Prisma.ridesFindUniqueOrThrowArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>
|
|
||||||
}
|
|
||||||
findFirst: {
|
|
||||||
args: Prisma.ridesFindFirstArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload> | null
|
|
||||||
}
|
|
||||||
findFirstOrThrow: {
|
|
||||||
args: Prisma.ridesFindFirstOrThrowArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>
|
|
||||||
}
|
|
||||||
findMany: {
|
|
||||||
args: Prisma.ridesFindManyArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>[]
|
|
||||||
}
|
|
||||||
create: {
|
|
||||||
args: Prisma.ridesCreateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>
|
|
||||||
}
|
|
||||||
createMany: {
|
|
||||||
args: Prisma.ridesCreateManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
createManyAndReturn: {
|
|
||||||
args: Prisma.ridesCreateManyAndReturnArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>[]
|
|
||||||
}
|
|
||||||
delete: {
|
|
||||||
args: Prisma.ridesDeleteArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>
|
|
||||||
}
|
|
||||||
update: {
|
|
||||||
args: Prisma.ridesUpdateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>
|
|
||||||
}
|
|
||||||
deleteMany: {
|
|
||||||
args: Prisma.ridesDeleteManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
updateMany: {
|
|
||||||
args: Prisma.ridesUpdateManyArgs<ExtArgs>
|
|
||||||
result: BatchPayload
|
|
||||||
}
|
|
||||||
updateManyAndReturn: {
|
|
||||||
args: Prisma.ridesUpdateManyAndReturnArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>[]
|
|
||||||
}
|
|
||||||
upsert: {
|
|
||||||
args: Prisma.ridesUpsertArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.PayloadToResult<Prisma.$ridesPayload>
|
|
||||||
}
|
|
||||||
aggregate: {
|
|
||||||
args: Prisma.RidesAggregateArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.AggregateRides>
|
|
||||||
}
|
|
||||||
groupBy: {
|
|
||||||
args: Prisma.ridesGroupByArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.RidesGroupByOutputType>[]
|
|
||||||
}
|
|
||||||
count: {
|
|
||||||
args: Prisma.ridesCountArgs<ExtArgs>
|
|
||||||
result: runtime.Types.Utils.Optional<Prisma.RidesCountAggregateOutputType> | number
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} & {
|
} & {
|
||||||
other: {
|
other: {
|
||||||
|
|
@ -766,34 +616,6 @@ export const UsersScalarFieldEnum = {
|
||||||
export type UsersScalarFieldEnum = (typeof UsersScalarFieldEnum)[keyof typeof UsersScalarFieldEnum]
|
export type UsersScalarFieldEnum = (typeof UsersScalarFieldEnum)[keyof typeof UsersScalarFieldEnum]
|
||||||
|
|
||||||
|
|
||||||
export const CompaniesScalarFieldEnum = {
|
|
||||||
id: 'id',
|
|
||||||
name: 'name',
|
|
||||||
cost_per_km: 'cost_per_km',
|
|
||||||
notes: 'notes',
|
|
||||||
createdAt: 'createdAt',
|
|
||||||
updatedAt: 'updatedAt'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type CompaniesScalarFieldEnum = (typeof CompaniesScalarFieldEnum)[keyof typeof CompaniesScalarFieldEnum]
|
|
||||||
|
|
||||||
|
|
||||||
export const RidesScalarFieldEnum = {
|
|
||||||
id: 'id',
|
|
||||||
user_id: 'user_id',
|
|
||||||
company: 'company',
|
|
||||||
km: 'km',
|
|
||||||
cost_per_km: 'cost_per_km',
|
|
||||||
total: 'total',
|
|
||||||
ride_date: 'ride_date',
|
|
||||||
synced: 'synced',
|
|
||||||
createdAt: 'createdAt',
|
|
||||||
updatedAt: 'updatedAt'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type RidesScalarFieldEnum = (typeof RidesScalarFieldEnum)[keyof typeof RidesScalarFieldEnum]
|
|
||||||
|
|
||||||
|
|
||||||
export const SortOrder = {
|
export const SortOrder = {
|
||||||
asc: 'asc',
|
asc: 'asc',
|
||||||
desc: 'desc'
|
desc: 'desc'
|
||||||
|
|
@ -810,14 +632,6 @@ export const QueryMode = {
|
||||||
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
|
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
|
||||||
|
|
||||||
|
|
||||||
export const NullsOrder = {
|
|
||||||
first: 'first',
|
|
||||||
last: 'last'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Field references
|
* Field references
|
||||||
|
|
@ -866,20 +680,6 @@ export type ListDateTimeFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaM
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'Decimal'
|
|
||||||
*/
|
|
||||||
export type DecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Decimal'>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'Decimal[]'
|
|
||||||
*/
|
|
||||||
export type ListDecimalFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Decimal[]'>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reference to a field of type 'Int'
|
* Reference to a field of type 'Int'
|
||||||
*/
|
*/
|
||||||
|
|
@ -893,20 +693,6 @@ export type IntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'In
|
||||||
export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'>
|
export type ListIntFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Int[]'>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'Float'
|
|
||||||
*/
|
|
||||||
export type FloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float'>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reference to a field of type 'Float[]'
|
|
||||||
*/
|
|
||||||
export type ListFloatFieldRefInput<$PrismaModel> = FieldRefInputType<$PrismaModel, 'Float[]'>
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Batch Payload for updateMany & deleteMany & createMany
|
* Batch Payload for updateMany & deleteMany & createMany
|
||||||
*/
|
*/
|
||||||
|
|
@ -1019,8 +805,6 @@ export type PrismaClientOptions = ({
|
||||||
export type GlobalOmitConfig = {
|
export type GlobalOmitConfig = {
|
||||||
tokens?: Prisma.tokensOmit
|
tokens?: Prisma.tokensOmit
|
||||||
users?: Prisma.usersOmit
|
users?: Prisma.usersOmit
|
||||||
companies?: Prisma.companiesOmit
|
|
||||||
rides?: Prisma.ridesOmit
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Types for Logging */
|
/* Types for Logging */
|
||||||
|
|
|
||||||
|
|
@ -52,9 +52,7 @@ export const AnyNull = runtime.AnyNull
|
||||||
|
|
||||||
export const ModelName = {
|
export const ModelName = {
|
||||||
tokens: 'tokens',
|
tokens: 'tokens',
|
||||||
users: 'users',
|
users: 'users'
|
||||||
companies: 'companies',
|
|
||||||
rides: 'rides'
|
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
export type ModelName = (typeof ModelName)[keyof typeof ModelName]
|
||||||
|
|
@ -97,34 +95,6 @@ export const UsersScalarFieldEnum = {
|
||||||
export type UsersScalarFieldEnum = (typeof UsersScalarFieldEnum)[keyof typeof UsersScalarFieldEnum]
|
export type UsersScalarFieldEnum = (typeof UsersScalarFieldEnum)[keyof typeof UsersScalarFieldEnum]
|
||||||
|
|
||||||
|
|
||||||
export const CompaniesScalarFieldEnum = {
|
|
||||||
id: 'id',
|
|
||||||
name: 'name',
|
|
||||||
cost_per_km: 'cost_per_km',
|
|
||||||
notes: 'notes',
|
|
||||||
createdAt: 'createdAt',
|
|
||||||
updatedAt: 'updatedAt'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type CompaniesScalarFieldEnum = (typeof CompaniesScalarFieldEnum)[keyof typeof CompaniesScalarFieldEnum]
|
|
||||||
|
|
||||||
|
|
||||||
export const RidesScalarFieldEnum = {
|
|
||||||
id: 'id',
|
|
||||||
user_id: 'user_id',
|
|
||||||
company: 'company',
|
|
||||||
km: 'km',
|
|
||||||
cost_per_km: 'cost_per_km',
|
|
||||||
total: 'total',
|
|
||||||
ride_date: 'ride_date',
|
|
||||||
synced: 'synced',
|
|
||||||
createdAt: 'createdAt',
|
|
||||||
updatedAt: 'updatedAt'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type RidesScalarFieldEnum = (typeof RidesScalarFieldEnum)[keyof typeof RidesScalarFieldEnum]
|
|
||||||
|
|
||||||
|
|
||||||
export const SortOrder = {
|
export const SortOrder = {
|
||||||
asc: 'asc',
|
asc: 'asc',
|
||||||
desc: 'desc'
|
desc: 'desc'
|
||||||
|
|
@ -140,11 +110,3 @@ export const QueryMode = {
|
||||||
|
|
||||||
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
|
export type QueryMode = (typeof QueryMode)[keyof typeof QueryMode]
|
||||||
|
|
||||||
|
|
||||||
export const NullsOrder = {
|
|
||||||
first: 'first',
|
|
||||||
last: 'last'
|
|
||||||
} as const
|
|
||||||
|
|
||||||
export type NullsOrder = (typeof NullsOrder)[keyof typeof NullsOrder]
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,4 @@
|
||||||
*/
|
*/
|
||||||
export type * from './models/tokens.js'
|
export type * from './models/tokens.js'
|
||||||
export type * from './models/users.js'
|
export type * from './models/users.js'
|
||||||
export type * from './models/companies.js'
|
|
||||||
export type * from './models/rides.js'
|
|
||||||
export type * from './commonInputTypes.js'
|
export type * from './commonInputTypes.js'
|
||||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -190,7 +190,6 @@ export type usersWhereInput = {
|
||||||
password?: Prisma.StringFilter<"users"> | string
|
password?: Prisma.StringFilter<"users"> | string
|
||||||
createdAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
createdAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
updatedAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
||||||
rides?: Prisma.RidesListRelationFilter
|
|
||||||
tokens?: Prisma.TokensListRelationFilter
|
tokens?: Prisma.TokensListRelationFilter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -201,7 +200,6 @@ export type usersOrderByWithRelationInput = {
|
||||||
password?: Prisma.SortOrder
|
password?: Prisma.SortOrder
|
||||||
createdAt?: Prisma.SortOrder
|
createdAt?: Prisma.SortOrder
|
||||||
updatedAt?: Prisma.SortOrder
|
updatedAt?: Prisma.SortOrder
|
||||||
rides?: Prisma.ridesOrderByRelationAggregateInput
|
|
||||||
tokens?: Prisma.tokensOrderByRelationAggregateInput
|
tokens?: Prisma.tokensOrderByRelationAggregateInput
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -215,7 +213,6 @@ export type usersWhereUniqueInput = Prisma.AtLeast<{
|
||||||
password?: Prisma.StringFilter<"users"> | string
|
password?: Prisma.StringFilter<"users"> | string
|
||||||
createdAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
createdAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
updatedAt?: Prisma.DateTimeFilter<"users"> | Date | string
|
||||||
rides?: Prisma.RidesListRelationFilter
|
|
||||||
tokens?: Prisma.TokensListRelationFilter
|
tokens?: Prisma.TokensListRelationFilter
|
||||||
}, "id" | "email">
|
}, "id" | "email">
|
||||||
|
|
||||||
|
|
@ -250,7 +247,6 @@ export type usersCreateInput = {
|
||||||
password: string
|
password: string
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt: Date | string
|
updatedAt: Date | string
|
||||||
rides?: Prisma.ridesCreateNestedManyWithoutUsersInput
|
|
||||||
tokens?: Prisma.tokensCreateNestedManyWithoutUsersInput
|
tokens?: Prisma.tokensCreateNestedManyWithoutUsersInput
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -261,7 +257,6 @@ export type usersUncheckedCreateInput = {
|
||||||
password: string
|
password: string
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt: Date | string
|
updatedAt: Date | string
|
||||||
rides?: Prisma.ridesUncheckedCreateNestedManyWithoutUsersInput
|
|
||||||
tokens?: Prisma.tokensUncheckedCreateNestedManyWithoutUsersInput
|
tokens?: Prisma.tokensUncheckedCreateNestedManyWithoutUsersInput
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -272,7 +267,6 @@ export type usersUpdateInput = {
|
||||||
password?: Prisma.StringFieldUpdateOperationsInput | string
|
password?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
rides?: Prisma.ridesUpdateManyWithoutUsersNestedInput
|
|
||||||
tokens?: Prisma.tokensUpdateManyWithoutUsersNestedInput
|
tokens?: Prisma.tokensUpdateManyWithoutUsersNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -283,7 +277,6 @@ export type usersUncheckedUpdateInput = {
|
||||||
password?: Prisma.StringFieldUpdateOperationsInput | string
|
password?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
rides?: Prisma.ridesUncheckedUpdateManyWithoutUsersNestedInput
|
|
||||||
tokens?: Prisma.tokensUncheckedUpdateManyWithoutUsersNestedInput
|
tokens?: Prisma.tokensUncheckedUpdateManyWithoutUsersNestedInput
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -360,20 +353,6 @@ export type usersUpdateOneRequiredWithoutTokensNestedInput = {
|
||||||
update?: Prisma.XOR<Prisma.XOR<Prisma.usersUpdateToOneWithWhereWithoutTokensInput, Prisma.usersUpdateWithoutTokensInput>, Prisma.usersUncheckedUpdateWithoutTokensInput>
|
update?: Prisma.XOR<Prisma.XOR<Prisma.usersUpdateToOneWithWhereWithoutTokensInput, Prisma.usersUpdateWithoutTokensInput>, Prisma.usersUncheckedUpdateWithoutTokensInput>
|
||||||
}
|
}
|
||||||
|
|
||||||
export type usersCreateNestedOneWithoutRidesInput = {
|
|
||||||
create?: Prisma.XOR<Prisma.usersCreateWithoutRidesInput, Prisma.usersUncheckedCreateWithoutRidesInput>
|
|
||||||
connectOrCreate?: Prisma.usersCreateOrConnectWithoutRidesInput
|
|
||||||
connect?: Prisma.usersWhereUniqueInput
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersUpdateOneRequiredWithoutRidesNestedInput = {
|
|
||||||
create?: Prisma.XOR<Prisma.usersCreateWithoutRidesInput, Prisma.usersUncheckedCreateWithoutRidesInput>
|
|
||||||
connectOrCreate?: Prisma.usersCreateOrConnectWithoutRidesInput
|
|
||||||
upsert?: Prisma.usersUpsertWithoutRidesInput
|
|
||||||
connect?: Prisma.usersWhereUniqueInput
|
|
||||||
update?: Prisma.XOR<Prisma.XOR<Prisma.usersUpdateToOneWithWhereWithoutRidesInput, Prisma.usersUpdateWithoutRidesInput>, Prisma.usersUncheckedUpdateWithoutRidesInput>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersCreateWithoutTokensInput = {
|
export type usersCreateWithoutTokensInput = {
|
||||||
id: string
|
id: string
|
||||||
name: string
|
name: string
|
||||||
|
|
@ -381,7 +360,6 @@ export type usersCreateWithoutTokensInput = {
|
||||||
password: string
|
password: string
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt: Date | string
|
updatedAt: Date | string
|
||||||
rides?: Prisma.ridesCreateNestedManyWithoutUsersInput
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export type usersUncheckedCreateWithoutTokensInput = {
|
export type usersUncheckedCreateWithoutTokensInput = {
|
||||||
|
|
@ -391,7 +369,6 @@ export type usersUncheckedCreateWithoutTokensInput = {
|
||||||
password: string
|
password: string
|
||||||
createdAt?: Date | string
|
createdAt?: Date | string
|
||||||
updatedAt: Date | string
|
updatedAt: Date | string
|
||||||
rides?: Prisma.ridesUncheckedCreateNestedManyWithoutUsersInput
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export type usersCreateOrConnectWithoutTokensInput = {
|
export type usersCreateOrConnectWithoutTokensInput = {
|
||||||
|
|
@ -417,7 +394,6 @@ export type usersUpdateWithoutTokensInput = {
|
||||||
password?: Prisma.StringFieldUpdateOperationsInput | string
|
password?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
rides?: Prisma.ridesUpdateManyWithoutUsersNestedInput
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export type usersUncheckedUpdateWithoutTokensInput = {
|
export type usersUncheckedUpdateWithoutTokensInput = {
|
||||||
|
|
@ -427,63 +403,6 @@ export type usersUncheckedUpdateWithoutTokensInput = {
|
||||||
password?: Prisma.StringFieldUpdateOperationsInput | string
|
password?: Prisma.StringFieldUpdateOperationsInput | string
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
||||||
rides?: Prisma.ridesUncheckedUpdateManyWithoutUsersNestedInput
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersCreateWithoutRidesInput = {
|
|
||||||
id: string
|
|
||||||
name: string
|
|
||||||
email: string
|
|
||||||
password: string
|
|
||||||
createdAt?: Date | string
|
|
||||||
updatedAt: Date | string
|
|
||||||
tokens?: Prisma.tokensCreateNestedManyWithoutUsersInput
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersUncheckedCreateWithoutRidesInput = {
|
|
||||||
id: string
|
|
||||||
name: string
|
|
||||||
email: string
|
|
||||||
password: string
|
|
||||||
createdAt?: Date | string
|
|
||||||
updatedAt: Date | string
|
|
||||||
tokens?: Prisma.tokensUncheckedCreateNestedManyWithoutUsersInput
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersCreateOrConnectWithoutRidesInput = {
|
|
||||||
where: Prisma.usersWhereUniqueInput
|
|
||||||
create: Prisma.XOR<Prisma.usersCreateWithoutRidesInput, Prisma.usersUncheckedCreateWithoutRidesInput>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersUpsertWithoutRidesInput = {
|
|
||||||
update: Prisma.XOR<Prisma.usersUpdateWithoutRidesInput, Prisma.usersUncheckedUpdateWithoutRidesInput>
|
|
||||||
create: Prisma.XOR<Prisma.usersCreateWithoutRidesInput, Prisma.usersUncheckedCreateWithoutRidesInput>
|
|
||||||
where?: Prisma.usersWhereInput
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersUpdateToOneWithWhereWithoutRidesInput = {
|
|
||||||
where?: Prisma.usersWhereInput
|
|
||||||
data: Prisma.XOR<Prisma.usersUpdateWithoutRidesInput, Prisma.usersUncheckedUpdateWithoutRidesInput>
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersUpdateWithoutRidesInput = {
|
|
||||||
id?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
name?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
email?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
password?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
|
||||||
tokens?: Prisma.tokensUpdateManyWithoutUsersNestedInput
|
|
||||||
}
|
|
||||||
|
|
||||||
export type usersUncheckedUpdateWithoutRidesInput = {
|
|
||||||
id?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
name?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
email?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
password?: Prisma.StringFieldUpdateOperationsInput | string
|
|
||||||
createdAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
|
||||||
updatedAt?: Prisma.DateTimeFieldUpdateOperationsInput | Date | string
|
|
||||||
tokens?: Prisma.tokensUncheckedUpdateManyWithoutUsersNestedInput
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -492,12 +411,10 @@ export type usersUncheckedUpdateWithoutRidesInput = {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export type UsersCountOutputType = {
|
export type UsersCountOutputType = {
|
||||||
rides: number
|
|
||||||
tokens: number
|
tokens: number
|
||||||
}
|
}
|
||||||
|
|
||||||
export type UsersCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
export type UsersCountOutputTypeSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
rides?: boolean | UsersCountOutputTypeCountRidesArgs
|
|
||||||
tokens?: boolean | UsersCountOutputTypeCountTokensArgs
|
tokens?: boolean | UsersCountOutputTypeCountTokensArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -511,13 +428,6 @@ export type UsersCountOutputTypeDefaultArgs<ExtArgs extends runtime.Types.Extens
|
||||||
select?: Prisma.UsersCountOutputTypeSelect<ExtArgs> | null
|
select?: Prisma.UsersCountOutputTypeSelect<ExtArgs> | null
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* UsersCountOutputType without action
|
|
||||||
*/
|
|
||||||
export type UsersCountOutputTypeCountRidesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
|
||||||
where?: Prisma.ridesWhereInput
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UsersCountOutputType without action
|
* UsersCountOutputType without action
|
||||||
*/
|
*/
|
||||||
|
|
@ -533,7 +443,6 @@ export type usersSelect<ExtArgs extends runtime.Types.Extensions.InternalArgs =
|
||||||
password?: boolean
|
password?: boolean
|
||||||
createdAt?: boolean
|
createdAt?: boolean
|
||||||
updatedAt?: boolean
|
updatedAt?: boolean
|
||||||
rides?: boolean | Prisma.users$ridesArgs<ExtArgs>
|
|
||||||
tokens?: boolean | Prisma.users$tokensArgs<ExtArgs>
|
tokens?: boolean | Prisma.users$tokensArgs<ExtArgs>
|
||||||
_count?: boolean | Prisma.UsersCountOutputTypeDefaultArgs<ExtArgs>
|
_count?: boolean | Prisma.UsersCountOutputTypeDefaultArgs<ExtArgs>
|
||||||
}, ExtArgs["result"]["users"]>
|
}, ExtArgs["result"]["users"]>
|
||||||
|
|
@ -567,7 +476,6 @@ export type usersSelectScalar = {
|
||||||
|
|
||||||
export type usersOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "name" | "email" | "password" | "createdAt" | "updatedAt", ExtArgs["result"]["users"]>
|
export type usersOmit<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = runtime.Types.Extensions.GetOmit<"id" | "name" | "email" | "password" | "createdAt" | "updatedAt", ExtArgs["result"]["users"]>
|
||||||
export type usersInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
export type usersInclude<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
rides?: boolean | Prisma.users$ridesArgs<ExtArgs>
|
|
||||||
tokens?: boolean | Prisma.users$tokensArgs<ExtArgs>
|
tokens?: boolean | Prisma.users$tokensArgs<ExtArgs>
|
||||||
_count?: boolean | Prisma.UsersCountOutputTypeDefaultArgs<ExtArgs>
|
_count?: boolean | Prisma.UsersCountOutputTypeDefaultArgs<ExtArgs>
|
||||||
}
|
}
|
||||||
|
|
@ -577,7 +485,6 @@ export type usersIncludeUpdateManyAndReturn<ExtArgs extends runtime.Types.Extens
|
||||||
export type $usersPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
export type $usersPayload<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
||||||
name: "users"
|
name: "users"
|
||||||
objects: {
|
objects: {
|
||||||
rides: Prisma.$ridesPayload<ExtArgs>[]
|
|
||||||
tokens: Prisma.$tokensPayload<ExtArgs>[]
|
tokens: Prisma.$tokensPayload<ExtArgs>[]
|
||||||
}
|
}
|
||||||
scalars: runtime.Types.Extensions.GetPayloadResult<{
|
scalars: runtime.Types.Extensions.GetPayloadResult<{
|
||||||
|
|
@ -981,7 +888,6 @@ readonly fields: usersFieldRefs;
|
||||||
*/
|
*/
|
||||||
export interface Prisma__usersClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
|
export interface Prisma__usersClient<T, Null = never, ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs, GlobalOmitOptions = {}> extends Prisma.PrismaPromise<T> {
|
||||||
readonly [Symbol.toStringTag]: "PrismaPromise"
|
readonly [Symbol.toStringTag]: "PrismaPromise"
|
||||||
rides<T extends Prisma.users$ridesArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.users$ridesArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$ridesPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
|
|
||||||
tokens<T extends Prisma.users$tokensArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.users$tokensArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$tokensPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
|
tokens<T extends Prisma.users$tokensArgs<ExtArgs> = {}>(args?: Prisma.Subset<T, Prisma.users$tokensArgs<ExtArgs>>): Prisma.PrismaPromise<runtime.Types.Result.GetResult<Prisma.$tokensPayload<ExtArgs>, T, "findMany", GlobalOmitOptions> | Null>
|
||||||
/**
|
/**
|
||||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||||
|
|
@ -1410,30 +1316,6 @@ export type usersDeleteManyArgs<ExtArgs extends runtime.Types.Extensions.Interna
|
||||||
limit?: number
|
limit?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* users.rides
|
|
||||||
*/
|
|
||||||
export type users$ridesArgs<ExtArgs extends runtime.Types.Extensions.InternalArgs = runtime.Types.Extensions.DefaultArgs> = {
|
|
||||||
/**
|
|
||||||
* Select specific fields to fetch from the rides
|
|
||||||
*/
|
|
||||||
select?: Prisma.ridesSelect<ExtArgs> | null
|
|
||||||
/**
|
|
||||||
* Omit specific fields from the rides
|
|
||||||
*/
|
|
||||||
omit?: Prisma.ridesOmit<ExtArgs> | null
|
|
||||||
/**
|
|
||||||
* Choose, which related nodes to fetch as well
|
|
||||||
*/
|
|
||||||
include?: Prisma.ridesInclude<ExtArgs> | null
|
|
||||||
where?: Prisma.ridesWhereInput
|
|
||||||
orderBy?: Prisma.ridesOrderByWithRelationInput | Prisma.ridesOrderByWithRelationInput[]
|
|
||||||
cursor?: Prisma.ridesWhereUniqueInput
|
|
||||||
take?: number
|
|
||||||
skip?: number
|
|
||||||
distinct?: Prisma.RidesScalarFieldEnum | Prisma.RidesScalarFieldEnum[]
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* users.tokens
|
* users.tokens
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
||||||
import prisma from '../lib/prisma.js';
|
|
||||||
|
|
||||||
export async function findCompanyById(id: string) {
|
|
||||||
return prisma.companies.findUnique({ where: { id } });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function createCompany(data: {
|
|
||||||
id: string;
|
|
||||||
name: string;
|
|
||||||
cost_per_km: any;
|
|
||||||
notes?: string;
|
|
||||||
}) {
|
|
||||||
return prisma.companies.create({ data });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function updateCompany(
|
|
||||||
id: string,
|
|
||||||
data: Partial<{
|
|
||||||
name: string;
|
|
||||||
cost_per_km: any;
|
|
||||||
notes: string;
|
|
||||||
}>
|
|
||||||
) {
|
|
||||||
return prisma.companies.update({ where: { id }, data });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function deleteCompany(id: string) {
|
|
||||||
return prisma.companies.delete({ where: { id } });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function listCompanies() {
|
|
||||||
return prisma.companies.findMany();
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function upsertCompany(data: {
|
|
||||||
id: string;
|
|
||||||
name: string;
|
|
||||||
cost_per_km: any;
|
|
||||||
notes?: string;
|
|
||||||
}) {
|
|
||||||
return prisma.companies.upsert({
|
|
||||||
where: { id: data.id },
|
|
||||||
update: {
|
|
||||||
name: data.name,
|
|
||||||
cost_per_km: data.cost_per_km,
|
|
||||||
notes: data.notes,
|
|
||||||
},
|
|
||||||
create: data,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
import prisma from '../lib/prisma.js';
|
|
||||||
|
|
||||||
export async function findRideById(id: string) {
|
|
||||||
return prisma.rides.findUnique({ where: { id } });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function createRide(data: {
|
|
||||||
id: string;
|
|
||||||
user_id: string;
|
|
||||||
company: string;
|
|
||||||
km: any;
|
|
||||||
cost_per_km: any;
|
|
||||||
total: any;
|
|
||||||
ride_date: string;
|
|
||||||
synced?: number;
|
|
||||||
}) {
|
|
||||||
return prisma.rides.create({ data });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function updateRide(
|
|
||||||
id: string,
|
|
||||||
data: Partial<{
|
|
||||||
user_id: string;
|
|
||||||
company: string;
|
|
||||||
km: any;
|
|
||||||
cost_per_km: any;
|
|
||||||
total: any;
|
|
||||||
ride_date: string;
|
|
||||||
synced: number;
|
|
||||||
}>
|
|
||||||
) {
|
|
||||||
return prisma.rides.update({ where: { id }, data });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function deleteRide(id: string) {
|
|
||||||
return prisma.rides.delete({ where: { id } });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function listRidesByUserId(user_id: string) {
|
|
||||||
return prisma.rides.findMany({ where: { user_id } });
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function listRidesNotSynced(user_id: string) {
|
|
||||||
return prisma.rides.findMany({
|
|
||||||
where: {
|
|
||||||
user_id,
|
|
||||||
synced: 0,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function markRideAsSynced(id: string) {
|
|
||||||
return prisma.rides.update({
|
|
||||||
where: { id },
|
|
||||||
data: { synced: 1 },
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function upsertRide(data: {
|
|
||||||
id: string;
|
|
||||||
user_id: string;
|
|
||||||
company: string;
|
|
||||||
km: any;
|
|
||||||
cost_per_km: any;
|
|
||||||
total: any;
|
|
||||||
ride_date: string;
|
|
||||||
synced?: number;
|
|
||||||
}) {
|
|
||||||
return prisma.rides.upsert({
|
|
||||||
where: { id: data.id },
|
|
||||||
update: {
|
|
||||||
user_id: data.user_id,
|
|
||||||
company: data.company,
|
|
||||||
km: data.km,
|
|
||||||
cost_per_km: data.cost_per_km,
|
|
||||||
total: data.total,
|
|
||||||
ride_date: data.ride_date,
|
|
||||||
synced: data.synced,
|
|
||||||
},
|
|
||||||
create: data,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
import { Router } from 'express';
|
|
||||||
import * as syncController from '../controllers/sync.controller.js';
|
|
||||||
|
|
||||||
const router = Router();
|
|
||||||
|
|
||||||
router.post('/companies', syncController.syncCompanies);
|
|
||||||
router.post('/rides', syncController.syncRides);
|
|
||||||
|
|
||||||
export default router;
|
|
||||||
|
|
@ -2,7 +2,6 @@ import express from 'express';
|
||||||
import cors from 'cors';
|
import cors from 'cors';
|
||||||
import authRoutes from './routes/auth.routes.js';
|
import authRoutes from './routes/auth.routes.js';
|
||||||
import usersRoutes from './routes/users.routes.js';
|
import usersRoutes from './routes/users.routes.js';
|
||||||
import syncRoutes from './routes/sync.routes.js';
|
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const port = process.env.PORT ? Number(process.env.PORT) : 4000;
|
const port = process.env.PORT ? Number(process.env.PORT) : 4000;
|
||||||
|
|
@ -12,7 +11,6 @@ app.use(express.json());
|
||||||
|
|
||||||
app.use('/auth', authRoutes);
|
app.use('/auth', authRoutes);
|
||||||
app.use('/users', usersRoutes);
|
app.use('/users', usersRoutes);
|
||||||
app.use('/sync', syncRoutes);
|
|
||||||
|
|
||||||
app.listen(port, '0.0.0.0', () => {
|
app.listen(port, '0.0.0.0', () => {
|
||||||
console.log(`Server is running on port ${port}`);
|
console.log(`Server is running on port ${port}`);
|
||||||
|
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
import { z } from 'zod';
|
|
||||||
import * as companiesRepo from '../repositories/companies.repository.js';
|
|
||||||
import * as ridesRepo from '../repositories/rides.repository.js';
|
|
||||||
|
|
||||||
// Validation schemas
|
|
||||||
export const syncCompaniesSchema = z.object({
|
|
||||||
companies: z.array(
|
|
||||||
z.object({
|
|
||||||
id: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
cost_per_km: z.number().or(z.string()),
|
|
||||||
notes: z.string().optional(),
|
|
||||||
})
|
|
||||||
),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const syncRidesSchema = z.object({
|
|
||||||
rides: z.array(
|
|
||||||
z.object({
|
|
||||||
id: z.string(),
|
|
||||||
user_id: z.string(),
|
|
||||||
company: z.string(),
|
|
||||||
km: z.number().or(z.string()),
|
|
||||||
cost_per_km: z.number().or(z.string()),
|
|
||||||
total: z.number().or(z.string()),
|
|
||||||
ride_date: z.string(),
|
|
||||||
synced: z.number().optional(),
|
|
||||||
})
|
|
||||||
),
|
|
||||||
});
|
|
||||||
|
|
||||||
export async function syncCompanies(
|
|
||||||
input: z.infer<typeof syncCompaniesSchema>
|
|
||||||
) {
|
|
||||||
const synced = [];
|
|
||||||
for (const company of input.companies) {
|
|
||||||
const result = await companiesRepo.upsertCompany({
|
|
||||||
id: company.id,
|
|
||||||
name: company.name,
|
|
||||||
cost_per_km: company.cost_per_km,
|
|
||||||
notes: company.notes,
|
|
||||||
});
|
|
||||||
synced.push(result);
|
|
||||||
}
|
|
||||||
return synced;
|
|
||||||
}
|
|
||||||
|
|
||||||
export async function syncRides(
|
|
||||||
input: z.infer<typeof syncRidesSchema>
|
|
||||||
) {
|
|
||||||
const synced = [];
|
|
||||||
for (const ride of input.rides) {
|
|
||||||
const result = await ridesRepo.upsertRide({
|
|
||||||
id: ride.id,
|
|
||||||
user_id: ride.user_id,
|
|
||||||
company: ride.company,
|
|
||||||
km: ride.km,
|
|
||||||
cost_per_km: ride.cost_per_km,
|
|
||||||
total: ride.total,
|
|
||||||
ride_date: ride.ride_date,
|
|
||||||
synced: ride.synced,
|
|
||||||
});
|
|
||||||
synced.push(result);
|
|
||||||
}
|
|
||||||
return synced;
|
|
||||||
}
|
|
||||||
|
|
@ -1,51 +1,36 @@
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
-- TopTran — PostgreSQL table creation script
|
-- TopTran — Script de criação das tabelas no PostgreSQL
|
||||||
-- ============================================================
|
|
||||||
-- NOTE: The "users" table already exists with the schema below.
|
|
||||||
-- Do NOT run the commented block if it already exists.
|
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|
||||||
-- [EXISTING TABLE — DO NOT RECREATE]
|
CREATE TABLE IF NOT EXISTS empresas (
|
||||||
-- CREATE TABLE IF NOT EXISTS users (
|
|
||||||
-- id TEXT PRIMARY KEY,
|
|
||||||
-- name TEXT NOT NULL,
|
|
||||||
-- email TEXT NOT NULL UNIQUE,
|
|
||||||
-- password TEXT NOT NULL,
|
|
||||||
-- "createdAt" TIMESTAMPTZ DEFAULT NOW(),
|
|
||||||
-- "updatedAt" TIMESTAMPTZ DEFAULT NOW()
|
|
||||||
-- );
|
|
||||||
|
|
||||||
-- ============================================================
|
|
||||||
-- Companies
|
|
||||||
-- ============================================================
|
|
||||||
CREATE TABLE IF NOT EXISTS companies (
|
|
||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
|
nome TEXT NOT NULL,
|
||||||
|
custo_por_km NUMERIC(10,2) NOT NULL,
|
||||||
|
observacoes TEXT DEFAULT '',
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS usuarios (
|
||||||
|
id TEXT PRIMARY KEY,
|
||||||
|
email TEXT NOT NULL UNIQUE,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
cost_per_km NUMERIC(10,2) NOT NULL,
|
token TEXT,
|
||||||
notes TEXT DEFAULT '',
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
"createdAt" TIMESTAMPTZ DEFAULT NOW(),
|
|
||||||
"updatedAt" TIMESTAMPTZ DEFAULT NOW()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
-- ============================================================
|
CREATE TABLE IF NOT EXISTS corridas (
|
||||||
-- Rides
|
|
||||||
-- ============================================================
|
|
||||||
CREATE TABLE IF NOT EXISTS rides (
|
|
||||||
id TEXT PRIMARY KEY,
|
id TEXT PRIMARY KEY,
|
||||||
user_id TEXT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
usuario_id TEXT NOT NULL REFERENCES usuarios(id) ON DELETE CASCADE,
|
||||||
company TEXT NOT NULL,
|
empresa TEXT NOT NULL,
|
||||||
km NUMERIC(10,2) NOT NULL,
|
km NUMERIC(10,2) NOT NULL,
|
||||||
cost_per_km NUMERIC(10,2) NOT NULL,
|
custo_por_km NUMERIC(10,2) NOT NULL,
|
||||||
total NUMERIC(10,2) NOT NULL,
|
total NUMERIC(10,2) NOT NULL,
|
||||||
ride_date TEXT NOT NULL,
|
data TEXT NOT NULL,
|
||||||
synced SMALLINT DEFAULT 0,
|
sincronizado SMALLINT DEFAULT 0,
|
||||||
"createdAt" TIMESTAMPTZ DEFAULT NOW(),
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
"updatedAt" TIMESTAMPTZ DEFAULT NOW()
|
|
||||||
);
|
);
|
||||||
|
|
||||||
-- ============================================================
|
-- Índices para performance
|
||||||
-- Indexes
|
CREATE INDEX IF NOT EXISTS idx_corridas_usuario_id ON corridas(usuario_id);
|
||||||
-- ============================================================
|
CREATE INDEX IF NOT EXISTS idx_corridas_sincronizado ON corridas(sincronizado);
|
||||||
CREATE INDEX IF NOT EXISTS idx_rides_user_id ON rides(user_id);
|
CREATE INDEX IF NOT EXISTS idx_usuarios_email ON usuarios(email);
|
||||||
CREATE INDEX IF NOT EXISTS idx_rides_synced ON rides(synced);
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_companies_name ON companies(name);
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import {
|
||||||
marcarCorridaComoSincronizada,
|
marcarCorridaComoSincronizada,
|
||||||
obterCorridasNaoSincronizadas,
|
obterCorridasNaoSincronizadas,
|
||||||
obterEmpresas,
|
obterEmpresas,
|
||||||
|
obterUsuario,
|
||||||
} from "@/services/db";
|
} from "@/services/db";
|
||||||
import { api } from "@/server/api";
|
import { api } from "@/server/api";
|
||||||
import { router } from "expo-router";
|
import { router } from "expo-router";
|
||||||
|
|
@ -36,6 +37,13 @@ const INITIAL_ITEMS: SyncItem[] = [
|
||||||
status: "pending",
|
status: "pending",
|
||||||
detail: "",
|
detail: "",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: "usuarios",
|
||||||
|
label: "Usuários",
|
||||||
|
description: "Dados do usuário autenticado",
|
||||||
|
status: "pending",
|
||||||
|
detail: "",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
key: "corridas",
|
key: "corridas",
|
||||||
label: "Corridas",
|
label: "Corridas",
|
||||||
|
|
@ -67,14 +75,14 @@ export default function SincronizarPage() {
|
||||||
setDone(false);
|
setDone(false);
|
||||||
setItems(INITIAL_ITEMS);
|
setItems(INITIAL_ITEMS);
|
||||||
|
|
||||||
// ── Companies ────────────────────────────────────────────
|
// ── Empresas ────────────────────────────────────────────
|
||||||
update("empresas", { status: "syncing" });
|
update("empresas", { status: "syncing" });
|
||||||
try {
|
try {
|
||||||
const companies = await obterEmpresas();
|
const empresas = await obterEmpresas();
|
||||||
await api.post("/sync/companies", { companies });
|
await api.post("/sync/empresas", { empresas });
|
||||||
update("empresas", {
|
update("empresas", {
|
||||||
status: "success",
|
status: "success",
|
||||||
detail: `${companies.length} registro${companies.length !== 1 ? "s" : ""} enviado${companies.length !== 1 ? "s" : ""}`,
|
detail: `${empresas.length} registro${empresas.length !== 1 ? "s" : ""} enviado${empresas.length !== 1 ? "s" : ""}`,
|
||||||
});
|
});
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
update("empresas", {
|
update("empresas", {
|
||||||
|
|
@ -83,20 +91,37 @@ export default function SincronizarPage() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── Rides ─────────────────────────────────────────────────
|
// ── Usuários ─────────────────────────────────────────────
|
||||||
|
update("usuarios", { status: "syncing" });
|
||||||
|
try {
|
||||||
|
const usuario = await obterUsuario(user.id);
|
||||||
|
if (usuario) {
|
||||||
|
await api.post("/sync/usuarios", { usuarios: [usuario] });
|
||||||
|
update("usuarios", { status: "success", detail: "1 registro enviado" });
|
||||||
|
} else {
|
||||||
|
update("usuarios", { status: "error", detail: "Usuário não encontrado" });
|
||||||
|
}
|
||||||
|
} catch (e: any) {
|
||||||
|
update("usuarios", {
|
||||||
|
status: "error",
|
||||||
|
detail: e?.response?.data?.error ?? e?.message ?? "Falha na conexão",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ── Corridas ─────────────────────────────────────────────
|
||||||
update("corridas", { status: "syncing" });
|
update("corridas", { status: "syncing" });
|
||||||
try {
|
try {
|
||||||
const rides = await obterCorridasNaoSincronizadas(user.id);
|
const corridas = await obterCorridasNaoSincronizadas(user.id);
|
||||||
if (rides.length === 0) {
|
if (corridas.length === 0) {
|
||||||
update("corridas", { status: "success", detail: "Nenhuma corrida pendente" });
|
update("corridas", { status: "success", detail: "Nenhuma corrida pendente" });
|
||||||
} else {
|
} else {
|
||||||
await api.post("/sync/rides", { rides });
|
await api.post("/sync/corridas", { corridas });
|
||||||
for (const ride of rides) {
|
for (const c of corridas) {
|
||||||
await marcarCorridaComoSincronizada(ride.id);
|
await marcarCorridaComoSincronizada(c.id);
|
||||||
}
|
}
|
||||||
update("corridas", {
|
update("corridas", {
|
||||||
status: "success",
|
status: "success",
|
||||||
detail: `${rides.length} corrida${rides.length !== 1 ? "s" : ""} enviada${rides.length !== 1 ? "s" : ""}`,
|
detail: `${corridas.length} corrida${corridas.length !== 1 ? "s" : ""} enviada${corridas.length !== 1 ? "s" : ""}`,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue