database/scripts/models/subdivision.ts
2025-04-29 00:18:35 +03:00

42 lines
902 B
TypeScript

import { SubdivisionData } from '../types/subdivision'
import { Dictionary } from '@freearhey/core'
import { Model } from './model'
import Joi from 'joi'
export class Subdivision extends Model {
code: string
name: string
countryCode: string
constructor(data: SubdivisionData) {
super()
this.code = data.code
this.name = data.name
this.countryCode = data.country
}
hasValidCountryCode(countriesKeyByCode: Dictionary): boolean {
return countriesKeyByCode.has(this.countryCode)
}
data(): SubdivisionData {
return {
code: this.code,
name: this.name,
country: this.countryCode
}
}
getSchema() {
return Joi.object({
country: Joi.string()
.regex(/^[A-Z]{2}$/)
.required(),
name: Joi.string().required(),
code: Joi.string()
.regex(/^[A-Z]{2}-[A-Z0-9]{1,3}$/)
.required()
})
}
}