import { Attr } from 'ts-framework' import { OrganizationResponseDTO } from './organization' import { ServiceProgramResponseDTO } from './service-program' import { ProviderResponseDTO } from './provider' import { ServiceDaysHoursDTO } from './service-days-hours' export class CreateServiceDTO { @Attr({ type: String, optional: true }) description?: string @Attr({ type: String, optional: true }) logo?: string @Attr({ type: String }) name: string @Attr({ type: String, optional: true }) internalName?: string @Attr({ type: String }) organizationId: string @Attr({ type: String, optional: true }) phoneNumber?: string @Attr({ type: String, optional: true }) promoText?: string @Attr({ type: String, optional: true }) shareLink?: string @Attr({ type: String, optional: true }) website?: string @Attr({ type: String, optional: true }) serviceProgramId?: string @Attr({ type: Boolean, optional: true }) isMembershipRequired?: boolean @Attr({ type: Number, optional: true }) tripLimit?: number @Attr({ type: String, optional: true }) tripLimitDuration?: string } export class UpdateServiceDTO { @Attr({ type: String }) id: string @Attr({ type: String, optional: true }) description?: string @Attr({ type: String, optional: true }) logo?: string @Attr({ type: String, optional: true }) name?: string @Attr({ type: String, optional: true }) internalName?: string @Attr({ type: String, optional: true }) organizationId?: string @Attr({ type: String, optional: true }) phoneNumber?: string @Attr({ type: String, optional: true }) promoText?: string @Attr({ type: String, optional: true }) shareLink?: string @Attr({ type: String, optional: true }) website?: string @Attr({ type: String, optional: true }) serviceProgramId?: string @Attr({ type: Boolean, optional: true }) isAllDaysActive?: boolean @Attr({ type: Boolean, optional: true }) isMembershipRequired?: boolean @Attr({ type: Number, optional: true }) tripLimit?: number @Attr({ type: String, optional: true }) tripLimitDuration?: string } export class ServiceResponseDTO { id: string description: string logo: string name: string internalName?: string phoneNumber: string promoText: string shareLink: string website: string isAllDaysActive: boolean discountDescriptionText?: string organization?: OrganizationResponseDTO serviceProgram?: ServiceProgramResponseDTO providers?: ProviderResponseDTO[] isMembershipRequired?: boolean tripLimit?: number tripLimitDuration?: string } export class ServicesByVehicleIdAndProductIdRequestDTO { @Attr({ type: String }) vehicleId: string @Attr({ type: String }) productId: string } export class UpdateServiceWithDaysHoursDTO { @Attr({ type: String }) serviceId: string @Attr({ type: Boolean }) isAllDaysActive: boolean @Attr({ type: ServiceDaysHoursDTO }) serviceDays: ServiceDaysHoursDTO[] } export class LocationDTO { @Attr({ type: Number }) lat: number @Attr({ type: Number }) lng: number } export class LocationsDTO { @Attr({ type: LocationDTO }) locations: LocationDTO[] } export class ServiceFiltersDTO { types?: string[] serviceIds?: string[] organizationId?: string skip?: number take?: number }